upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/grasp-audit/src/specs/grasp01/spec_requirements.rs
diff options
context:
space:
mode:
Diffstat (limited to 'grasp-audit/src/specs/grasp01/spec_requirements.rs')
-rw-r--r--grasp-audit/src/specs/grasp01/spec_requirements.rs28
1 files changed, 14 insertions, 14 deletions
diff --git a/grasp-audit/src/specs/grasp01/spec_requirements.rs b/grasp-audit/src/specs/grasp01/spec_requirements.rs
index 9a833d8..71b2d69 100644
--- a/grasp-audit/src/specs/grasp01/spec_requirements.rs
+++ b/grasp-audit/src/specs/grasp01/spec_requirements.rs
@@ -71,87 +71,87 @@ pub const GRASP_01_REQUIREMENTS: &[SpecRequirement] = &[
71 level: RequirementLevel::May, 71 level: RequirementLevel::May,
72 }, 72 },
73 SpecRequirement { 73 SpecRequirement {
74 line: 20, 74 line: 26,
75 section: "Nostr Relay", 75 section: "Nostr Relay",
76 text: "MUST serve a NIP-11 document", 76 text: "MUST serve a NIP-11 document",
77 level: RequirementLevel::Must, 77 level: RequirementLevel::Must,
78 }, 78 },
79 SpecRequirement { 79 SpecRequirement {
80 line: 22, 80 line: 28,
81 section: "Nostr Relay", 81 section: "Nostr Relay",
82 text: "MUST list each supported GRASP under `supported_grasps` in format `GRASP-XX` eg `GRASP-01` as a string array", 82 text: "MUST list each supported GRASP under `supported_grasps` in format `GRASP-XX` eg `GRASP-01` as a string array",
83 level: RequirementLevel::Must, 83 level: RequirementLevel::Must,
84 }, 84 },
85 SpecRequirement { 85 SpecRequirement {
86 line: 23, 86 line: 29,
87 section: "Nostr Relay", 87 section: "Nostr Relay",
88 text: "MUST list repository acceptance criteria under `repo_acceptance_criteria` as a human readable string", 88 text: "MUST list repository acceptance criteria under `repo_acceptance_criteria` as a human readable string",
89 level: RequirementLevel::Must, 89 level: RequirementLevel::Must,
90 }, 90 },
91 SpecRequirement { 91 SpecRequirement {
92 line: 24, 92 line: 30,
93 section: "Nostr Relay", 93 section: "Nostr Relay",
94 text: "MUST list brief summary of curation policy under `curation` if events are curated beyond generic SPAM prevention; otherwise `curation` MUST be omitted", 94 text: "MUST list brief summary of curation policy under `curation` if events are curated beyond generic SPAM prevention; otherwise `curation` MUST be omitted",
95 level: RequirementLevel::Must, 95 level: RequirementLevel::Must,
96 }, 96 },
97 // Git Smart HTTP Service section 97 // Git Smart HTTP Service section
98 SpecRequirement { 98 SpecRequirement {
99 line: 28, 99 line: 34,
100 section: "Git Smart HTTP Service", 100 section: "Git Smart HTTP Service",
101 text: "MUST serve a git repository via an unauthenticated git smart http service at `/<npub>/<identifier>.git` for each accepted git repository announcement.", 101 text: "MUST serve a git repository via an unauthenticated git smart http service at `/<npub>/<identifier>.git` for each accepted git repository announcement.",
102 level: RequirementLevel::Must, 102 level: RequirementLevel::Must,
103 }, 103 },
104 SpecRequirement { 104 SpecRequirement {
105 line: 30, 105 line: 36,
106 section: "Git Smart HTTP Service", 106 section: "Git Smart HTTP Service",
107 text: "MUST accept pushes via this service that match the latest repo state announcement on the relay, respecting the recursive maintainer set.", 107 text: "MUST accept pushes via this service that match the latest repo state announcement on the relay, respecting the recursive maintainer set.",
108 level: RequirementLevel::Must, 108 level: RequirementLevel::Must,
109 }, 109 },
110 SpecRequirement { 110 SpecRequirement {
111 line: 32, 111 line: 38,
112 section: "Git Smart HTTP Service", 112 section: "Git Smart HTTP Service",
113 text: "MUST set repository HEAD per repo state announcement as soon as the git data related to that branch has been received.", 113 text: "MUST set repository HEAD per repo state announcement as soon as the git data related to that branch has been received.",
114 level: RequirementLevel::Must, 114 level: RequirementLevel::Must,
115 }, 115 },
116 SpecRequirement { 116 SpecRequirement {
117 line: 34, 117 line: 40,
118 section: "Git Smart HTTP Service", 118 section: "Git Smart HTTP Service",
119 text: "MUST accept pushes via this service to `refs/nostr/<event-id>` but SHOULD reject if event exists on relay listing a different tip and MAY reject based on criteria such as size, SPAM prevention, etc. SHOULD delete and MAY garbage collect these refs if no corresponding git PR event or git PR update event, with a `c` tag that matches the ref tip, is accepted by relay within 20 minutes.", 119 text: "MUST accept pushes via this service to `refs/nostr/<event-id>` but SHOULD reject if event exists on relay listing a different tip and MAY reject based on criteria such as size, SPAM prevention, etc. SHOULD delete and MAY garbage collect these refs if no corresponding git PR event or git PR update event, with a `c` tag that matches the ref tip, is accepted by relay within 20 minutes.",
120 level: RequirementLevel::Must, 120 level: RequirementLevel::Must,
121 }, 121 },
122 SpecRequirement { 122 SpecRequirement {
123 line: 36, 123 line: 42,
124 section: "Git Smart HTTP Service", 124 section: "Git Smart HTTP Service",
125 text: "MUST include `allow-reachable-sha1-in-want` and `allow-tip-sha1-in-want` in advertisement and serve available oids.", 125 text: "MUST include `allow-reachable-sha1-in-want` and `allow-tip-sha1-in-want` in advertisement and serve available oids.",
126 level: RequirementLevel::Must, 126 level: RequirementLevel::Must,
127 }, 127 },
128 SpecRequirement { 128 SpecRequirement {
129 line: 38, 129 line: 44,
130 section: "Git Smart HTTP Service", 130 section: "Git Smart HTTP Service",
131 text: "SHOULD serve a webpage at the same endpoint linking to git nostr client(s) to browse the repository and a 404 page for repositories it doesn't host.", 131 text: "SHOULD serve a webpage at the same endpoint linking to git nostr client(s) to browse the repository and a 404 page for repositories it doesn't host.",
132 level: RequirementLevel::Should, 132 level: RequirementLevel::Should,
133 }, 133 },
134 // CORS Support section 134 // CORS Support section
135 SpecRequirement { 135 SpecRequirement {
136 line: 44, 136 line: 50,
137 section: "CORS Support", 137 section: "CORS Support",
138 text: "Set `Access-Control-Allow-Origin: *` on ALL responses", 138 text: "Set `Access-Control-Allow-Origin: *` on ALL responses",
139 level: RequirementLevel::Must, 139 level: RequirementLevel::Must,
140 }, 140 },
141 SpecRequirement { 141 SpecRequirement {
142 line: 45, 142 line: 51,
143 section: "CORS Support", 143 section: "CORS Support",
144 text: "Set `Access-Control-Allow-Methods: GET, POST` on ALL responses", 144 text: "Set `Access-Control-Allow-Methods: GET, POST` on ALL responses",
145 level: RequirementLevel::Must, 145 level: RequirementLevel::Must,
146 }, 146 },
147 SpecRequirement { 147 SpecRequirement {
148 line: 46, 148 line: 52,
149 section: "CORS Support", 149 section: "CORS Support",
150 text: "Set `Access-Control-Allow-Headers: Content-Type` on ALL responses", 150 text: "Set `Access-Control-Allow-Headers: Content-Type` on ALL responses",
151 level: RequirementLevel::Must, 151 level: RequirementLevel::Must,
152 }, 152 },
153 SpecRequirement { 153 SpecRequirement {
154 line: 47, 154 line: 53,
155 section: "CORS Support", 155 section: "CORS Support",
156 text: "Respond to OPTIONS requests with 204 No Content", 156 text: "Respond to OPTIONS requests with 204 No Content",
157 level: RequirementLevel::Must, 157 level: RequirementLevel::Must,