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.
- package/README.md +23 -7
- package/dist/bin/redline.js +338 -43
- package/dist/bin/redline.js.map +1 -1
- package/dist/commands/init.js +353 -34
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/remove.js +43 -1
- 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/commands/verify.js +82 -2
- package/dist/commands/verify.js.map +1 -1
- package/dist/config/redline-json.js +63 -2
- 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/existing.js +151 -0
- package/dist/detect/existing.js.map +1 -0
- 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/exempt/parse.js +8 -1
- package/dist/exempt/parse.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 +9 -9
- package/dist/platforms/azure/install.js.map +1 -1
- package/dist/platforms/azure/verify.js +10 -2
- package/dist/platforms/azure/verify.js.map +1 -1
- package/dist/platforms/github/install.js +192 -26
- package/dist/platforms/github/install.js.map +1 -1
- package/dist/platforms/github/preflight.js +63 -0
- package/dist/platforms/github/preflight.js.map +1 -0
- package/dist/platforms/github/vendor.js +81 -0
- package/dist/platforms/github/vendor.js.map +1 -0
- package/dist/platforms/github/verify.js +79 -7
- package/dist/platforms/github/verify.js.map +1 -1
- package/dist/platforms/types.js +8 -0
- package/dist/platforms/types.js.map +1 -1
- package/dist/policy/diff.js +26 -9
- package/dist/policy/diff.js.map +1 -1
- package/dist/render/contexts.js +39 -0
- package/dist/render/contexts.js.map +1 -0
- package/dist/render/profile.js +44 -10
- package/dist/render/profile.js.map +1 -1
- package/dist/render/standards.js +10 -1
- package/dist/render/standards.js.map +1 -1
- package/dist/render/vendors.js +14 -53
- 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 +111 -0
- package/dist/ui/facts.js.map +1 -0
- package/dist/ui/prompt.js +330 -0
- package/dist/ui/prompt.js.map +1 -0
- package/dist/ui/report.js +214 -0
- package/dist/ui/report.js.map +1 -0
- package/dist/ui/tty.js +576 -0
- package/dist/ui/tty.js.map +1 -0
- package/dist/ui/wizard.js +293 -0
- package/dist/ui/wizard.js.map +1 -0
- package/dist/verify/remote.js +33 -0
- package/dist/verify/remote.js.map +1 -1
- package/package.json +13 -1
- package/platforms/azure/gate-template-github.yml +152 -0
- package/platforms/azure/gate-template.yml +59 -6
- package/scripts/check-pins.mjs +84 -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/contexts/speckit.md +22 -0
- package/standards/contexts/tmf.md +25 -0
- package/standards/manifest.json +78 -7
- 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 +9 -9
- package/workflows/dashboard.yml +1 -1
- package/workflows/redline-collect.yml +1 -1
- package/workflows/redline-gate.yml +38 -7
- package/workflows/seed-canary.yml +2 -2
- package/workflows/weekly-digest.yml +1 -1
- 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
|
-
|
|
270
|
-
|
|
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:
|
|
274
|
-
detail: `kept this repository's ${relPath}
|
|
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
|
-
|
|
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
|
-
|
|
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: {
|
|
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
|
-
|
|
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
|
-
|
|
444
|
-
|
|
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
|
-
|
|
455
|
-
|
|
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
|
-
|
|
472
|
-
|
|
473
|
-
|
|
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"}
|