@vfarcic/dot-ai 0.119.0 → 0.124.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/images/logo.png +0 -0
- package/assets/project-setup/discovery-config.json +671 -0
- package/assets/project-setup/templates/ADOPTERS.md.hbs +119 -0
- package/assets/project-setup/templates/CODE_OF_CONDUCT.md.hbs +132 -0
- package/assets/project-setup/templates/CONTRIBUTING.md.hbs +159 -0
- package/assets/project-setup/templates/LICENSE.hbs +933 -0
- package/assets/project-setup/templates/NOTICE.hbs +5 -0
- package/assets/project-setup/templates/README.md.hbs +11 -0
- package/assets/project-setup/templates/SECURITY.md.hbs +44 -0
- package/assets/project-setup/templates/SUPPORT.md.hbs +146 -0
- package/assets/project-setup/templates/docs/GOVERNANCE.md.hbs +127 -0
- package/assets/project-setup/templates/docs/MAINTAINERS.md.hbs +49 -0
- package/assets/project-setup/templates/docs/ROADMAP.md.hbs +63 -0
- package/assets/project-setup/templates/renovate.json.hbs +38 -0
- package/dist/tools/project-setup/discovery.js +3 -3
- package/dist/tools/project-setup/generate-scope.js +2 -2
- package/package.json +2 -1
- package/shared-prompts/prd-done.md +45 -4
|
Binary file
|
|
@@ -0,0 +1,671 @@
|
|
|
1
|
+
{
|
|
2
|
+
"readme": {
|
|
3
|
+
"files": ["README.md"],
|
|
4
|
+
"questions": [
|
|
5
|
+
{
|
|
6
|
+
"id": "projectName",
|
|
7
|
+
"question": "What is the project name?",
|
|
8
|
+
"required": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"id": "projectDescription",
|
|
12
|
+
"question": "What does this project do?",
|
|
13
|
+
"required": true
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "licenseName",
|
|
17
|
+
"question": "What license does this project use? (e.g., MIT, Apache-2.0, GPL-3.0)",
|
|
18
|
+
"required": false
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"legal": {
|
|
23
|
+
"files": ["LICENSE"],
|
|
24
|
+
"questions": [
|
|
25
|
+
{
|
|
26
|
+
"id": "licenseType",
|
|
27
|
+
"question": "What license type would you like? (MIT, Apache-2.0, GPL-3.0, BSD-3-Clause)",
|
|
28
|
+
"required": true,
|
|
29
|
+
"options": ["MIT", "Apache-2.0", "GPL-3.0", "BSD-3-Clause"]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "year",
|
|
33
|
+
"question": "What year for the copyright? (e.g., 2025)",
|
|
34
|
+
"required": true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "copyrightHolder",
|
|
38
|
+
"question": "Who is the copyright holder? (e.g., Your Name or Your Organization)",
|
|
39
|
+
"required": true
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "projectName",
|
|
43
|
+
"question": "What is the project name?",
|
|
44
|
+
"required": true
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "projectDescription",
|
|
48
|
+
"question": "What does this project do? (Required for GPL-3.0, optional otherwise)",
|
|
49
|
+
"required": false
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "projectUrl",
|
|
53
|
+
"question": "Project URL (optional, used in NOTICE file for Apache-2.0)",
|
|
54
|
+
"required": false
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"conditionalFiles": {
|
|
58
|
+
"NOTICE": {
|
|
59
|
+
"condition": "licenseType === 'Apache-2.0'",
|
|
60
|
+
"reason": "NOTICE file is required for Apache 2.0 licensed projects"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"governance": {
|
|
65
|
+
"files": ["CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "SECURITY.md", "docs/MAINTAINERS.md", "docs/GOVERNANCE.md", "docs/ROADMAP.md"],
|
|
66
|
+
"questions": [
|
|
67
|
+
{
|
|
68
|
+
"id": "projectName",
|
|
69
|
+
"question": "What is the project name?",
|
|
70
|
+
"required": true
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "repositoryUrl",
|
|
74
|
+
"question": "What is the repository URL? (e.g., https://github.com/username/repo)",
|
|
75
|
+
"required": true
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "repoName",
|
|
79
|
+
"question": "Repository name (without owner, used in git clone commands - e.g., 'dot-ai' from 'github.com/vfarcic/dot-ai')",
|
|
80
|
+
"required": true
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "enforcementEmail",
|
|
84
|
+
"question": "Email address for Code of Conduct enforcement",
|
|
85
|
+
"required": true
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "securityEmail",
|
|
89
|
+
"question": "Email address for security vulnerability reports",
|
|
90
|
+
"required": true
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "maintainerEmail",
|
|
94
|
+
"question": "General maintainer contact email",
|
|
95
|
+
"required": true
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "maintainerName",
|
|
99
|
+
"question": "Lead maintainer name",
|
|
100
|
+
"required": true
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "maintainerGithub",
|
|
104
|
+
"question": "Lead maintainer GitHub username (without @)",
|
|
105
|
+
"required": true
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "setupCommand",
|
|
109
|
+
"question": "Command to install dependencies (e.g., 'npm install', 'pip install -r requirements.txt')",
|
|
110
|
+
"required": false
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "testCommand",
|
|
114
|
+
"question": "Command to run tests (e.g., 'npm test', 'pytest')",
|
|
115
|
+
"required": false
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "lintCommand",
|
|
119
|
+
"question": "Command to run linters (e.g., 'npm run lint', 'ruff check')",
|
|
120
|
+
"required": false
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "requiresDco",
|
|
124
|
+
"question": "Does this project require Developer Certificate of Origin (DCO) sign-off? (yes/no)",
|
|
125
|
+
"required": false
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"id": "discussionsUrl",
|
|
129
|
+
"question": "GitHub Discussions URL (optional)",
|
|
130
|
+
"required": false
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "slackChannel",
|
|
134
|
+
"question": "Slack community channel URL (optional)",
|
|
135
|
+
"required": false
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "discordUrl",
|
|
139
|
+
"question": "Discord server URL (optional)",
|
|
140
|
+
"required": false
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "supportedVersions",
|
|
144
|
+
"question": "Supported versions table for SECURITY.md (optional, markdown format)",
|
|
145
|
+
"required": false
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "maintainerPeriod",
|
|
149
|
+
"question": "How long should someone contribute before becoming a maintainer? (e.g., '6 months', '1 year')",
|
|
150
|
+
"required": false
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "inactivityPeriod",
|
|
154
|
+
"question": "How long before inactive maintainers are removed? (e.g., '6 months', '1 year')",
|
|
155
|
+
"required": false
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "hasVoting",
|
|
159
|
+
"question": "Does this project use voting for decisions? (yes/no)",
|
|
160
|
+
"required": false
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "votingThreshold",
|
|
164
|
+
"question": "If voting is used, what's the threshold? (e.g., 'majority', '2/3 majority', 'consensus')",
|
|
165
|
+
"required": false
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "githubProjectUrl",
|
|
169
|
+
"question": "GitHub Project Board URL for roadmap tracking (optional)",
|
|
170
|
+
"required": false
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"id": "shortTermGoals",
|
|
174
|
+
"question": "Short-term goals (1-3 months) in markdown format (optional)",
|
|
175
|
+
"required": false
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "mediumTermGoals",
|
|
179
|
+
"question": "Medium-term goals (3-6 months) in markdown format (optional)",
|
|
180
|
+
"required": false
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "longTermGoals",
|
|
184
|
+
"question": "Long-term goals (6-12 months) in markdown format (optional)",
|
|
185
|
+
"required": false
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"id": "roadmapIntro",
|
|
189
|
+
"question": "Custom introduction for ROADMAP.md (optional)",
|
|
190
|
+
"required": false
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"id": "requiresConsensus",
|
|
194
|
+
"question": "Do major decisions require consensus among maintainers? (yes/no)",
|
|
195
|
+
"required": false
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "hasCommitters",
|
|
199
|
+
"question": "Does this project have a separate 'Committers' role? (yes/no)",
|
|
200
|
+
"required": false
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "hasSteeringCommittee",
|
|
204
|
+
"question": "Does this project have a Steering Committee? (yes/no)",
|
|
205
|
+
"required": false
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
"community": {
|
|
210
|
+
"files": ["SUPPORT.md", "ADOPTERS.md"],
|
|
211
|
+
"questions": [
|
|
212
|
+
{
|
|
213
|
+
"id": "projectName",
|
|
214
|
+
"question": "What is the project name?",
|
|
215
|
+
"required": true
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"id": "projectDescription",
|
|
219
|
+
"question": "What does this project do? (brief description)",
|
|
220
|
+
"required": false
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"id": "projectUrl",
|
|
224
|
+
"question": "What is the project URL? (e.g., https://github.com/username/repo)",
|
|
225
|
+
"required": true
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"id": "docsUrl",
|
|
229
|
+
"question": "What is the documentation URL? (e.g., https://docs.example.com or README)",
|
|
230
|
+
"required": true
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "discussionsUrl",
|
|
234
|
+
"question": "What is the GitHub Discussions URL? (e.g., https://github.com/username/repo/discussions)",
|
|
235
|
+
"required": true
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"id": "stackOverflowTag",
|
|
239
|
+
"question": "Stack Overflow tag for your project (optional, e.g., 'my-project')",
|
|
240
|
+
"required": false
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"id": "slackUrl",
|
|
244
|
+
"question": "Slack workspace URL (optional)",
|
|
245
|
+
"required": false
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"id": "discordUrl",
|
|
249
|
+
"question": "Discord server URL (optional)",
|
|
250
|
+
"required": false
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"id": "forumUrl",
|
|
254
|
+
"question": "Community forum URL (optional)",
|
|
255
|
+
"required": false
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"id": "maintainerCount",
|
|
259
|
+
"question": "How many maintainers does this project have? (number)",
|
|
260
|
+
"required": false
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"id": "criticalResponseTime",
|
|
264
|
+
"question": "Typical response time for critical bugs (e.g., '24 hours', '48 hours', 'best effort')",
|
|
265
|
+
"required": false
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "featureResponseTime",
|
|
269
|
+
"question": "Typical response time for feature requests (e.g., '1 week', '2 weeks', 'best effort')",
|
|
270
|
+
"required": false
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"id": "questionResponseTime",
|
|
274
|
+
"question": "Typical response time for questions (e.g., '48 hours', '1 week', 'best effort')",
|
|
275
|
+
"required": false
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"id": "commercialSupportAvailable",
|
|
279
|
+
"question": "Is commercial support available? (yes/no)",
|
|
280
|
+
"required": false
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"id": "commercialSupportProvider",
|
|
284
|
+
"question": "Who provides commercial support? (if available)",
|
|
285
|
+
"required": false
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"id": "commercialSupportEmail",
|
|
289
|
+
"question": "Email for commercial support inquiries (if available)",
|
|
290
|
+
"required": false
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "securityEmail",
|
|
294
|
+
"question": "Email address for security vulnerability reports",
|
|
295
|
+
"required": true
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"id": "includeUseCase",
|
|
299
|
+
"question": "Should ADOPTERS.md include a use case column? (yes/no)",
|
|
300
|
+
"required": false
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"id": "maintainerOrganization",
|
|
304
|
+
"question": "Add your organization as the first adopter? (organization name, optional)",
|
|
305
|
+
"required": false
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"id": "maintainerUseCase",
|
|
309
|
+
"question": "Your organization's use case (if adding as first adopter)",
|
|
310
|
+
"required": false
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "maintainerWebsite",
|
|
314
|
+
"question": "Your organization's website (if adding as first adopter)",
|
|
315
|
+
"required": false
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "requiresDco",
|
|
319
|
+
"question": "Do PRs require DCO sign-off? (yes/no)",
|
|
320
|
+
"required": false
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"id": "requiresVerification",
|
|
324
|
+
"question": "Do you verify organizations before adding to ADOPTERS? (yes/no)",
|
|
325
|
+
"required": false
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"id": "recognitionProgram",
|
|
329
|
+
"question": "Do you have an adopter recognition program? (yes/no)",
|
|
330
|
+
"required": false
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"id": "maintainerEmail",
|
|
334
|
+
"question": "General maintainer contact email",
|
|
335
|
+
"required": true
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"id": "questionsContact",
|
|
339
|
+
"question": "Contact email for questions about the adopters list (optional, defaults to maintainer email)",
|
|
340
|
+
"required": false
|
|
341
|
+
}
|
|
342
|
+
]
|
|
343
|
+
},
|
|
344
|
+
"github-issues": {
|
|
345
|
+
"files": [".github/ISSUE_TEMPLATE/bug_report.yml", ".github/ISSUE_TEMPLATE/feature_request.yml", ".github/ISSUE_TEMPLATE/config.yml"],
|
|
346
|
+
"questions": [
|
|
347
|
+
{
|
|
348
|
+
"id": "projectName",
|
|
349
|
+
"question": "What is the project name?",
|
|
350
|
+
"required": true
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"id": "githubOrg",
|
|
354
|
+
"question": "GitHub organization or username (e.g., 'octocat' from github.com/octocat/repo)",
|
|
355
|
+
"required": true
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"id": "githubRepo",
|
|
359
|
+
"question": "GitHub repository name (e.g., 'repo' from github.com/octocat/repo)",
|
|
360
|
+
"required": true
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"id": "isNodeProject",
|
|
364
|
+
"question": "Is this a Node.js/TypeScript project? (yes/no)",
|
|
365
|
+
"required": false
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"id": "isPythonProject",
|
|
369
|
+
"question": "Is this a Python project? (yes/no)",
|
|
370
|
+
"required": false
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"id": "isGoProject",
|
|
374
|
+
"question": "Is this a Go project? (yes/no)",
|
|
375
|
+
"required": false
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"id": "isKubernetesProject",
|
|
379
|
+
"question": "Is this a Kubernetes-related project? (yes/no)",
|
|
380
|
+
"required": false
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"id": "hasDiscussions",
|
|
384
|
+
"question": "Do you have GitHub Discussions enabled? (yes/no)",
|
|
385
|
+
"required": false
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"id": "blankIssuesEnabled",
|
|
389
|
+
"question": "Allow blank issues (no template)? Recommended: no (yes/no)",
|
|
390
|
+
"required": false
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"id": "docsSiteUrl",
|
|
394
|
+
"question": "Documentation site URL (optional, leave blank if none)",
|
|
395
|
+
"required": false
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"id": "slackInviteUrl",
|
|
399
|
+
"question": "Slack workspace invite URL (optional, leave blank if none)",
|
|
400
|
+
"required": false
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"id": "discordInviteUrl",
|
|
404
|
+
"question": "Discord server invite URL (optional, leave blank if none)",
|
|
405
|
+
"required": false
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"id": "supportFilePath",
|
|
409
|
+
"question": "Path to SUPPORT.md file (if exists, e.g., 'SUPPORT.md' or 'docs/SUPPORT.md', leave blank if none)",
|
|
410
|
+
"required": false
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"id": "securityFilePath",
|
|
414
|
+
"question": "Path to SECURITY.md file (if exists, e.g., 'SECURITY.md' or leave blank if none)",
|
|
415
|
+
"required": false
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "roadmapPath",
|
|
419
|
+
"question": "Path to ROADMAP.md file (if exists, e.g., 'docs/ROADMAP.md' or leave blank if none)",
|
|
420
|
+
"required": false
|
|
421
|
+
}
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
"pr-template": {
|
|
425
|
+
"files": [".github/PULL_REQUEST_TEMPLATE.md"],
|
|
426
|
+
"questions": [
|
|
427
|
+
{
|
|
428
|
+
"id": "projectName",
|
|
429
|
+
"question": "What is the project name?",
|
|
430
|
+
"required": true
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"id": "requiresDco",
|
|
434
|
+
"question": "Require DCO (Developer Certificate of Origin) sign-off on all commits? (yes/no)",
|
|
435
|
+
"required": false
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"id": "requiresConventionalCommits",
|
|
439
|
+
"question": "Enforce Conventional Commits format for PR titles? (yes/no)",
|
|
440
|
+
"required": false
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"id": "includesSecurityChecklist",
|
|
444
|
+
"question": "Include security checklist in PR template? (yes/no)",
|
|
445
|
+
"required": false
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"id": "requiresScreenshots",
|
|
449
|
+
"question": "Require screenshots for UI changes? (yes/no)",
|
|
450
|
+
"required": false
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"id": "contributingPath",
|
|
454
|
+
"question": "Path to CONTRIBUTING.md file (if exists, e.g., 'CONTRIBUTING.md' or 'docs/CONTRIBUTING.md', leave blank if none)",
|
|
455
|
+
"required": false
|
|
456
|
+
}
|
|
457
|
+
]
|
|
458
|
+
},
|
|
459
|
+
"github-community": {
|
|
460
|
+
"files": [".github/CODEOWNERS", ".github/release.yml"],
|
|
461
|
+
"questions": [
|
|
462
|
+
{
|
|
463
|
+
"id": "useTeams",
|
|
464
|
+
"question": "Use GitHub teams for code ownership? (yes/no) - If yes, requires organization; if no, uses individual maintainer usernames",
|
|
465
|
+
"required": false
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"id": "githubOrg",
|
|
469
|
+
"question": "GitHub organization name (required if using teams, e.g., 'kubernetes', 'apache')",
|
|
470
|
+
"required": false
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"id": "defaultTeam",
|
|
474
|
+
"question": "Default team name for code ownership (required if using teams, e.g., 'maintainers', 'core-team')",
|
|
475
|
+
"required": false
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"id": "maintainerUsernames",
|
|
479
|
+
"question": "Maintainer GitHub usernames (comma-separated, without @, required if not using teams, e.g., 'octocat,torvalds')",
|
|
480
|
+
"required": false
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"id": "enableFunding",
|
|
484
|
+
"question": "Enable GitHub sponsor button with funding links? (yes/no)",
|
|
485
|
+
"required": false
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"id": "githubSponsors",
|
|
489
|
+
"question": "GitHub Sponsors username (optional, leave blank if not using GitHub Sponsors)",
|
|
490
|
+
"required": false
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"id": "openCollective",
|
|
494
|
+
"question": "Open Collective project slug (optional, e.g., 'webpack', 'babel')",
|
|
495
|
+
"required": false
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"id": "patreon",
|
|
499
|
+
"question": "Patreon username (optional, leave blank if not using Patreon)",
|
|
500
|
+
"required": false
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"id": "kofi",
|
|
504
|
+
"question": "Ko-fi username (optional, leave blank if not using Ko-fi)",
|
|
505
|
+
"required": false
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
"id": "tidelift",
|
|
509
|
+
"question": "Tidelift package name (optional, format: npm/package-name or pypi/package-name)",
|
|
510
|
+
"required": false
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"id": "customFunding",
|
|
514
|
+
"question": "Custom funding URL (optional, leave blank if not using custom funding link)",
|
|
515
|
+
"required": false
|
|
516
|
+
}
|
|
517
|
+
],
|
|
518
|
+
"conditionalFiles": {
|
|
519
|
+
".github/FUNDING.yml": {
|
|
520
|
+
"condition": "enableFunding === 'yes' || enableFunding === 'true' || enableFunding === true",
|
|
521
|
+
"reason": "FUNDING.yml is only generated when funding/sponsorship is enabled"
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
},
|
|
525
|
+
"github-security": {
|
|
526
|
+
"files": [".github/workflows/scorecard.yml"],
|
|
527
|
+
"questions": [
|
|
528
|
+
{
|
|
529
|
+
"id": "githubOrg",
|
|
530
|
+
"question": "GitHub organization or username (e.g., 'kubernetes', 'octocat')",
|
|
531
|
+
"required": true
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"id": "githubRepo",
|
|
535
|
+
"question": "GitHub repository name (e.g., 'kubernetes', 'hello-world')",
|
|
536
|
+
"required": true
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
"id": "defaultBranch",
|
|
540
|
+
"question": "What is your default branch name? (e.g., main, master)",
|
|
541
|
+
"required": true
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"id": "scheduleCron",
|
|
545
|
+
"question": "Cron expression for when to run security analysis (standard 5-field cron syntax). Examples: '30 1 * * 6' (weekly on Saturdays at 1:30 AM UTC), '30 1 * * *' (daily at 1:30 AM UTC), '30 1 1 * *' (monthly on 1st at 1:30 AM UTC). Recommended: weekly",
|
|
546
|
+
"required": true
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"id": "scheduleDescription",
|
|
550
|
+
"question": "Human-readable description of the schedule (e.g., 'Weekly on Saturdays at 1:30 AM UTC', 'Daily at 1:30 AM UTC')",
|
|
551
|
+
"required": true
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"id": "publishResults",
|
|
555
|
+
"question": "Publish results to enable Scorecard badge and REST API access? (true/false - recommended: true for public repos)",
|
|
556
|
+
"required": true
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"id": "isPrivateRepo",
|
|
560
|
+
"question": "Is this a private repository? (yes/no) - Private repos need additional permissions to detect SAST tools and query commits",
|
|
561
|
+
"required": true
|
|
562
|
+
}
|
|
563
|
+
],
|
|
564
|
+
"additionalInstructions": "If you enabled publish_results: true, you can add an OpenSSF Scorecard badge to your README.md to display your security score:\n\n[](https://scorecard.dev/viewer/?uri=github.com/{{githubOrg}}/{{githubRepo}})\n\nThe badge will display your repository's security score and link to detailed results at https://scorecard.dev/viewer/?uri=github.com/{{githubOrg}}/{{githubRepo}}"
|
|
565
|
+
},
|
|
566
|
+
"github-automation": {
|
|
567
|
+
"files": ["renovate.json", ".github/labeler.yml", ".github/workflows/labeler.yml", ".github/workflows/stale.yml"],
|
|
568
|
+
"questions": [
|
|
569
|
+
{
|
|
570
|
+
"id": "prConcurrentLimit",
|
|
571
|
+
"question": "Maximum number of concurrent pull requests for Renovate (recommended: 3-10, leave empty for default: 10)",
|
|
572
|
+
"required": false
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"id": "prHourlyLimit",
|
|
576
|
+
"question": "Maximum PRs per hour for Renovate (0 for unlimited, recommended: 2-5, leave empty for default: 0)",
|
|
577
|
+
"required": false
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"id": "enableDependencyDashboard",
|
|
581
|
+
"question": "Enable Renovate dependency dashboard issue? (true/false - shows all pending updates in one place, leave empty for default: true)",
|
|
582
|
+
"required": false
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"id": "enableVulnerabilityAlerts",
|
|
586
|
+
"question": "Enable Renovate OSV vulnerability alerts? (true/false - checks dependencies for known vulnerabilities, leave empty for default: true)",
|
|
587
|
+
"required": false
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"id": "schedule",
|
|
591
|
+
"question": "Schedule for Renovate dependency checks (text format like 'before 5am on monday', 'after 10pm every weekday', 'every weekend', leave empty for default: 'before 5am on monday')",
|
|
592
|
+
"required": false
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"id": "groupDependencies",
|
|
596
|
+
"question": "Group non-major dependencies into single PRs in Renovate? (true/false - reduces PR volume, leave empty for default: true)",
|
|
597
|
+
"required": false
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"id": "automergeMinor",
|
|
601
|
+
"question": "Auto-merge minor and patch updates in Renovate? (true/false - automatically merges non-breaking updates, leave empty for default: false)",
|
|
602
|
+
"required": false
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"id": "automergeSecurity",
|
|
606
|
+
"question": "Auto-merge security updates in Renovate? (true/false - automatically merges security patches, leave empty for default: false)",
|
|
607
|
+
"required": false
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"id": "sourceDirectory",
|
|
611
|
+
"question": "Source code directory for labeler (optional, e.g., 'src', 'lib'). Leave empty if no specific source directory",
|
|
612
|
+
"required": false
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"id": "testDirectory",
|
|
616
|
+
"question": "Test directory for labeler (optional, e.g., 'tests', 'test', '__tests__'). Leave empty if tests follow common patterns",
|
|
617
|
+
"required": false
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"id": "infrastructureDirectory",
|
|
621
|
+
"question": "Infrastructure directory for labeler (optional, e.g., 'infrastructure', 'deploy'). Leave empty if using common patterns (terraform/, k8s/, etc.)",
|
|
622
|
+
"required": false
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"id": "staleBotSchedule",
|
|
626
|
+
"question": "Cron schedule for stale bot (e.g., '0 0 * * *' for daily at midnight, leave empty for default: '0 0 * * *')",
|
|
627
|
+
"required": false
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"id": "daysBeforeIssueStale",
|
|
631
|
+
"question": "Days before marking issue as stale (recommended: 60-90, leave empty for default: 60)",
|
|
632
|
+
"required": false
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
"id": "daysBeforeIssueClose",
|
|
636
|
+
"question": "Days before closing stale issue (recommended: 7-14, leave empty for default: 7)",
|
|
637
|
+
"required": false
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"id": "daysBeforePrStale",
|
|
641
|
+
"question": "Days before marking PR as stale (recommended: 30-60, leave empty for default: 30)",
|
|
642
|
+
"required": false
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
"id": "daysBeforePrClose",
|
|
646
|
+
"question": "Days before closing stale PR (recommended: 7-14, leave empty for default: 7)",
|
|
647
|
+
"required": false
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"id": "exemptIssueLabels",
|
|
651
|
+
"question": "Issue labels that exempt from stale bot (comma-separated, e.g., 'pinned,security,bug,needs-maintainer-response', leave empty for default: 'pinned,security')",
|
|
652
|
+
"required": false
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"id": "exemptPrLabels",
|
|
656
|
+
"question": "PR labels that exempt from stale bot (comma-separated, e.g., 'pinned,security,work-in-progress', leave empty for default: 'pinned,security')",
|
|
657
|
+
"required": false
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"id": "exemptMilestones",
|
|
661
|
+
"question": "Exempt issues/PRs in milestones from stale bot? (true/false, leave empty for default: true)",
|
|
662
|
+
"required": false
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"id": "exemptAssignees",
|
|
666
|
+
"question": "Exempt assigned issues/PRs from stale bot? (true/false, leave empty for default: true)",
|
|
667
|
+
"required": false
|
|
668
|
+
}
|
|
669
|
+
]
|
|
670
|
+
}
|
|
671
|
+
}
|