redlinegate 0.0.1 → 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 (86) hide show
  1. package/README.md +23 -7
  2. package/dist/bin/redline.js +338 -43
  3. package/dist/bin/redline.js.map +1 -1
  4. package/dist/commands/init.js +353 -34
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/remove.js +43 -1
  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/commands/verify.js +82 -2
  11. package/dist/commands/verify.js.map +1 -1
  12. package/dist/config/redline-json.js +63 -2
  13. package/dist/config/redline-json.js.map +1 -1
  14. package/dist/core/git.js +50 -3
  15. package/dist/core/git.js.map +1 -1
  16. package/dist/core/version.js +6 -0
  17. package/dist/core/version.js.map +1 -1
  18. package/dist/detect/existing.js +151 -0
  19. package/dist/detect/existing.js.map +1 -0
  20. package/dist/detect/setup.js +200 -0
  21. package/dist/detect/setup.js.map +1 -0
  22. package/dist/detect/stack.js +56 -17
  23. package/dist/detect/stack.js.map +1 -1
  24. package/dist/exempt/parse.js +8 -1
  25. package/dist/exempt/parse.js.map +1 -1
  26. package/dist/metrics/options.js +0 -9
  27. package/dist/metrics/options.js.map +1 -1
  28. package/dist/platforms/azure/install.js +9 -9
  29. package/dist/platforms/azure/install.js.map +1 -1
  30. package/dist/platforms/azure/verify.js +10 -2
  31. package/dist/platforms/azure/verify.js.map +1 -1
  32. package/dist/platforms/github/install.js +192 -26
  33. package/dist/platforms/github/install.js.map +1 -1
  34. package/dist/platforms/github/preflight.js +63 -0
  35. package/dist/platforms/github/preflight.js.map +1 -0
  36. package/dist/platforms/github/vendor.js +81 -0
  37. package/dist/platforms/github/vendor.js.map +1 -0
  38. package/dist/platforms/github/verify.js +79 -7
  39. package/dist/platforms/github/verify.js.map +1 -1
  40. package/dist/platforms/types.js +8 -0
  41. package/dist/platforms/types.js.map +1 -1
  42. package/dist/policy/diff.js +26 -9
  43. package/dist/policy/diff.js.map +1 -1
  44. package/dist/render/contexts.js +39 -0
  45. package/dist/render/contexts.js.map +1 -0
  46. package/dist/render/profile.js +44 -10
  47. package/dist/render/profile.js.map +1 -1
  48. package/dist/render/standards.js +10 -1
  49. package/dist/render/standards.js.map +1 -1
  50. package/dist/render/vendors.js +14 -53
  51. package/dist/render/vendors.js.map +1 -1
  52. package/dist/rules/catalogue.js +127 -0
  53. package/dist/rules/catalogue.js.map +1 -0
  54. package/dist/ui/facts.js +111 -0
  55. package/dist/ui/facts.js.map +1 -0
  56. package/dist/ui/prompt.js +330 -0
  57. package/dist/ui/prompt.js.map +1 -0
  58. package/dist/ui/report.js +214 -0
  59. package/dist/ui/report.js.map +1 -0
  60. package/dist/ui/tty.js +576 -0
  61. package/dist/ui/tty.js.map +1 -0
  62. package/dist/ui/wizard.js +293 -0
  63. package/dist/ui/wizard.js.map +1 -0
  64. package/dist/verify/remote.js +33 -0
  65. package/dist/verify/remote.js.map +1 -1
  66. package/package.json +13 -1
  67. package/platforms/azure/gate-template-github.yml +152 -0
  68. package/platforms/azure/gate-template.yml +59 -6
  69. package/scripts/check-pins.mjs +84 -1
  70. package/scripts/fetch-stars.mjs +92 -0
  71. package/scripts/lib/rules.d.mts +18 -0
  72. package/scripts/publish-local.mjs +183 -0
  73. package/standards/contexts/speckit.md +22 -0
  74. package/standards/contexts/tmf.md +25 -0
  75. package/standards/manifest.json +78 -7
  76. package/standards/stacks/angular.md +57 -0
  77. package/standards/stacks/dom.md +61 -0
  78. package/standards/stacks/svelte.md +45 -0
  79. package/standards/stacks/vue.md +54 -0
  80. package/templates/redline.yml +9 -9
  81. package/workflows/dashboard.yml +1 -1
  82. package/workflows/redline-collect.yml +1 -1
  83. package/workflows/redline-gate.yml +38 -7
  84. package/workflows/seed-canary.yml +2 -2
  85. package/workflows/weekly-digest.yml +1 -1
  86. package/scripts/measure-context.mjs +0 -101
@@ -2,11 +2,57 @@ import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from
2
2
  import { dirname, join } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { RedlineError } from "../../core/errors.js";
5
+ import { checkReusableGate } from "./preflight.js";
6
+ import { VENDORED_GATE_PATH, pointCallerAtLocalGate, renderVendoredGate, } from "./vendor.js";
7
+ import { CLI_VERSION, UNPUBLISHED_VERSION } from "../../core/version.js";
5
8
  import { isNonNullObject, isSuccess } from "../shape.js";
6
9
  import { BEGIN_PREFIX, END, findBlock, wrapBlock } from "../../render/markers.js";
7
10
  import { TEMPLATE_DIRS as PULL_REQUEST_TEMPLATE_DIRS } from "../pull-request-templates.js";
8
11
  export const RULESET_NAME = 'Redline';
9
12
  export const REQUIRED_CHECK = 'redline-gate / gate';
13
+ // Where the Azure Pipelines variant of the gate is written on a GitHub-hosted
14
+ // repository. Deliberately alongside the repository's own pipeline definitions
15
+ // rather than under `.github/`: nothing in `.github/workflows` runs it, and a
16
+ // pipeline definition filed where GitHub Actions looks is the kind of thing a
17
+ // reader trusts for the wrong reason.
18
+ export const AZURE_PIPELINE_PATH = '.azuredevops/redline-gate.yml';
19
+ /**
20
+ * The gate for a repository on GitHub whose checks are Azure Pipelines.
21
+ *
22
+ * Writes the pipeline definition and nothing else on the host: there is no
23
+ * Actions workflow to reference, no Azure Repos policy to attach (the pull
24
+ * requests are GitHub's), and the check GitHub sees is published by the Azure
25
+ * Pipelines GitHub App from the build result. The one remaining step is a human
26
+ * registering the definition once, which is reported as work for an
27
+ * administrator rather than quietly assumed to have happened.
28
+ */
29
+ function installAzurePipelineGate(cwd, opts, check) {
30
+ const files = [];
31
+ const template = readFileSync(join(PACKAGE_ROOT, 'platforms/azure/gate-template-github.yml'), 'utf8')
32
+ .replace(/ADR_DIFF_THRESHOLD: \d+/, `ADR_DIFF_THRESHOLD: ${opts.adrDiffThreshold}`)
33
+ .replace(/FAIL_ON_DEPENDENCY_SEVERITY: \w+/, `FAIL_ON_DEPENDENCY_SEVERITY: ${opts.failOnDependencySeverity}`)
34
+ .replace(/SOFT_FAIL_LABELS: .*/, `SOFT_FAIL_LABELS: ${opts.softFailLabels.join(',')}`);
35
+ if (syncFile(cwd, AZURE_PIPELINE_PATH, template, check))
36
+ files.push(AZURE_PIPELINE_PATH);
37
+ const prTemplate = syncPullRequestTemplate(cwd, '.github/pull_request_template.md', readFileSync(join(PACKAGE_ROOT, 'templates/github/pull_request_template.md'), 'utf8'), check);
38
+ files.push(...prTemplate.files);
39
+ if (check)
40
+ return { files, outcomes: [] };
41
+ return {
42
+ files,
43
+ outcomes: [
44
+ {
45
+ capability: 'gate',
46
+ // `denied`, so it reaches pendingAdmin: a pipeline definition nobody
47
+ // has registered runs on nothing, and reporting it `applied` would be
48
+ // the same lie the Actions caller told.
49
+ status: 'denied',
50
+ detail: `wrote ${AZURE_PIPELINE_PATH} — register it as a pipeline in Azure DevOps pointing at ` +
51
+ 'this repository, then require its check name in the branch ruleset',
52
+ },
53
+ ],
54
+ };
55
+ }
10
56
  const PACKAGE_ROOT = fileURLToPath(new URL('../../../', import.meta.url));
11
57
  const GATE_LABELS = [
12
58
  { name: 'no-adr', color: 'ededed', description: 'PR intentionally ships without an ADR' },
@@ -39,16 +85,21 @@ function parseCreatedPullRequest(body) {
39
85
  }
40
86
  return { number: body['number'], url: body['html_url'] };
41
87
  }
88
+ // The two things an operator can do about a refused write, said once. Both are
89
+ // deliberately imperative and name the command: a report that ends in "needs
90
+ // repository admin" has described a state and asked for nothing.
91
+ const ADMIN_HINT = 'ask a repository administrator to grant admin on this repository, then re-run: redline init --repair';
92
+ const RETRY_HINT = 'the host refused this write — re-run redline init --repair once it is reachable';
42
93
  function outcome(capability, status, detail) {
43
94
  if (isSuccess(status))
44
95
  return { capability, status: 'applied', detail };
45
96
  if (status === 401 || status === 403) {
46
- return { capability, status: 'denied', detail: `${detail} (needs repository admin)` };
97
+ return { capability, status: 'denied', detail: `${detail} (needs repository admin)`, hint: ADMIN_HINT };
47
98
  }
48
99
  if (status === 404 || status === 422) {
49
100
  return { capability, status: 'unsupported', detail: `${detail} (not available on this repository)` };
50
101
  }
51
- return { capability, status: 'denied', detail: `${detail} (HTTP ${status})` };
102
+ return { capability, status: 'denied', detail: `${detail} (HTTP ${status})`, hint: RETRY_HINT };
52
103
  }
53
104
  // GitHub answers 404, not 403, on these admin write endpoints when a
54
105
  // fine-grained token lacks the administration scope on a repository it can
@@ -56,7 +107,7 @@ function outcome(capability, status, detail) {
56
107
  // pendingAdmin, not a missing feature. Read endpoints keep 404 = unsupported.
57
108
  function writeOutcome(capability, status, detail) {
58
109
  if (status === 404) {
59
- return { capability, status: 'denied', detail: `${detail} (needs repository admin)` };
110
+ return { capability, status: 'denied', detail: `${detail} (needs repository admin)`, hint: ADMIN_HINT };
60
111
  }
61
112
  return outcome(capability, status, detail);
62
113
  }
@@ -266,12 +317,19 @@ function mergeTemplate(cwd, relPath, packaged, check) {
266
317
  detail: `${relPath} already satisfies the gate on its own — left untouched`,
267
318
  };
268
319
  }
269
- const contents = wrapBlock(existing, gatedSections(packaged, blockSections(missing)), relPath);
270
- const appended = missing.map((heading) => `"## ${heading}"`).join(' and ');
320
+ // A template this repository wrote for itself is not Redline's to edit, even
321
+ // to make its own gate pass. Redline creates one where the host resolves
322
+ // none, and refreshes a block it put there itself; a file it has never
323
+ // touched it leaves alone and says what that costs, because the checklist job
324
+ // fails a pull request whose body has no `## Launch readiness` and the author
325
+ // deserves to hear that from the install rather than from a red check.
326
+ const absent = missing.map((heading) => `"## ${heading}"`).join(' and ');
271
327
  return {
272
328
  path: relPath,
273
- changed: syncFile(cwd, relPath, contents, check),
274
- detail: `kept this repository's ${relPath} and appended ${appended} inside REDLINE markers`,
329
+ changed: false,
330
+ detail: `kept this repository's ${relPath} Redline did not edit it. It has no ${absent}, ` +
331
+ `so the gate's checklist job will fail until someone adds ${missing.length === 1 ? 'that section' : 'those sections'} ` +
332
+ `or the gate is deselected with: redline init --skip gate`,
275
333
  };
276
334
  }
277
335
  // The one file `redline init` writes that cannot take the marker-block merge
@@ -298,15 +356,43 @@ const CALLER_PATH = '.github/workflows/redline.yml';
298
356
  // thing exists to pin, so it is refused rather than guessed at — `adoptCaller`
299
357
  // is where that decision belongs.
300
358
  const MANAGED_BY_REDLINE = /^#[ \t]*Managed by Redline\b/m;
301
- const USES_REDLINE_GATE = /\.github\/workflows\/redline-gate\.yml@/;
359
+ // Both gate sources count as attribution: an org caller carries
360
+ // `<org>/.github/.github/workflows/redline-gate.yml@main`, and a local one carries
361
+ // `./.github/workflows/redline-gate.yml` — no `@ref`, because a local reusable
362
+ // workflow is always resolved at the caller's own commit and cannot take one.
363
+ // Matching only the `@` form read a caller Redline itself had just written in
364
+ // local mode as somebody else's workflow, and refused to touch it on the re-run.
365
+ const USES_REDLINE_GATE = /\.github\/workflows\/redline-gate\.yml@|uses: *\.\/\.github\/workflows\/redline-gate\.yml/;
366
+ // Does a file at `relPath` carry something that attributes it to Redline?
367
+ // Absent counts as ours to write; present-and-unattributed is the case that
368
+ // must stop the run rather than overwrite.
369
+ function attributedToRedline(cwd, relPath) {
370
+ const target = join(cwd, relPath);
371
+ if (!existsSync(target))
372
+ return null;
373
+ const existing = readFileSync(target, 'utf8');
374
+ return MANAGED_BY_REDLINE.test(existing) || USES_REDLINE_GATE.test(existing);
375
+ }
376
+ // The vendored gate gets the same protection the caller has always had, for the
377
+ // same reason: it is YAML, so it can take no marker-block merge, and a repo that
378
+ // already has a workflow at this path would have it destroyed rather than
379
+ // merged. The path is only reachable in local mode, so an org-mode install never
380
+ // asks the question.
381
+ function refuseForeignVendoredGate(cwd, opts) {
382
+ if (opts.gateSource !== 'local' || opts.adoptCaller === true)
383
+ return;
384
+ if (attributedToRedline(cwd, VENDORED_GATE_PATH) !== false)
385
+ return;
386
+ throw new RedlineError('failed', `${VENDORED_GATE_PATH} already exists in this repository and carries nothing that ` +
387
+ 'attributes it to Redline, so vendoring the merge gate there would destroy it. ' +
388
+ 'Nothing was written', 'Move or rename that workflow and re-run redline init --gate-source local, or re-run ' +
389
+ 'with --gate-source org to reference the organisation gate instead and leave this file ' +
390
+ 'alone. --adopt-caller overwrites it if it really is an earlier Redline gate.');
391
+ }
302
392
  function refuseForeignCaller(cwd, opts) {
303
393
  if (opts.adoptCaller === true)
304
394
  return;
305
- const target = join(cwd, CALLER_PATH);
306
- if (!existsSync(target))
307
- return;
308
- const existing = readFileSync(target, 'utf8');
309
- if (MANAGED_BY_REDLINE.test(existing) || USES_REDLINE_GATE.test(existing))
395
+ if (attributedToRedline(cwd, CALLER_PATH) !== false)
310
396
  return;
311
397
  throw new RedlineError('failed', `${CALLER_PATH} already exists in this repository and carries nothing that attributes it to ` +
312
398
  'Redline, so installing the merge gate there would destroy it. Nothing was written', 'If that workflow is already this repository\'s merge gate, re-run with --skip gate and Redline ' +
@@ -389,7 +475,12 @@ export function createGitHubInstall(client, gitFor) {
389
475
  target: 'branch',
390
476
  enforcement: 'active',
391
477
  bypass_actors: [],
392
- conditions: { ref_name: { include: ['~DEFAULT_BRANCH'], exclude: [] } },
478
+ conditions: {
479
+ ref_name: {
480
+ include: policy.branches && policy.branches.length > 0 ? [...policy.branches] : ['~DEFAULT_BRANCH'],
481
+ exclude: [],
482
+ },
483
+ },
393
484
  rules: buildRules(policy),
394
485
  };
395
486
  let mergePolicy;
@@ -433,15 +524,69 @@ export function createGitHubInstall(client, gitFor) {
433
524
  },
434
525
  async installGate(ref, cwd, opts, check = false) {
435
526
  const files = [];
527
+ // A GitHub-hosted repository whose pull request checks are Azure
528
+ // Pipelines gets an Azure pipeline definition, not an Actions workflow.
529
+ // Writing the caller here was the defect: the repository ran no Actions
530
+ // gate, so the workflow sat there failing to resolve on every pull
531
+ // request while Redline reported the gate applied.
532
+ if (opts.pipeline === 'azure-pipelines') {
533
+ return installAzurePipelineGate(cwd, opts, check);
534
+ }
436
535
  refuseForeignCaller(cwd, opts);
437
- const caller = readFileSync(join(PACKAGE_ROOT, 'templates/redline.yml'), 'utf8')
536
+ refuseForeignVendoredGate(cwd, opts);
537
+ // Where the gate's machinery comes from. `local` vendors it here; see
538
+ // GateOptions.gateSource for why that is a weaker control and not an
539
+ // equivalent one.
540
+ const local = opts.gateSource === 'local';
541
+ // Does the workflow the caller is about to reference exist? Asked on
542
+ // every pass that is allowed to contact the host — which is the real
543
+ // install, and the planning pass of a live run (`preflight`). Only a dry
544
+ // run skips it: that path must send no request and needs no credential.
545
+ //
546
+ // The planning pass has to ask, because it decides which paths the run
547
+ // will stage. Assuming `ok` there planned `.github/workflows/redline.yml`
548
+ // for an org with no `.github` repository, the real install suppressed it,
549
+ // and `git add` then died on a pathspec that matched no file — losing the
550
+ // pull request for work that had already succeeded.
551
+ //
552
+ // A failed preflight suppresses the CALLER ONLY. The pull request
553
+ // template and the labels below are independently useful and break
554
+ // nothing, so withholding them would punish the repository for an
555
+ // org-level gap it did not create.
556
+ //
557
+ // A vendored gate references nothing outside this repository, so local
558
+ // mode has no preflight to run: the question `checkReusableGate` answers —
559
+ // does the organisation publish the workflow this caller points at — has
560
+ // no subject. It also means the gate decision needs no credential, which
561
+ // is the point for a repository whose organisation has not agreed to a
562
+ // shared `.github` yet.
563
+ const preflight = local || opts.offline === true || (check && opts.preflight !== true)
564
+ ? { ok: true }
565
+ : await checkReusableGate(client, ref.org);
566
+ const rendered = readFileSync(join(PACKAGE_ROOT, 'templates/redline.yml'), 'utf8')
438
567
  .replaceAll('<org>', ref.org)
439
568
  .replace(/adr-diff-threshold: \d+/, `adr-diff-threshold: ${opts.adrDiffThreshold}`)
440
569
  .replace(/fail-on-dependency-severity: \w+/, `fail-on-dependency-severity: ${opts.failOnDependencySeverity}`)
441
570
  .replace(/soft-fail-labels: .+/, `soft-fail-labels: ${opts.softFailLabels.join(',')}`)
442
- .replace(/rung: \w[\w-]*/, `rung: ${opts.rung ?? 'observe'}`);
443
- if (syncFile(cwd, '.github/workflows/redline.yml', caller, check)) {
444
- files.push('.github/workflows/redline.yml');
571
+ .replace(/rung: \w[\w-]*/, `rung: ${opts.rung ?? 'observe'}`)
572
+ .replace(/stand-down: .*/, `stand-down: '${(opts.standDown ?? []).join(',')}'`);
573
+ const caller = local ? pointCallerAtLocalGate(rendered) : rendered;
574
+ if (preflight.ok && syncFile(cwd, CALLER_PATH, caller, check)) {
575
+ files.push(CALLER_PATH);
576
+ }
577
+ // Written from workflows/redline-gate.yml — the same bytes the org copy
578
+ // is published from, so there is one gate definition in this repository
579
+ // and local mode cannot drift into a second implementation of it.
580
+ //
581
+ // Both passes must plan the identical set of paths. A planning pass that
582
+ // decided this file differently from the install is exactly the shape of
583
+ // the bug that staged `.github/workflows/redline.yml` without writing it
584
+ // and lost a finished run its pull request, and local mode doubles the
585
+ // surface for it.
586
+ if (local) {
587
+ const vendored = renderVendoredGate(readFileSync(join(PACKAGE_ROOT, 'workflows/redline-gate.yml'), 'utf8'), CLI_VERSION === UNPUBLISHED_VERSION ? null : CLI_VERSION);
588
+ if (syncFile(cwd, VENDORED_GATE_PATH, vendored, check))
589
+ files.push(VENDORED_GATE_PATH);
445
590
  }
446
591
  // Read from templates/, never from this repository's own .github/:
447
592
  // .github/ is deliberately outside package.json "files" (shipping it
@@ -451,13 +596,23 @@ export function createGitHubInstall(client, gitFor) {
451
596
  const template = readFileSync(join(PACKAGE_ROOT, 'templates/github/pull_request_template.md'), 'utf8');
452
597
  const prTemplate = syncPullRequestTemplate(cwd, '.github/pull_request_template.md', template, check);
453
598
  files.push(...prTemplate.files);
454
- if (check)
455
- return { files, outcomes: [] };
599
+ // A planning pass reports no outcome for work it did not do — but a failed
600
+ // preflight is not work, it is an answer, and it is the one thing the
601
+ // caller has to know before anything is written: `no-dot-github-repo` and
602
+ // `no-workflow` both mean the organisation publishes no gate, which is
603
+ // exactly what local mode exists for. `unreadable` does not qualify.
604
+ if (check) {
605
+ return {
606
+ files,
607
+ outcomes: [],
608
+ ...(preflight.ok || preflight.reason === 'unreadable' ? {} : { vendorableGate: true }),
609
+ };
610
+ }
456
611
  // Deselected: not attempted, and no outcome either. An outcome for work
457
612
  // that never happened is how a deliberate choice gets read back as a
458
613
  // capability that failed.
459
614
  const labelOutcomes = [];
460
- for (const label of opts.manageLabels === false ? [] : GATE_LABELS) {
615
+ for (const label of opts.manageLabels === false || opts.offline === true ? [] : GATE_LABELS) {
461
616
  const res = await client.rest('POST', `${repoPath(ref)}/labels`, label);
462
617
  labelOutcomes.push(res.status === 422
463
618
  ? { capability: 'labels', status: 'already', detail: `label "${label.name}" already exists` }
@@ -467,11 +622,22 @@ export function createGitHubInstall(client, gitFor) {
467
622
  files,
468
623
  outcomes: [
469
624
  ...(labelOutcomes.length > 0 ? [worstOutcome(labelOutcomes)] : []),
470
- {
471
- capability: 'gate',
472
- status: prTemplate.changed ? 'applied' : 'already',
473
- detail: prTemplate.detail,
474
- },
625
+ preflight.ok
626
+ ? {
627
+ capability: 'gate',
628
+ status: prTemplate.changed ? 'applied' : 'already',
629
+ detail: prTemplate.detail,
630
+ }
631
+ : // `denied`, not `unsupported`: the gate is perfectly supported
632
+ // here, an administrator simply has to publish the reusable
633
+ // workflow. That distinction is what puts it on the pendingAdmin
634
+ // list instead of writing it off as impossible.
635
+ {
636
+ capability: 'gate',
637
+ status: 'denied',
638
+ detail: preflight.detail,
639
+ hint: preflight.hint,
640
+ },
475
641
  ],
476
642
  };
477
643
  },
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../cli/platforms/github/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../cli/platforms/github/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ export const REUSABLE_PATH = '.github/workflows/redline-gate.yml';
2
+ /**
3
+ * Confirm `<org>/.github` publishes the reusable gate workflow at `ref`.
4
+ *
5
+ * Read-only, and never throws: a preflight that threw would turn a soft
6
+ * "your org has not published the gate yet" into a failed onboarding, when
7
+ * everything else Redline installs — the standards, the artifacts, the config —
8
+ * is still worth having.
9
+ */
10
+ export async function checkReusableGate(client, org, ref = 'main') {
11
+ const path = `/repos/${org}/.github/contents/${REUSABLE_PATH}?ref=${encodeURIComponent(ref)}`;
12
+ let status;
13
+ try {
14
+ const res = await client.rest('GET', path);
15
+ status = res.status;
16
+ }
17
+ catch (error) {
18
+ return {
19
+ ok: false,
20
+ reason: 'unreadable',
21
+ detail: `could not read ${org}/.github: ${error instanceof Error ? error.message : String(error)}`,
22
+ hint: 'the gate was not installed — re-run once the host is reachable',
23
+ };
24
+ }
25
+ if (status >= 200 && status < 300)
26
+ return { ok: true };
27
+ if (status === 404) {
28
+ // A 404 on the contents endpoint cannot tell "no such repository" from "no
29
+ // such file in it", so ask the repository directly rather than guessing —
30
+ // the two have different fixes and telling the operator the wrong one
31
+ // costs them the afternoon.
32
+ let repoStatus;
33
+ try {
34
+ repoStatus = (await client.rest('GET', `/repos/${org}/.github`)).status;
35
+ }
36
+ catch {
37
+ repoStatus = 0;
38
+ }
39
+ if (repoStatus === 404) {
40
+ return {
41
+ ok: false,
42
+ reason: 'no-dot-github-repo',
43
+ detail: `${org}/.github does not exist, so the gate workflow has nowhere to be published`,
44
+ hint: `create ${org}/.github and add ${REUSABLE_PATH} to it, then re-run redline init`,
45
+ };
46
+ }
47
+ return {
48
+ ok: false,
49
+ reason: 'no-workflow',
50
+ detail: `${org}/.github exists but has no ${REUSABLE_PATH} on ${ref}`,
51
+ hint: `add ${REUSABLE_PATH} to ${org}/.github, then re-run redline init`,
52
+ };
53
+ }
54
+ return {
55
+ ok: false,
56
+ reason: 'unreadable',
57
+ detail: `GitHub returned HTTP ${status} reading ${org}/.github/${REUSABLE_PATH}`,
58
+ hint: status === 401 || status === 403
59
+ ? 'the token cannot read the organisation .github repository — check its scopes'
60
+ : 'the gate was not installed — re-run once the host is reachable',
61
+ };
62
+ }
63
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../cli/platforms/github/preflight.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAoB,EACpB,GAAW,EACX,GAAG,GAAG,MAAM;IAEZ,MAAM,IAAI,GAAG,UAAU,GAAG,qBAAqB,aAAa,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9F,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAU,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,kBAAkB,GAAG,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAClG,IAAI,EAAE,gEAAgE;SACvE,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEvD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,2EAA2E;QAC3E,0EAA0E;QAC1E,sEAAsE;QACtE,4BAA4B;QAC5B,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC;YACH,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAU,KAAK,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,oBAAoB;gBAC5B,MAAM,EAAE,GAAG,GAAG,2EAA2E;gBACzF,IAAI,EAAE,UAAU,GAAG,oBAAoB,aAAa,kCAAkC;aACvF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,GAAG,GAAG,8BAA8B,aAAa,OAAO,GAAG,EAAE;YACrE,IAAI,EAAE,OAAO,aAAa,OAAO,GAAG,oCAAoC;SACzE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,wBAAwB,MAAM,YAAY,GAAG,YAAY,aAAa,EAAE;QAChF,IAAI,EACF,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;YAC9B,CAAC,CAAC,8EAA8E;YAChF,CAAC,CAAC,gEAAgE;KACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,81 @@
1
+ // Turning the org-hosted reusable gate into one a repository carries itself.
2
+ //
3
+ // The reusable workflow is already self-contained — `workflow_call` inputs, no
4
+ // organisation secrets, no cross-repository file reads, and the CLI arrives at
5
+ // run time through `npx redlinegate@<pin>` — so vendoring it is a copy plus two
6
+ // edits, not a rewrite. That is the only reason this mode is affordable: there
7
+ // is one gate definition in this repository, and local mode ships the same
8
+ // bytes rather than a second implementation that drifts.
9
+ //
10
+ // GitHub resolves `uses: ./.github/workflows/<file>` against the caller's own
11
+ // commit, and the check run is still reported as "<caller job id> / <called job
12
+ // id>". Keeping the caller's job id `redline-gate` and the aggregate's `gate`
13
+ // therefore keeps the required context exactly `redline-gate / gate` in both
14
+ // modes, which is what lets a repository move between them without touching a
15
+ // branch ruleset.
16
+ //
17
+ // Pure, and separate from install.ts, for the same reason the report renderer
18
+ // is: a string transform that decides what a security control does is only
19
+ // trustworthy if it can be asserted on directly.
20
+ export const VENDORED_GATE_PATH = '.github/workflows/redline-gate.yml';
21
+ // The reference a local caller carries in place of `<org>/.github/...@main`.
22
+ // Relative, so it resolves inside this repository; no `@ref`, because a local
23
+ // reusable workflow cannot take one — it is always the caller's own commit.
24
+ export const LOCAL_GATE_USES = `./${VENDORED_GATE_PATH}`;
25
+ const HEADER = (pin) => [
26
+ '# Managed by Redline. Regenerate with `redline init --repair`; edits here are overwritten.',
27
+ '#',
28
+ `# A vendored copy of the Redline gate, written by redlinegate ${pin}.`,
29
+ '#',
30
+ "# This workflow runs from the pull request's own head commit, so a pull request",
31
+ '# that edits this file changes the gate that is judging it — including standing',
32
+ '# down the dependency and secret jobs, which no label can waive. Protect',
33
+ '# .github/workflows/ with CODEOWNERS, or host the gate in the organisation',
34
+ '# .github repository instead (`redline init --gate-source org`).',
35
+ '',
36
+ '',
37
+ ].join('\n');
38
+ /**
39
+ * Render the vendored gate workflow from the reusable one.
40
+ *
41
+ * `version` is stamped over every `REDLINE_CLI_VERSION` in the file. The
42
+ * reusable copy carries a hardcoded pin because it ships in lockstep with the
43
+ * CLI that reads it; a vendored copy does not, so it records the version that
44
+ * wrote it. That stamp is what `verify` compares against to tell a current
45
+ * vendored gate from one three releases behind.
46
+ *
47
+ * `null` leaves the reusable copy's own pin in place. That is the development
48
+ * build: stamping `0.0.0-development` would write an `npx redlinegate@` pin to
49
+ * a version npm has never published, which fails every pull request the gate
50
+ * reaches — the same reason the Azure pipeline leaves `@latest` alone there.
51
+ */
52
+ export function renderVendoredGate(reusable, version) {
53
+ const stamped = version === null
54
+ ? reusable
55
+ : reusable.replace(/REDLINE_CLI_VERSION: *'[^']*'/g, `REDLINE_CLI_VERSION: '${version}'`);
56
+ return `${HEADER(stampedVersion(stamped) ?? 'an unknown version')}${stamped}`;
57
+ }
58
+ /**
59
+ * Point a rendered caller workflow at the vendored gate instead of the
60
+ * organisation's.
61
+ *
62
+ * Operates on the caller AFTER `<org>` substitution, so it has one shape to
63
+ * match rather than two. A caller that carries no org reference is returned
64
+ * unchanged rather than throwing: the only way to reach that is a hand-edited
65
+ * template, and failing the install over it would cost the repository every
66
+ * other artifact in the run.
67
+ */
68
+ export function pointCallerAtLocalGate(caller) {
69
+ return caller.replace(/uses: *\S*\.github\/workflows\/redline-gate\.yml@\S*/, `uses: ${LOCAL_GATE_USES}`);
70
+ }
71
+ /**
72
+ * The version stamped into a vendored gate, or null if there is none to read.
73
+ *
74
+ * Null means "this file is not a vendored Redline gate, or is too old to say" —
75
+ * both of which `verify` reports as unknown rather than as stale, because
76
+ * neither is a drift measurement.
77
+ */
78
+ export function stampedVersion(vendored) {
79
+ return /REDLINE_CLI_VERSION: *'([^']*)'/.exec(vendored)?.[1] ?? null;
80
+ }
81
+ //# sourceMappingURL=vendor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../cli/platforms/github/vendor.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAC3E,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,kBAAkB;AAClB,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,iDAAiD;AAEjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AAEvE,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,kBAAkB,EAAE,CAAC;AAEzD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CACrC;IACE,4FAA4F;IAC5F,GAAG;IACH,iEAAiE,GAAG,GAAG;IACvE,GAAG;IACH,iFAAiF;IACjF,iFAAiF;IACjF,0EAA0E;IAC1E,4EAA4E;IAC5E,kEAAkE;IAClE,EAAE;IACF,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEf;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,OAAsB;IACzE,MAAM,OAAO,GACX,OAAO,KAAK,IAAI;QACd,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,gCAAgC,EAAE,yBAAyB,OAAO,GAAG,CAAC,CAAC;IAC9F,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,GAAG,OAAO,EAAE,CAAC;AAChF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,OAAO,MAAM,CAAC,OAAO,CACnB,sDAAsD,EACtD,SAAS,eAAe,EAAE,CAC3B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACvE,CAAC"}