Skip to content

Commit 33657f4

Browse files
authored
Merge branch 'main' into 1185-git-request-classification
2 parents cfdc2a4 + 0b64e7f commit 33657f4

File tree

10 files changed

+1099
-229
lines changed

10 files changed

+1099
-229
lines changed

config.schema.json

Lines changed: 179 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,6 @@
3030
},
3131
"additionalProperties": false
3232
},
33-
"github": {
34-
"type": "object",
35-
"description": "Deprecated: Defunct property that was used to provide the API URL for GitHub. No longer referenced in the codebase.",
36-
"properties": {
37-
"baseUrl": {
38-
"type": "string",
39-
"format": "uri",
40-
"examples": ["https://api.github.com"],
41-
"deprecated": true
42-
}
43-
},
44-
"additionalProperties": false
45-
},
4633
"gitleaks": {
4734
"type": "object",
4835
"description": "Configuration for the gitleaks (https://github.com/gitleaks/gitleaks) plugin",
@@ -57,16 +44,188 @@
5744
"additionalProperties": false
5845
},
5946
"commitConfig": {
60-
"description": "Enforce rules and patterns on commits including e-mail and message",
61-
"type": "object"
47+
"title": "CommitConfig",
48+
"description": "Block commits based on rules defined over author/committer e-mail addresses, commit message content and diff content",
49+
"type": "object",
50+
"additionalProperties": false,
51+
"properties": {
52+
"author": {
53+
"title": "Author",
54+
"description": "Rules applied to commit authors",
55+
"type": "object",
56+
"additionalProperties": false,
57+
"properties": {
58+
"email": {
59+
"title": "Email",
60+
"description": "Rules applied to author email addresses",
61+
"type": "object",
62+
"additionalProperties": false,
63+
"properties": {
64+
"local": {
65+
"title": "Local",
66+
"description": "Rules applied to the local portion of the email address (i.e. section before the @ symbol)",
67+
"type": "object",
68+
"additionalProperties": false,
69+
"properties": {
70+
"block": {
71+
"title": "Block",
72+
"description": "Block commits with author email addresses where the first part matches this regular expression",
73+
"type": "string"
74+
}
75+
},
76+
"required": []
77+
},
78+
"domain": {
79+
"title": "Domain",
80+
"description": "Rules applied to the domain portion of the email address (i.e. section after the @ symbol)",
81+
"type": "object",
82+
"additionalProperties": false,
83+
"properties": {
84+
"allow": {
85+
"title": "Allow",
86+
"description": "Allow only commits where the domain part of the email address matches this regular expression",
87+
"type": "string"
88+
}
89+
},
90+
"required": []
91+
}
92+
},
93+
"required": []
94+
}
95+
},
96+
"required": []
97+
},
98+
"message": {
99+
"title": "Message",
100+
"description": "Rules applied to commit messages",
101+
"type": "object",
102+
"additionalProperties": false,
103+
"properties": {
104+
"block": {
105+
"title": "MessageBlock",
106+
"description": "Block commits where the commit message matches any of the given patterns",
107+
"type": "object",
108+
"additionalProperties": false,
109+
"properties": {
110+
"literals": {
111+
"title": "MessageBlockLiteral",
112+
"description": "Block commits where the commit message contains any of the given string literals",
113+
"type": "array",
114+
"items": { "type": "string" }
115+
},
116+
"patterns": {
117+
"title": "MessageBlockLiteral",
118+
"description": "Block commits where the commit message matches any of the given regular expressions",
119+
"type": "array",
120+
"items": { "type": "string" }
121+
}
122+
},
123+
"required": []
124+
}
125+
},
126+
"required": []
127+
},
128+
"diff": {
129+
"title": "Diff",
130+
"description": "Rules applied to commit diff content",
131+
"type": "object",
132+
"additionalProperties": false,
133+
"properties": {
134+
"block": {
135+
"title": "DiffBlock",
136+
"description": "Block commits where the commit diff matches any of the given patterns",
137+
"type": "object",
138+
"additionalProperties": false,
139+
"properties": {
140+
"literals": {
141+
"title": "DiffBlockLiteral",
142+
"description": "Block commits where the commit diff content contains any of the given string literals",
143+
"type": "array",
144+
"items": {
145+
"type": "string"
146+
}
147+
},
148+
"patterns": {
149+
"title": "MessageBlockPatterns",
150+
"description": "Block commits where the commit diff content matches any of the given regular expressions",
151+
"type": "array",
152+
"items": {}
153+
},
154+
"providers": {
155+
"title": "MessageBlockProviders",
156+
"description": "Block commits where the commit diff content matches any of the given regular expressions, except where the repository path (project/organisation) matches one of the listed privateOrganisations. The keys in this array are listed as the block type in logs.",
157+
"type": "object",
158+
"additionalProperties": { "type": "string" }
159+
}
160+
},
161+
"required": []
162+
}
163+
},
164+
"required": []
165+
}
166+
},
167+
"required": []
62168
},
63169
"attestationConfig": {
64-
"description": "Customisable questions to add to attestation form",
65-
"type": "object"
170+
"title": "AttestationConfig",
171+
"description": "Configuration for the attestation form displayed to reviewers. Reviewers will need to check the box next to each question in order to complete the review attestation.",
172+
"type": "object",
173+
"additionalProperties": false,
174+
"properties": {
175+
"questions": {
176+
"title": "AttestationQuestions",
177+
"description": "Customisable attestation questions to add to attestation form.",
178+
"type": "array",
179+
"items": {
180+
"type": "object",
181+
"additionalProperties": false,
182+
"properties": {
183+
"label": {
184+
"title": "QuestionLabel",
185+
"description": "The text of the question that will be displayed to the reviewer",
186+
"type": "string"
187+
},
188+
"tooltip": {
189+
"title": "QuestionTooltip",
190+
"description": "A tooltip and optional set of links that will be displayed on mouseover of the question and used to provide additional guidance to the reviewer.",
191+
"type": "object",
192+
"additionalProperties": false,
193+
"properties": {
194+
"text": {
195+
"type": "string"
196+
},
197+
"links": {
198+
"type": "array",
199+
"items": { "type": "string", "format": "url" }
200+
}
201+
},
202+
"required": ["text"]
203+
}
204+
},
205+
"required": ["label", "tooltip"],
206+
"title": "Question"
207+
}
208+
}
209+
},
210+
"required": []
66211
},
67212
"domains": {
68-
"description": "Provide domains to use alternative to the defaults",
69-
"type": "object"
213+
"description": "Provide custom URLs for the git proxy interfaces in case it cannot determine its own URL",
214+
"type": "object",
215+
"properties": {
216+
"proxy": {
217+
"title": "ProxyUrl",
218+
"description": "Override for the default proxy URL, should include the protocol",
219+
"type": "string",
220+
"format": "url"
221+
},
222+
"service": {
223+
"title": "Service UI URL",
224+
"description": "Override for the service UI URL, should include the protocol",
225+
"type": "string",
226+
"format": "url"
227+
}
228+
}
70229
},
71230
"rateLimit": {
72231
"description": "API Rate limiting configuration.",
@@ -93,7 +252,7 @@
93252
"additionalProperties": false
94253
},
95254
"privateOrganizations": {
96-
"description": "Pattern searches for listed private organizations are disabled",
255+
"description": "Provider searches for listed private organizations are disabled, see commitConfig.diff.block.providers",
97256
"type": "array"
98257
},
99258
"urlShortener": {

0 commit comments

Comments
 (0)