redlinegate 0.0.2 → 0.0.3
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/README.md +2 -2
- package/dist/bin/redline.js +247 -42
- package/dist/bin/redline.js.map +1 -1
- package/dist/commands/init.js +274 -26
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/remove.js +40 -0
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/status.js +94 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/config/redline-json.js +18 -1
- package/dist/config/redline-json.js.map +1 -1
- package/dist/core/git.js +50 -3
- package/dist/core/git.js.map +1 -1
- package/dist/core/version.js +6 -0
- package/dist/core/version.js.map +1 -1
- package/dist/detect/setup.js +200 -0
- package/dist/detect/setup.js.map +1 -0
- package/dist/detect/stack.js +56 -17
- package/dist/detect/stack.js.map +1 -1
- package/dist/metrics/options.js +0 -9
- package/dist/metrics/options.js.map +1 -1
- package/dist/platforms/azure/install.js +1 -5
- package/dist/platforms/azure/install.js.map +1 -1
- package/dist/platforms/azure/verify.js +4 -2
- package/dist/platforms/azure/verify.js.map +1 -1
- package/dist/platforms/github/install.js +110 -22
- package/dist/platforms/github/install.js.map +1 -1
- package/dist/platforms/github/vendor.js +81 -0
- package/dist/platforms/github/vendor.js.map +1 -0
- package/dist/platforms/github/verify.js +17 -2
- package/dist/platforms/github/verify.js.map +1 -1
- package/dist/platforms/types.js +4 -0
- package/dist/platforms/types.js.map +1 -1
- package/dist/render/standards.js +8 -1
- package/dist/render/standards.js.map +1 -1
- package/dist/render/vendors.js +9 -52
- package/dist/render/vendors.js.map +1 -1
- package/dist/rules/catalogue.js +127 -0
- package/dist/rules/catalogue.js.map +1 -0
- package/dist/ui/facts.js +30 -1
- package/dist/ui/facts.js.map +1 -1
- package/dist/ui/prompt.js +137 -8
- package/dist/ui/prompt.js.map +1 -1
- package/dist/ui/report.js +214 -0
- package/dist/ui/report.js.map +1 -0
- package/dist/ui/tty.js +358 -25
- package/dist/ui/tty.js.map +1 -1
- package/dist/ui/wizard.js +133 -19
- package/dist/ui/wizard.js.map +1 -1
- package/dist/verify/remote.js +33 -0
- package/dist/verify/remote.js.map +1 -1
- package/package.json +4 -1
- package/scripts/fetch-stars.mjs +92 -0
- package/scripts/lib/rules.d.mts +18 -0
- package/scripts/publish-local.mjs +183 -0
- package/standards/manifest.json +79 -8
- package/standards/stacks/angular.md +57 -0
- package/standards/stacks/dom.md +61 -0
- package/standards/stacks/svelte.md +45 -0
- package/standards/stacks/vue.md +54 -0
- package/templates/redline.yml +4 -0
- package/workflows/redline-gate.yml +28 -4
- package/scripts/measure-context.mjs +0 -101
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ OpenAI Codex / `AGENTS.md`, and Claude. A Cursor adapter exists but ships disabl
|
|
|
39
39
|
| `scripts/validate.mjs` | Bundle self-check, run by this repo's CI | this repo |
|
|
40
40
|
| `scripts/check-pins.mjs` | Re-resolves SHA-pinned actions against their upstream tag | this repo's CI |
|
|
41
41
|
| `scripts/assign-rule-ids.mjs` | Assigns and verifies the stable `<stack>/<slug>` id on every rule | this repo |
|
|
42
|
-
| `seeded/` | Recall corpus (
|
|
42
|
+
| `seeded/` | Recall corpus (16 stacks, 117 BLOCKER seeds) + precision corpus, scored by `scripts/score-seeds.mjs` | validation only, never merged |
|
|
43
43
|
|
|
44
44
|
## Language coverage vs org reality
|
|
45
45
|
|
|
@@ -73,7 +73,7 @@ path — a prompt in a pipeline is a hang with nobody there to answer it:
|
|
|
73
73
|
|
|
74
74
|
```sh
|
|
75
75
|
npx redlinegate init --dry-run # the plan; writes nothing, contacts no host
|
|
76
|
-
npx redlinegate init --profile web,infra
|
|
76
|
+
npx redlinegate init --profile web-react,infra # a React app with its own Terraform beside it
|
|
77
77
|
npx redlinegate init --pipeline azure-pipelines # on GitHub, but built by Azure Pipelines
|
|
78
78
|
```
|
|
79
79
|
|
package/dist/bin/redline.js
CHANGED
|
@@ -9,9 +9,13 @@ import { isSeverity } from "../core/severity.js";
|
|
|
9
9
|
import { isRung, RUNGS } from "../enforce/ladder.js";
|
|
10
10
|
import { resolvePlatform as defaultResolvePlatform, } from "../platforms/resolve.js";
|
|
11
11
|
import { init, ONBOARD_BRANCH } from "../commands/init.js";
|
|
12
|
+
import { explain, loadRules } from "../rules/catalogue.js";
|
|
13
|
+
import { formatStatus, status } from "../commands/status.js";
|
|
12
14
|
import { createGit } from "../core/git.js";
|
|
13
15
|
import { parseRemote } from "../platforms/detect.js";
|
|
14
16
|
import { Cancelled, createPrompter, isInteractive } from "../ui/prompt.js";
|
|
17
|
+
import { renderReport } from "../ui/report.js";
|
|
18
|
+
import { colorDepth, colorEnabled, glyphs, palette } from "../ui/tty.js";
|
|
15
19
|
import { gatherFacts } from "../ui/facts.js";
|
|
16
20
|
import { runWizard } from "../ui/wizard.js";
|
|
17
21
|
import { capabilitySelection, OPTIONAL_CAPABILITIES, } from "../config/redline-json.js";
|
|
@@ -31,15 +35,21 @@ import { createSyncHost } from "../sync/host.js";
|
|
|
31
35
|
import { verifyRemote } from "../verify/remote.js";
|
|
32
36
|
import { createRemoteVerifyHost } from "../verify/host.js";
|
|
33
37
|
import { standardsVersion } from "../commands/sync.js";
|
|
34
|
-
import { isGatePipeline } from "../platforms/types.js";
|
|
38
|
+
import { isGatePipeline, isGateSource } from "../platforms/types.js";
|
|
35
39
|
const PACKAGE_ROOT = fileURLToPath(new URL('../../', import.meta.url));
|
|
36
40
|
const USAGE = [
|
|
37
41
|
'redline — engineering control plane',
|
|
38
42
|
'',
|
|
39
43
|
' redline init [--profile <list>] [--vendors <list>] [--blocking] [--no-a11y] [--dry-run] [--repair]',
|
|
40
44
|
' [--adopt-caller] [--skip <list>] [--with <list>] [--pipeline <name>]',
|
|
45
|
+
' [--gate-source org|local] [--no-commit]',
|
|
41
46
|
' onboard this repository: standards, security floor, merge gate (advisory), registration',
|
|
42
47
|
' --dry-run print the plan; writes nothing, needs no credential, contacts no host',
|
|
48
|
+
' --no-commit write the files into the working tree and stop: no repository setting is',
|
|
49
|
+
' changed, no branch is made, nothing is committed and no pull request is',
|
|
50
|
+
' opened. Needs no credential and contacts no host, so it works offline — and',
|
|
51
|
+
' so an org-sourced caller is written without checking the organisation',
|
|
52
|
+
' publishes the gate it references. Run redline verify once you have committed',
|
|
43
53
|
' --profile <list> one profile, or several separated by commas, whose stacks are',
|
|
44
54
|
' rendered together — a React app with its own Terraform beside it is',
|
|
45
55
|
' web,infra. The recorded name is sorted, so the order you type cannot',
|
|
@@ -64,9 +74,30 @@ const USAGE = [
|
|
|
64
74
|
' organisation-wide minimum and is refused by name rather than deselected',
|
|
65
75
|
' --with <list> the same names, selected again — how a deselection recorded in .redline.json is',
|
|
66
76
|
' reversed',
|
|
77
|
+
' --gate-source org|local where the gate machinery lives. org (the default) references the',
|
|
78
|
+
' reusable workflow published at <org>/.github; local vendors a copy into this',
|
|
79
|
+
' repository at .github/workflows/redline-gate.yml, for a repository whose',
|
|
80
|
+
' organisation has no shared .github repo yet. local is the WEAKER control: the',
|
|
81
|
+
' workflow runs from the pull request\'s own head commit, so a pull request can',
|
|
82
|
+
' edit the gate that is judging it — protect .github/workflows/ with CODEOWNERS.',
|
|
83
|
+
' Omitting the flag keeps whatever the repository already recorded',
|
|
67
84
|
` --rung <name> the enforcement rung: ${RUNGS.join(', ')}. A promotion needs recorded`,
|
|
68
85
|
' evidence and is refused without it; a demotion is always allowed. Omitting',
|
|
69
86
|
' the flag keeps whatever the repository already recorded',
|
|
87
|
+
' --branches <patterns> which branches the merge policy governs, comma separated, in the',
|
|
88
|
+
' host\'s own syntax (~DEFAULT_BRANCH, refs/heads/release/*). Default: the default branch',
|
|
89
|
+
' alone. Widening this widens an enforcement boundary, so it is never detected for you.',
|
|
90
|
+
' --review-owners <list> who owns the paths seeded into CODEOWNERS — a team, a user or',
|
|
91
|
+
' an email, several separated by commas. Defaults to the platform team, which may not',
|
|
92
|
+
' exist in your organisation: GitHub ignores an owner it cannot resolve, so the file',
|
|
93
|
+
' would install and enforce nothing.',
|
|
94
|
+
' --setup <list> controls to install alongside Redline: dependabot, renovate, codeql.',
|
|
95
|
+
' Only what works with no account and no token is offered — writes .github/dependabot.yml,',
|
|
96
|
+
' renovate.json, .github/workflows/codeql.yml. An existing file is never overwritten.',
|
|
97
|
+
' --integrations <list> comma-separated ids of controls this repository already runs',
|
|
98
|
+
' (sonarqube,snyk,mend,dependabot,renovate,gitleaks,trufflehog,codeql). Overrides what',
|
|
99
|
+
' detection found — it reads a checkout, so it cannot see a scanner wired through a',
|
|
100
|
+
' shared pipeline template. Recorded, so the correction is made once.',
|
|
70
101
|
' --pipeline <name> github-actions or azure-pipelines — what actually runs this',
|
|
71
102
|
' repository\'s pull request checks. Asked separately from the host because',
|
|
72
103
|
' the two come apart: a repository on GitHub can be built entirely by Azure',
|
|
@@ -86,7 +117,8 @@ const USAGE = [
|
|
|
86
117
|
' the security floor (secret scanning, push protection, dependency alerts) is the',
|
|
87
118
|
' organisation\'s minimum, not Redline\'s state — no flag here turns it off',
|
|
88
119
|
'',
|
|
89
|
-
' redline verify [--gate] [--repo <owner/name>]',
|
|
120
|
+
' redline verify [--gate] [--repo <owner/name>] [--json]',
|
|
121
|
+
' --json the whole report as JSON, for a wrapper that has to act on it',
|
|
90
122
|
' check this repository still matches what .redline.json claims',
|
|
91
123
|
' --repo <owner/name> check a repository over the API, with no checkout — a check',
|
|
92
124
|
' that genuinely needs a working tree reports ?? rather than passing',
|
|
@@ -100,6 +132,13 @@ const USAGE = [
|
|
|
100
132
|
' redline policy --diff-file <path>',
|
|
101
133
|
' evaluate the rules a checker can decide, with no model call. Exit 1 on a BLOCKER',
|
|
102
134
|
'',
|
|
135
|
+
' redline status [--json]',
|
|
136
|
+
' what is installed here, how hard it bites, what an administrator still owes',
|
|
137
|
+
' you and whether the standards have moved on. Reads the checkout only.',
|
|
138
|
+
' redline explain <rule-id> [--json]',
|
|
139
|
+
' what a rule means, who decided it, which files it is scoped to and which',
|
|
140
|
+
' profiles receive it. The id is the bracketed part of a finding.',
|
|
141
|
+
' --list every rule id in the standards, with its severity',
|
|
103
142
|
' redline exempt --body-file <path> [--scope <check>]',
|
|
104
143
|
' decide whether a pull request carries a valid exemption for a failing process',
|
|
105
144
|
' check — a reason, an actor and an expiry, not a bare label. Exit 0 if it applies',
|
|
@@ -153,7 +192,20 @@ export async function run(argv, deps = {}) {
|
|
|
153
192
|
const runInitWizard = async (dir, packageRoot) => {
|
|
154
193
|
const prompter = deps.prompter?.() ?? createPrompter();
|
|
155
194
|
const answers = await runWizard(prompter, gatherFacts({ cwd: dir, root: packageRoot, detectedHost: detectHost() }));
|
|
156
|
-
|
|
195
|
+
// The prompter comes back with the answers because the work starts the
|
|
196
|
+
// moment the last question is answered, and the operator has to be able to
|
|
197
|
+
// see that it did. Building a second one here would mean a second set of
|
|
198
|
+
// signal handlers on the same terminal.
|
|
199
|
+
return { answers, prompter };
|
|
200
|
+
};
|
|
201
|
+
// Report colour is decided the same way the prompts decide it, and from the
|
|
202
|
+
// same env: NO_COLOR, FORCE_COLOR, a dumb terminal and a pipe all have to
|
|
203
|
+
// mean the same thing in both halves of one run. An injected sink is a test
|
|
204
|
+
// or a pipe, so it is never painted.
|
|
205
|
+
const reportTheme = {
|
|
206
|
+
palette: palette(deps.sink === undefined && colorEnabled(process.env, process.stdout.isTTY === true), colorDepth(process.env)),
|
|
207
|
+
glyphs: glyphs(process.env),
|
|
208
|
+
width: process.stdout.columns ?? 80,
|
|
157
209
|
};
|
|
158
210
|
const resolve = deps.resolvePlatform ??
|
|
159
211
|
((dir, options) => defaultResolvePlatform(dir, options));
|
|
@@ -185,12 +237,18 @@ export async function run(argv, deps = {}) {
|
|
|
185
237
|
tmf: { type: 'boolean' },
|
|
186
238
|
'no-tmf': { type: 'boolean' },
|
|
187
239
|
'dry-run': { type: 'boolean' },
|
|
240
|
+
'no-commit': { type: 'boolean' },
|
|
188
241
|
repair: { type: 'boolean' },
|
|
189
242
|
'adopt-caller': { type: 'boolean' },
|
|
190
243
|
skip: { type: 'string' },
|
|
191
244
|
with: { type: 'string' },
|
|
192
245
|
rung: { type: 'string' },
|
|
193
246
|
pipeline: { type: 'string' },
|
|
247
|
+
'gate-source': { type: 'string' },
|
|
248
|
+
integrations: { type: 'string' },
|
|
249
|
+
'review-owners': { type: 'string' },
|
|
250
|
+
setup: { type: 'string' },
|
|
251
|
+
branches: { type: 'string' },
|
|
194
252
|
},
|
|
195
253
|
allowPositionals: false,
|
|
196
254
|
}));
|
|
@@ -248,59 +306,133 @@ export async function run(argv, deps = {}) {
|
|
|
248
306
|
if (values.pipeline !== undefined && !isGatePipeline(values.pipeline)) {
|
|
249
307
|
throw new RedlineError('usage', `--pipeline must be github-actions or azure-pipelines, not "${values.pipeline}"`, 'a repository on GitHub whose pull request checks are Azure Pipelines wants azure-pipelines');
|
|
250
308
|
}
|
|
309
|
+
if (values['gate-source'] !== undefined && !isGateSource(values['gate-source'])) {
|
|
310
|
+
throw new RedlineError('usage', `--gate-source must be org or local, not "${values['gate-source']}"`, 'org references the reusable gate in the organisation .github repository; local vendors a ' +
|
|
311
|
+
'copy into this repository, which means a pull request can edit the gate judging it');
|
|
312
|
+
}
|
|
251
313
|
const pipelineChoice = wizard?.answers.pipeline ?? values.pipeline;
|
|
314
|
+
const gateSourceChoice = wizard?.answers.gateSource ?? values['gate-source'];
|
|
252
315
|
const dryRun = values['dry-run'] === true || wizard?.answers.action === 'dry-run';
|
|
316
|
+
const noCommit = values['no-commit'] === true || wizard?.answers.action === 'no-commit';
|
|
253
317
|
const repair = values.repair === true;
|
|
254
318
|
const adoptCaller = values['adopt-caller'] === true;
|
|
255
319
|
// A dry run sends no request, so it must not require a credential —
|
|
256
|
-
// see ResolvePlatformOptions.lazyCredentials.
|
|
257
|
-
//
|
|
258
|
-
|
|
320
|
+
// see ResolvePlatformOptions.lazyCredentials. --no-commit contacts no host
|
|
321
|
+
// either, so it must not demand a credential up front any more than a dry
|
|
322
|
+
// run does — working offline is most of the reason it exists. Every other
|
|
323
|
+
// path here resolves one up front, exactly as before.
|
|
324
|
+
const platform = await resolve(cwd, dryRun || noCommit ? { lazyCredentials: true } : {});
|
|
259
325
|
const profileChoice = wizard?.answers.profile ?? values.profile;
|
|
260
326
|
const vendorChoice = wizard ? [...wizard.answers.vendors] : vendors;
|
|
261
327
|
const rungChoice = wizard?.answers.rung ?? values.rung;
|
|
328
|
+
const setupChoice = wizard
|
|
329
|
+
? [...wizard.answers.setup]
|
|
330
|
+
: values.setup?.split(',').map((id) => id.trim()).filter((id) => id !== '');
|
|
331
|
+
const branchChoice = values.branches?.split(',').map((b) => b.trim()).filter((b) => b !== '');
|
|
332
|
+
const ownerChoice = wizard
|
|
333
|
+
? [...wizard.answers.reviewOwners]
|
|
334
|
+
: values['review-owners']?.split(',').map((o) => o.trim()).filter((o) => o !== '');
|
|
335
|
+
const integrationChoice = wizard
|
|
336
|
+
? [...wizard.answers.integrations]
|
|
337
|
+
: values.integrations?.split(',').map((id) => id.trim()).filter((id) => id !== '');
|
|
338
|
+
// Only the wizard path spins: a scripted `redline init` in CI has nobody
|
|
339
|
+
// watching, and an animated line in a build log is noise with no reader.
|
|
340
|
+
// Reassigned, not just stopped: the fallback prompt below has to take the
|
|
341
|
+
// terminal back from the spinner to be readable at all, and the run
|
|
342
|
+
// carries on afterwards — so it gets a fresh one rather than finishing in
|
|
343
|
+
// silence.
|
|
344
|
+
let task = wizard?.prompter.task('onboarding this repository') ?? null;
|
|
262
345
|
const report = await init(platform, {
|
|
263
346
|
cwd,
|
|
264
347
|
root,
|
|
348
|
+
...(wizard ? { onStep: (label) => task?.update(label) } : {}),
|
|
265
349
|
...(profileChoice ? { profile: profileChoice } : {}),
|
|
266
350
|
...(vendorChoice ? { vendors: vendorChoice } : {}),
|
|
267
351
|
...(dryRun ? { dryRun: true } : {}),
|
|
352
|
+
...(noCommit ? { noCommit: true } : {}),
|
|
268
353
|
...(repair ? { repair: true } : {}),
|
|
269
354
|
...(adoptCaller ? { adoptCaller: true } : {}),
|
|
270
355
|
...(rungChoice ? { rung: rungChoice } : {}),
|
|
356
|
+
...(integrationChoice ? { integrations: integrationChoice } : {}),
|
|
357
|
+
...(ownerChoice && ownerChoice.length > 0 ? { reviewOwners: ownerChoice } : {}),
|
|
358
|
+
...(branchChoice && branchChoice.length > 0 ? { branches: branchChoice } : {}),
|
|
359
|
+
...(setupChoice && setupChoice.length > 0 ? { setup: setupChoice } : {}),
|
|
271
360
|
...(pipelineChoice ? { pipeline: pipelineChoice } : {}),
|
|
361
|
+
...(gateSourceChoice ? { gateSource: gateSourceChoice } : {}),
|
|
362
|
+
// Offered only at a terminal, and only when the planning pass finds the
|
|
363
|
+
// organisation publishes no gate. A scripted run gets the denial it has
|
|
364
|
+
// always got: vendoring the gate is a weaker control, and nothing
|
|
365
|
+
// unattended should be able to choose it on an operator's behalf.
|
|
366
|
+
...(wizard
|
|
367
|
+
? {
|
|
368
|
+
onGateFallback: async (detail) => {
|
|
369
|
+
task?.stop();
|
|
370
|
+
const vendor = await wizard.prompter.select(`${detail}. Install the gate where?`, [
|
|
371
|
+
{
|
|
372
|
+
value: false,
|
|
373
|
+
label: 'skip the gate for now',
|
|
374
|
+
hint: 'everything else installs; re-run once the org publishes one',
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
value: true,
|
|
378
|
+
label: 'vendor it into this repository',
|
|
379
|
+
hint: 'weaker: a pull request can edit the gate that judges it',
|
|
380
|
+
},
|
|
381
|
+
], false);
|
|
382
|
+
task = wizard.prompter.task('onboarding this repository');
|
|
383
|
+
return vendor;
|
|
384
|
+
},
|
|
385
|
+
}
|
|
386
|
+
: {}),
|
|
272
387
|
menu,
|
|
273
388
|
capabilities: selection.capabilities,
|
|
274
|
-
});
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
389
|
+
}).finally(() => task?.stop());
|
|
390
|
+
const summary = {
|
|
391
|
+
profile: report.profile,
|
|
392
|
+
migratedFrom: report.migratedFrom,
|
|
393
|
+
optedOut: report.optedOut,
|
|
394
|
+
notes: report.notes,
|
|
395
|
+
files: report.files,
|
|
396
|
+
removals: report.removals,
|
|
397
|
+
outcomes: report.outcomes,
|
|
398
|
+
pullRequestUrl: report.pullRequest?.url ?? null,
|
|
399
|
+
pendingAdmin: report.pendingAdmin,
|
|
400
|
+
dryRun: report.dryRun,
|
|
401
|
+
hostPlan: report.hostPlan,
|
|
402
|
+
};
|
|
284
403
|
if (report.dryRun) {
|
|
285
|
-
log.info('dry run — nothing was written, read or changed on the host');
|
|
286
404
|
if (report.alreadyOnboarded) {
|
|
405
|
+
for (const line of renderReport({ ...summary, files: [], hostPlan: [] }, reportTheme)) {
|
|
406
|
+
log.info(line);
|
|
407
|
+
}
|
|
408
|
+
log.info('');
|
|
287
409
|
log.info('already onboarded — no file would change (host settings were not read)');
|
|
288
410
|
return 0;
|
|
289
411
|
}
|
|
290
|
-
for (const
|
|
291
|
-
log.info(
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
412
|
+
for (const line of renderReport(summary, reportTheme))
|
|
413
|
+
log.info(line);
|
|
414
|
+
log.info('');
|
|
415
|
+
// The menu is the half of a dry run the file list cannot show: two of
|
|
416
|
+
// its answers move no file at all, and a preview that hid them would
|
|
417
|
+
// send an operator to `--blocking` to find out what `--blocking` did.
|
|
418
|
+
log.info(` menu: ${Object.entries(report.menu)
|
|
419
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
420
|
+
.join(' ')}`);
|
|
421
|
+
log.info('');
|
|
422
|
+
log.info('dry run — nothing was written, read or changed on the host');
|
|
297
423
|
return 0;
|
|
298
424
|
}
|
|
299
|
-
for (const
|
|
300
|
-
log.info(
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
425
|
+
for (const line of renderReport(summary, reportTheme))
|
|
426
|
+
log.info(line);
|
|
427
|
+
log.info('');
|
|
428
|
+
// Said plainly, because the one thing an operator must not do after this
|
|
429
|
+
// is assume the repository is onboarded: the files are on disk, the host
|
|
430
|
+
// is untouched, and the branch a full run would have opened does not
|
|
431
|
+
// exist. The run that finishes the job is named rather than described.
|
|
432
|
+
if (report.noCommit === true) {
|
|
433
|
+
log.info(' not committed — the files are in your working tree. Review them, commit them, then ' +
|
|
434
|
+
'run redline init to apply the repository settings and open the pull request');
|
|
435
|
+
return 0;
|
|
304
436
|
}
|
|
305
437
|
if (report.pendingAdmin.length > 0) {
|
|
306
438
|
// On the already-onboarded path this run applied nothing, so the list
|
|
@@ -320,15 +452,15 @@ export async function run(argv, deps = {}) {
|
|
|
320
452
|
return exitCodeFor('failed');
|
|
321
453
|
}
|
|
322
454
|
if (report.pullRequest) {
|
|
323
|
-
|
|
324
|
-
//
|
|
325
|
-
//
|
|
326
|
-
// the run
|
|
327
|
-
// with the operator running `init` a
|
|
328
|
-
// "already onboarded" by a repository they
|
|
329
|
-
|
|
330
|
-
log.info(`the changes are committed on ${ONBOARD_BRANCH} and pushed, not in your working
|
|
331
|
-
log.info('
|
|
455
|
+
// The URL itself is printed by the report's own Pull request section.
|
|
456
|
+
// What that section cannot say is why the working tree looks untouched:
|
|
457
|
+
// onboarding commits to its own branch and pushes it, so `git status`
|
|
458
|
+
// here stays clean. Without this the run looked like it did nothing —
|
|
459
|
+
// the first real onboarding ended with the operator running `init` a
|
|
460
|
+
// second time and being told "already onboarded" by a repository they
|
|
461
|
+
// believed was not.
|
|
462
|
+
log.info(` the changes are committed on ${ONBOARD_BRANCH} and pushed, not in your working tree —`);
|
|
463
|
+
log.info(' `git status` here stays clean. Review and merge the pull request above.');
|
|
332
464
|
}
|
|
333
465
|
else if (report.alreadyOnboarded) {
|
|
334
466
|
log.info(`already onboarded — nothing to change (recorded in .redline.json; ` +
|
|
@@ -392,7 +524,11 @@ export async function run(argv, deps = {}) {
|
|
|
392
524
|
if (command === 'verify') {
|
|
393
525
|
const { values } = parseCliArgs(() => parseArgs({
|
|
394
526
|
args: rest,
|
|
395
|
-
options: {
|
|
527
|
+
options: {
|
|
528
|
+
gate: { type: 'boolean', default: false },
|
|
529
|
+
repo: { type: 'string' },
|
|
530
|
+
json: { type: 'boolean', default: false },
|
|
531
|
+
},
|
|
396
532
|
allowPositionals: false,
|
|
397
533
|
}));
|
|
398
534
|
if (values.repo !== undefined) {
|
|
@@ -404,9 +540,15 @@ export async function run(argv, deps = {}) {
|
|
|
404
540
|
const remoteReport = await verifyRemote(remoteHost, remoteRef, {
|
|
405
541
|
root,
|
|
406
542
|
standardsVersion: standardsVersion(root),
|
|
543
|
+
cliVersion: CLI_VERSION,
|
|
407
544
|
});
|
|
408
|
-
|
|
409
|
-
|
|
545
|
+
if (values.json === true) {
|
|
546
|
+
log.info(JSON.stringify({ repo: values.repo, ref: remoteRef.defaultBranch, ...remoteReport }, null, 2));
|
|
547
|
+
}
|
|
548
|
+
else {
|
|
549
|
+
log.info(`${values.repo} (${remoteRef.defaultBranch})`);
|
|
550
|
+
log.report(remoteReport.findings);
|
|
551
|
+
}
|
|
410
552
|
// Same mapping as the local path: one finding means the repository was
|
|
411
553
|
// never onboarded, which is a different thing to tell an operator than
|
|
412
554
|
// onboarded-and-drifted.
|
|
@@ -416,7 +558,13 @@ export async function run(argv, deps = {}) {
|
|
|
416
558
|
// resolve is passed unevaluated: verify() must be able to report "not
|
|
417
559
|
// onboarded" without a host credential — see cli/commands/verify.ts.
|
|
418
560
|
const report = await verify(() => resolve(cwd), { cwd, root, gate: values.gate === true });
|
|
419
|
-
|
|
561
|
+
// The findings are the same object either way. `--json` exists because a
|
|
562
|
+
// tool whose whole claim is auditability was unreadable by anything but a
|
|
563
|
+
// human, and a wrapper had to scrape prose to learn what it already knew.
|
|
564
|
+
if (values.json === true)
|
|
565
|
+
log.info(JSON.stringify(report, null, 2));
|
|
566
|
+
else
|
|
567
|
+
log.report(report.findings);
|
|
420
568
|
// verify() short-circuits to exactly one finding when .redline.json is
|
|
421
569
|
// missing or corrupt (see cli/commands/verify.ts), precisely so this
|
|
422
570
|
// mapping can tell "never onboarded" (usage, 2) apart from "onboarded
|
|
@@ -543,6 +691,63 @@ export async function run(argv, deps = {}) {
|
|
|
543
691
|
}
|
|
544
692
|
return report.ok ? 0 : exitCodeFor('failed');
|
|
545
693
|
}
|
|
694
|
+
if (command === 'status') {
|
|
695
|
+
const { values } = parseCliArgs(() => parseArgs({
|
|
696
|
+
args: rest,
|
|
697
|
+
options: { json: { type: 'boolean', default: false } },
|
|
698
|
+
allowPositionals: false,
|
|
699
|
+
}));
|
|
700
|
+
const report = status(cwd, root);
|
|
701
|
+
if (values.json === true) {
|
|
702
|
+
log.info(JSON.stringify(report, null, 2));
|
|
703
|
+
}
|
|
704
|
+
else {
|
|
705
|
+
for (const line of formatStatus(report))
|
|
706
|
+
log.info(line);
|
|
707
|
+
}
|
|
708
|
+
// Not onboarded is an answer, not a failure: `status` is what somebody
|
|
709
|
+
// runs to find that out, and exiting non-zero would break the script that
|
|
710
|
+
// asked.
|
|
711
|
+
return 0;
|
|
712
|
+
}
|
|
713
|
+
if (command === 'explain') {
|
|
714
|
+
const { values, positionals } = parseCliArgs(() => parseArgs({
|
|
715
|
+
args: rest,
|
|
716
|
+
options: { list: { type: 'boolean', default: false }, json: { type: 'boolean', default: false } },
|
|
717
|
+
allowPositionals: true,
|
|
718
|
+
}));
|
|
719
|
+
const rules = loadRules(root);
|
|
720
|
+
if (values.list === true) {
|
|
721
|
+
for (const rule of rules.values()) {
|
|
722
|
+
log.info(`${rule.severity.padEnd(10)} ${rule.id}`);
|
|
723
|
+
}
|
|
724
|
+
log.info(`${rules.size} rule(s) across the core standard and every stack`);
|
|
725
|
+
return 0;
|
|
726
|
+
}
|
|
727
|
+
const id = positionals[0];
|
|
728
|
+
if (id === undefined) {
|
|
729
|
+
throw new RedlineError('usage', 'redline explain needs a rule id', 'the id is the part in brackets on a finding: redline explain core/hardcoded-secrets');
|
|
730
|
+
}
|
|
731
|
+
const found = explain(root, id);
|
|
732
|
+
if (values.json === true) {
|
|
733
|
+
log.info(JSON.stringify(found, null, 2));
|
|
734
|
+
return 0;
|
|
735
|
+
}
|
|
736
|
+
log.info(`${found.rule.severity} ${found.rule.id}`);
|
|
737
|
+
log.info('');
|
|
738
|
+
log.info(` ${found.rule.text}`);
|
|
739
|
+
log.info('');
|
|
740
|
+
log.info(` decided by ${found.deterministic ? 'a checker, with no model call' : 'review judgement'}`);
|
|
741
|
+
log.info(` defined in ${found.rule.source}:${found.rule.line}`);
|
|
742
|
+
if (found.globs.length > 0) {
|
|
743
|
+
log.info(` applies to ${found.globs.join(', ')}`);
|
|
744
|
+
}
|
|
745
|
+
else {
|
|
746
|
+
log.info(' applies to every file — the core standard is not scoped by stack');
|
|
747
|
+
}
|
|
748
|
+
log.info(` reaches ${found.profiles.join(', ')}`);
|
|
749
|
+
return 0;
|
|
750
|
+
}
|
|
546
751
|
if (command === 'exempt') {
|
|
547
752
|
const { values } = parseCliArgs(() => parseArgs({
|
|
548
753
|
args: rest,
|
package/dist/bin/redline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redline.js","sourceRoot":"","sources":["../../cli/bin/redline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"redline.js","sourceRoot":"","sources":["../../cli/bin/redline.ts"],"names":[],"mappings":"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"}
|