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.
Files changed (63) hide show
  1. package/README.md +2 -2
  2. package/dist/bin/redline.js +247 -42
  3. package/dist/bin/redline.js.map +1 -1
  4. package/dist/commands/init.js +274 -26
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/remove.js +40 -0
  7. package/dist/commands/remove.js.map +1 -1
  8. package/dist/commands/status.js +94 -0
  9. package/dist/commands/status.js.map +1 -0
  10. package/dist/config/redline-json.js +18 -1
  11. package/dist/config/redline-json.js.map +1 -1
  12. package/dist/core/git.js +50 -3
  13. package/dist/core/git.js.map +1 -1
  14. package/dist/core/version.js +6 -0
  15. package/dist/core/version.js.map +1 -1
  16. package/dist/detect/setup.js +200 -0
  17. package/dist/detect/setup.js.map +1 -0
  18. package/dist/detect/stack.js +56 -17
  19. package/dist/detect/stack.js.map +1 -1
  20. package/dist/metrics/options.js +0 -9
  21. package/dist/metrics/options.js.map +1 -1
  22. package/dist/platforms/azure/install.js +1 -5
  23. package/dist/platforms/azure/install.js.map +1 -1
  24. package/dist/platforms/azure/verify.js +4 -2
  25. package/dist/platforms/azure/verify.js.map +1 -1
  26. package/dist/platforms/github/install.js +110 -22
  27. package/dist/platforms/github/install.js.map +1 -1
  28. package/dist/platforms/github/vendor.js +81 -0
  29. package/dist/platforms/github/vendor.js.map +1 -0
  30. package/dist/platforms/github/verify.js +17 -2
  31. package/dist/platforms/github/verify.js.map +1 -1
  32. package/dist/platforms/types.js +4 -0
  33. package/dist/platforms/types.js.map +1 -1
  34. package/dist/render/standards.js +8 -1
  35. package/dist/render/standards.js.map +1 -1
  36. package/dist/render/vendors.js +9 -52
  37. package/dist/render/vendors.js.map +1 -1
  38. package/dist/rules/catalogue.js +127 -0
  39. package/dist/rules/catalogue.js.map +1 -0
  40. package/dist/ui/facts.js +30 -1
  41. package/dist/ui/facts.js.map +1 -1
  42. package/dist/ui/prompt.js +137 -8
  43. package/dist/ui/prompt.js.map +1 -1
  44. package/dist/ui/report.js +214 -0
  45. package/dist/ui/report.js.map +1 -0
  46. package/dist/ui/tty.js +358 -25
  47. package/dist/ui/tty.js.map +1 -1
  48. package/dist/ui/wizard.js +133 -19
  49. package/dist/ui/wizard.js.map +1 -1
  50. package/dist/verify/remote.js +33 -0
  51. package/dist/verify/remote.js.map +1 -1
  52. package/package.json +4 -1
  53. package/scripts/fetch-stars.mjs +92 -0
  54. package/scripts/lib/rules.d.mts +18 -0
  55. package/scripts/publish-local.mjs +183 -0
  56. package/standards/manifest.json +79 -8
  57. package/standards/stacks/angular.md +57 -0
  58. package/standards/stacks/dom.md +61 -0
  59. package/standards/stacks/svelte.md +45 -0
  60. package/standards/stacks/vue.md +54 -0
  61. package/templates/redline.yml +4 -0
  62. package/workflows/redline-gate.yml +28 -4
  63. 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 (12 stacks, 82 BLOCKER seeds) + precision corpus, scored by `scripts/score-seeds.mjs` | validation only, never merged |
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 # a React app with its own Terraform beside it
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
 
@@ -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
- return { answers };
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. Every other path here
257
- // resolves one up front, exactly as before.
258
- const platform = await resolve(cwd, dryRun ? { lazyCredentials: true } : {});
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
- log.info(`profile ${report.profile}`);
276
- if (report.migratedFrom)
277
- log.info(`migrated from ${report.migratedFrom}`);
278
- // Printed on every path, settled included: a report that falls silent
279
- // about what was never attempted cannot be told from one where it broke.
280
- if (report.optedOut.length > 0)
281
- log.info(`opted out: ${report.optedOut.join(', ')}`);
282
- for (const note of report.notes)
283
- log.info(note);
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 file of report.files) {
291
- log.info(` would ${report.removals.includes(file) ? 'remove' : 'write '} ${file}`);
292
- }
293
- for (const step of report.hostPlan)
294
- log.info(` would apply ${step}`);
295
- for (const [key, value] of Object.entries(report.menu))
296
- log.info(` menu ${key}: ${value}`);
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 file of report.files) {
300
- log.info(` ${report.removals.includes(file) ? 'remove' : 'write '} ${file}`);
301
- }
302
- for (const outcome of report.outcomes) {
303
- log.info(` ${outcome.status.padEnd(11)} ${outcome.capability} ${outcome.detail}`);
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
- log.info(`pull request: ${report.pullRequest.url}`);
324
- // Onboarding commits to its own branch and pushes it, so the operator's
325
- // working tree is untouched and `git status` is clean. Without this,
326
- // the run looks like it did nothing: the first real onboarding ended
327
- // with the operator running `init` a second time and being told
328
- // "already onboarded" by a repository they believed was not.
329
- log.info('');
330
- log.info(`the changes are committed on ${ONBOARD_BRANCH} and pushed, not in your working`);
331
- log.info('tree — `git status` here stays clean. Review and merge the pull request above.');
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: { gate: { type: 'boolean', default: false }, repo: { type: 'string' } },
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
- log.info(`${values.repo} (${remoteRef.defaultBranch})`);
409
- log.report(remoteReport.findings);
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
- log.report(report.findings);
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,
@@ -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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"}