putitoutthere 0.1.31 → 0.1.32
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/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -1
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +24 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +45 -0
- package/dist/doctor.js.map +1 -1
- package/dist/oidc-policy.d.ts +102 -0
- package/dist/oidc-policy.d.ts.map +1 -0
- package/dist/oidc-policy.js +289 -0
- package/dist/oidc-policy.js.map +1 -0
- package/package.json +1 -1
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAyHH,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAyHH,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0SlE"}
|
package/dist/cli.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* --json for plan; emit JSON instead of a table
|
|
15
15
|
*/
|
|
16
16
|
import { login, logout, status } from './auth.js';
|
|
17
|
-
import { doctor } from './doctor.js';
|
|
17
|
+
import { doctor, TRUST_POLICY_SCOPE_NOTE } from './doctor.js';
|
|
18
18
|
import { init } from './init.js';
|
|
19
19
|
import { plan } from './plan.js';
|
|
20
20
|
import { runPreflight } from './preflight-run.js';
|
|
@@ -220,6 +220,17 @@ export async function run(argv) {
|
|
|
220
220
|
process.stdout.write(` ${badge} ${a.artifact_name} (${a.target})${suffix}\n`);
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
+
if (report.trustPolicy) {
|
|
224
|
+
process.stdout.write('\ntrust policy (local):\n');
|
|
225
|
+
for (const wf of report.trustPolicy.workflows) {
|
|
226
|
+
const badge = wf.issues.length === 0 ? '✓' : '✗';
|
|
227
|
+
process.stdout.write(` ${badge} publish workflow: ${wf.filename}\n`);
|
|
228
|
+
for (const line of wf.issues) {
|
|
229
|
+
process.stdout.write(` ${line}\n`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
process.stdout.write(` ${TRUST_POLICY_SCOPE_NOTE}\n`);
|
|
233
|
+
}
|
|
223
234
|
if (report.issues.length > 0) {
|
|
224
235
|
process.stdout.write('\nIssues:\n');
|
|
225
236
|
for (const i of report.issues) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Issue #23. Plan: §21.1, §16.4.7. Artifact check: #89.
|
|
15
15
|
*/
|
|
16
|
+
import { type WorkflowFile } from './oidc-policy.js';
|
|
16
17
|
import { type AuthResult } from './preflight.js';
|
|
17
18
|
import { type DeepCheckRow, type InspectFn } from './token-scope.js';
|
|
18
19
|
export interface DoctorOptions {
|
|
@@ -47,6 +48,29 @@ export interface DoctorReport {
|
|
|
47
48
|
present: boolean;
|
|
48
49
|
expected: string;
|
|
49
50
|
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Trust-policy (local) check results. See `checkTrustPolicyLocal`.
|
|
53
|
+
* `undefined` when no publish workflow was found (e.g. a bare repo
|
|
54
|
+
* with no `.github/workflows/` yet — no signal, no noise).
|
|
55
|
+
*/
|
|
56
|
+
trustPolicy?: TrustPolicyReport;
|
|
57
|
+
}
|
|
58
|
+
export interface TrustPolicyReport {
|
|
59
|
+
workflows: Array<{
|
|
60
|
+
filename: string;
|
|
61
|
+
permissions_ok: boolean;
|
|
62
|
+
environment_ok: boolean;
|
|
63
|
+
invocation_ok: boolean;
|
|
64
|
+
issues: string[];
|
|
65
|
+
}>;
|
|
50
66
|
}
|
|
51
67
|
export declare function doctor(opts: DoctorOptions): Promise<DoctorReport>;
|
|
68
|
+
/**
|
|
69
|
+
* Exported for CLI rendering: the explicit "what's NOT checked" line
|
|
70
|
+
* we surface below the trust-policy phase so a green doctor output
|
|
71
|
+
* doesn't imply the filename landmine is caught.
|
|
72
|
+
*/
|
|
73
|
+
export declare const TRUST_POLICY_SCOPE_NOTE = "note: `doctor` does NOT diff workflow filename or environment name against each registry's trust policy. Renaming the workflow or environment will still break publish with HTTP 400 until the registry registration is updated.";
|
|
74
|
+
/** Re-exported for callers that want to construct a `TrustPolicyReport` or inspect workflows directly. */
|
|
75
|
+
export type { WorkflowFile };
|
|
52
76
|
//# sourceMappingURL=doctor.d.ts.map
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAa,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,mCAAmC;QACnC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;QACxB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA8EvE;AAmDD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,qOACiM,CAAC;AAEtO,0GAA0G;AAC1G,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/doctor.js
CHANGED
|
@@ -17,6 +17,7 @@ import { existsSync } from 'node:fs';
|
|
|
17
17
|
import { join } from 'node:path';
|
|
18
18
|
import { expectedLayout } from './completeness.js';
|
|
19
19
|
import { loadConfig } from './config.js';
|
|
20
|
+
import { checkEnvironment, checkPermissions, checkPublishInvocation, findPublishWorkflows, } from './oidc-policy.js';
|
|
20
21
|
import { plan } from './plan.js';
|
|
21
22
|
import { checkAuth } from './preflight.js';
|
|
22
23
|
import { deepCheck } from './token-scope.js';
|
|
@@ -78,13 +79,57 @@ export async function doctor(opts) {
|
|
|
78
79
|
const artifacts = opts.checkArtifacts && config
|
|
79
80
|
? await checkArtifacts(opts, cfgPath, issues)
|
|
80
81
|
: undefined;
|
|
82
|
+
const trustPolicy = checkTrustPolicyLocal(opts.cwd, issues);
|
|
81
83
|
return {
|
|
82
84
|
ok: issues.length === 0,
|
|
83
85
|
issues,
|
|
84
86
|
packages,
|
|
85
87
|
...(artifacts !== undefined ? { artifacts } : {}),
|
|
88
|
+
...(trustPolicy !== undefined ? { trustPolicy } : {}),
|
|
86
89
|
};
|
|
87
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Trust-policy (local) phase. Additive; runs after auth-availability.
|
|
93
|
+
* Deferred to a follow-up: filename-vs-registry diff and environment-
|
|
94
|
+
* name-vs-registry diff (Option C of #162).
|
|
95
|
+
*/
|
|
96
|
+
function checkTrustPolicyLocal(cwd, issues) {
|
|
97
|
+
const workflows = findPublishWorkflows(cwd);
|
|
98
|
+
if (workflows.length === 0)
|
|
99
|
+
return undefined;
|
|
100
|
+
const report = { workflows: [] };
|
|
101
|
+
for (const wf of workflows) {
|
|
102
|
+
const wfIssues = [];
|
|
103
|
+
const invocation = checkPublishInvocation(wf);
|
|
104
|
+
if (invocation !== null) {
|
|
105
|
+
wfIssues.push(`trust-policy: ${wf.filename}: no clearly-identifiable publish step (commented out?)`);
|
|
106
|
+
}
|
|
107
|
+
const perms = checkPermissions(wf);
|
|
108
|
+
for (const p of perms) {
|
|
109
|
+
wfIssues.push(`trust-policy: ${wf.filename}: job \`${p.job}\` is missing \`${p.permission}\` permission — add it to the job or to workflow-level \`permissions:\``);
|
|
110
|
+
}
|
|
111
|
+
const env = checkEnvironment(wf);
|
|
112
|
+
if (env !== null) {
|
|
113
|
+
wfIssues.push(`trust-policy: ${wf.filename}: job \`${env.job}\` has no \`environment:\` key — many trust policies pin an environment; add one (e.g. \`environment: release\`) matching the registry registration`);
|
|
114
|
+
}
|
|
115
|
+
for (const line of wfIssues)
|
|
116
|
+
issues.push(line);
|
|
117
|
+
report.workflows.push({
|
|
118
|
+
filename: wf.filename,
|
|
119
|
+
permissions_ok: perms.length === 0,
|
|
120
|
+
environment_ok: env === null,
|
|
121
|
+
invocation_ok: invocation === null,
|
|
122
|
+
issues: wfIssues,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return report;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Exported for CLI rendering: the explicit "what's NOT checked" line
|
|
129
|
+
* we surface below the trust-policy phase so a green doctor output
|
|
130
|
+
* doesn't imply the filename landmine is caught.
|
|
131
|
+
*/
|
|
132
|
+
export const TRUST_POLICY_SCOPE_NOTE = 'note: `doctor` does NOT diff workflow filename or environment name against each registry\'s trust policy. Renaming the workflow or environment will still break publish with HTTP 400 until the registry registration is updated.';
|
|
88
133
|
async function checkArtifacts(opts, cfgPath, issues) {
|
|
89
134
|
let matrix;
|
|
90
135
|
try {
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAqC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OIDC trust-policy local validation.
|
|
3
|
+
*
|
|
4
|
+
* `doctor` uses this module to check the locally-knowable structural
|
|
5
|
+
* prerequisites of OIDC trusted publishing:
|
|
6
|
+
*
|
|
7
|
+
* 1. At least one `.github/workflows/*.yml` file invokes either
|
|
8
|
+
* `putitoutthere publish` (as a `run:` command) or the composite
|
|
9
|
+
* action `thekevinscott/put-it-out-there@...` with a `command:`
|
|
10
|
+
* input that implies publishing.
|
|
11
|
+
* 2. That workflow's publishing job has `permissions: id-token: write`
|
|
12
|
+
* and `contents: write` (either job-level or workflow-level).
|
|
13
|
+
* 3. The publishing job has an `environment:` key set. We cannot
|
|
14
|
+
* validate the *value* against the registry's trust policy — that
|
|
15
|
+
* requires a registry-policy-read API per registry, which is
|
|
16
|
+
* deferred (Option C, see follow-up to #162).
|
|
17
|
+
* 4. A clearly-identifiable publish step exists — defends against
|
|
18
|
+
* edge cases like commented-out steps slipping past (1).
|
|
19
|
+
*
|
|
20
|
+
* The parser is intentionally regex/line-based rather than a full YAML
|
|
21
|
+
* parse: the four checks above all reduce to substring/indentation
|
|
22
|
+
* matches within a single jobs block. Adding a YAML dependency would
|
|
23
|
+
* buy us very little here. If the check set grows beyond this (e.g.
|
|
24
|
+
* "validate the environment value against a registry's trust policy"),
|
|
25
|
+
* revisit.
|
|
26
|
+
*
|
|
27
|
+
* Issue #162 — Option D (locally-knowable checks only).
|
|
28
|
+
*/
|
|
29
|
+
export interface WorkflowFile {
|
|
30
|
+
/** Absolute path to the workflow file on disk. */
|
|
31
|
+
path: string;
|
|
32
|
+
/** Basename, e.g. `release.yml`. */
|
|
33
|
+
filename: string;
|
|
34
|
+
/** Full file contents. */
|
|
35
|
+
source: string;
|
|
36
|
+
/** Parsed jobs (best-effort; top-level job keys + their raw bodies). */
|
|
37
|
+
jobs: WorkflowJob[];
|
|
38
|
+
/** Workflow-level `permissions:` block contents (empty if none). */
|
|
39
|
+
workflowPermissions: string;
|
|
40
|
+
}
|
|
41
|
+
export interface WorkflowJob {
|
|
42
|
+
/** Job key, e.g. `publish`. */
|
|
43
|
+
name: string;
|
|
44
|
+
/** Raw source of just that job block (everything indented under it). */
|
|
45
|
+
source: string;
|
|
46
|
+
}
|
|
47
|
+
export interface PermissionIssue {
|
|
48
|
+
kind: 'missing-permission';
|
|
49
|
+
workflow: string;
|
|
50
|
+
job: string;
|
|
51
|
+
permission: 'id-token: write' | 'contents: write';
|
|
52
|
+
}
|
|
53
|
+
export interface EnvironmentIssue {
|
|
54
|
+
kind: 'missing-environment';
|
|
55
|
+
workflow: string;
|
|
56
|
+
job: string;
|
|
57
|
+
}
|
|
58
|
+
export interface InvocationIssue {
|
|
59
|
+
kind: 'no-publish-step';
|
|
60
|
+
workflow: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Scan `.github/workflows/*.yml` and `*.yaml` for workflows that invoke
|
|
64
|
+
* `putitoutthere publish` or the composite action in a publish mode.
|
|
65
|
+
*
|
|
66
|
+
* Permissive by design: if a workflow *mentions* piot in any way that
|
|
67
|
+
* looks like publishing, include it. Downstream checks then report
|
|
68
|
+
* specifically. The cost of a false-positive is a spurious pass/fail
|
|
69
|
+
* line in `doctor`; the cost of a false-negative is silently missing
|
|
70
|
+
* the user's real publish workflow.
|
|
71
|
+
*/
|
|
72
|
+
export declare function findPublishWorkflows(repoRoot: string): WorkflowFile[];
|
|
73
|
+
/**
|
|
74
|
+
* Best-effort jobs parser. Finds the top-level `jobs:` block and
|
|
75
|
+
* extracts each direct-child key + its body. We use the two-space
|
|
76
|
+
* indent convention GitHub Actions workflows follow. Workflows that
|
|
77
|
+
* deviate (tabs, four-space) would miss — but `init` emits two-space,
|
|
78
|
+
* which is what we're validating.
|
|
79
|
+
*/
|
|
80
|
+
export declare function parseJobs(source: string): WorkflowJob[];
|
|
81
|
+
/**
|
|
82
|
+
* Check that the publishing job has (or inherits) the two permissions
|
|
83
|
+
* that OIDC trusted publishing requires. The permissions may be set at
|
|
84
|
+
* workflow level (top-level `permissions:`) and/or job level; this
|
|
85
|
+
* function reports a missing permission only if *neither* scope
|
|
86
|
+
* declares it. `write-all` satisfies both.
|
|
87
|
+
*/
|
|
88
|
+
export declare function checkPermissions(workflow: WorkflowFile): PermissionIssue[];
|
|
89
|
+
/**
|
|
90
|
+
* Return `{ kind: 'missing' }` when the publish job lacks an
|
|
91
|
+
* `environment:` key. Does NOT inspect the value — diff-vs-registry is
|
|
92
|
+
* Option C.
|
|
93
|
+
*/
|
|
94
|
+
export declare function checkEnvironment(workflow: WorkflowFile): EnvironmentIssue | null;
|
|
95
|
+
/**
|
|
96
|
+
* Sanity check: confirm the workflow has at least one clearly-
|
|
97
|
+
* identifiable publish step. `findPublishWorkflows` already filters,
|
|
98
|
+
* but this catches weird states like a `run:` that's been edited into
|
|
99
|
+
* a comment while the composite-action `uses:` line still matches.
|
|
100
|
+
*/
|
|
101
|
+
export declare function checkPublishInvocation(workflow: WorkflowFile): InvocationIssue | null;
|
|
102
|
+
//# sourceMappingURL=oidc-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc-policy.d.ts","sourceRoot":"","sources":["../src/oidc-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,oEAAoE;IACpE,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;CACnD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CA8BrE;AAgBD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CA6BvD;AA0BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,eAAe,EAAE,CAyB1E;AASD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAShF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI,CAiBrF"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OIDC trust-policy local validation.
|
|
3
|
+
*
|
|
4
|
+
* `doctor` uses this module to check the locally-knowable structural
|
|
5
|
+
* prerequisites of OIDC trusted publishing:
|
|
6
|
+
*
|
|
7
|
+
* 1. At least one `.github/workflows/*.yml` file invokes either
|
|
8
|
+
* `putitoutthere publish` (as a `run:` command) or the composite
|
|
9
|
+
* action `thekevinscott/put-it-out-there@...` with a `command:`
|
|
10
|
+
* input that implies publishing.
|
|
11
|
+
* 2. That workflow's publishing job has `permissions: id-token: write`
|
|
12
|
+
* and `contents: write` (either job-level or workflow-level).
|
|
13
|
+
* 3. The publishing job has an `environment:` key set. We cannot
|
|
14
|
+
* validate the *value* against the registry's trust policy — that
|
|
15
|
+
* requires a registry-policy-read API per registry, which is
|
|
16
|
+
* deferred (Option C, see follow-up to #162).
|
|
17
|
+
* 4. A clearly-identifiable publish step exists — defends against
|
|
18
|
+
* edge cases like commented-out steps slipping past (1).
|
|
19
|
+
*
|
|
20
|
+
* The parser is intentionally regex/line-based rather than a full YAML
|
|
21
|
+
* parse: the four checks above all reduce to substring/indentation
|
|
22
|
+
* matches within a single jobs block. Adding a YAML dependency would
|
|
23
|
+
* buy us very little here. If the check set grows beyond this (e.g.
|
|
24
|
+
* "validate the environment value against a registry's trust policy"),
|
|
25
|
+
* revisit.
|
|
26
|
+
*
|
|
27
|
+
* Issue #162 — Option D (locally-knowable checks only).
|
|
28
|
+
*/
|
|
29
|
+
import { readdirSync, readFileSync } from 'node:fs';
|
|
30
|
+
import { join } from 'node:path';
|
|
31
|
+
/**
|
|
32
|
+
* Scan `.github/workflows/*.yml` and `*.yaml` for workflows that invoke
|
|
33
|
+
* `putitoutthere publish` or the composite action in a publish mode.
|
|
34
|
+
*
|
|
35
|
+
* Permissive by design: if a workflow *mentions* piot in any way that
|
|
36
|
+
* looks like publishing, include it. Downstream checks then report
|
|
37
|
+
* specifically. The cost of a false-positive is a spurious pass/fail
|
|
38
|
+
* line in `doctor`; the cost of a false-negative is silently missing
|
|
39
|
+
* the user's real publish workflow.
|
|
40
|
+
*/
|
|
41
|
+
export function findPublishWorkflows(repoRoot) {
|
|
42
|
+
const dir = join(repoRoot, '.github', 'workflows');
|
|
43
|
+
let entries;
|
|
44
|
+
try {
|
|
45
|
+
entries = readdirSync(dir);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
const workflows = [];
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
if (!/\.ya?ml$/i.test(entry))
|
|
53
|
+
continue;
|
|
54
|
+
const path = join(dir, entry);
|
|
55
|
+
let source;
|
|
56
|
+
try {
|
|
57
|
+
source = readFileSync(path, 'utf8');
|
|
58
|
+
/* v8 ignore next 3 -- defensive fallback for an unreadable workflow file (permissions, TOCTOU); can't produce in tests without mocking the fs module. */
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (!looksLikePublishWorkflow(source))
|
|
64
|
+
continue;
|
|
65
|
+
workflows.push({
|
|
66
|
+
path,
|
|
67
|
+
filename: entry,
|
|
68
|
+
source,
|
|
69
|
+
jobs: parseJobs(source),
|
|
70
|
+
workflowPermissions: extractTopLevelBlock(source, 'permissions') ?? '',
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return workflows;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Heuristic filter. Matches:
|
|
77
|
+
* - a `run:` step that contains `putitoutthere publish`
|
|
78
|
+
* - `uses: thekevinscott/put-it-out-there@...` combined with
|
|
79
|
+
* `command: publish` somewhere in the file (the composite action
|
|
80
|
+
* defaults to `plan`, so we only flag explicit `publish`)
|
|
81
|
+
*/
|
|
82
|
+
function looksLikePublishWorkflow(source) {
|
|
83
|
+
if (/\bputitoutthere\s+publish\b/.test(source))
|
|
84
|
+
return true;
|
|
85
|
+
const usesPiot = /uses:\s*thekevinscott\/put-it-out-there@/.test(source);
|
|
86
|
+
const commandPublish = /command:\s*['"]?publish['"]?/.test(source);
|
|
87
|
+
return usesPiot && commandPublish;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Best-effort jobs parser. Finds the top-level `jobs:` block and
|
|
91
|
+
* extracts each direct-child key + its body. We use the two-space
|
|
92
|
+
* indent convention GitHub Actions workflows follow. Workflows that
|
|
93
|
+
* deviate (tabs, four-space) would miss — but `init` emits two-space,
|
|
94
|
+
* which is what we're validating.
|
|
95
|
+
*/
|
|
96
|
+
export function parseJobs(source) {
|
|
97
|
+
const lines = source.split('\n');
|
|
98
|
+
// Find the `jobs:` top-level key (unindented).
|
|
99
|
+
let jobsStart = -1;
|
|
100
|
+
for (let i = 0; i < lines.length; i++) {
|
|
101
|
+
if (/^jobs\s*:\s*$/.test(lines[i])) {
|
|
102
|
+
jobsStart = i + 1;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (jobsStart === -1)
|
|
107
|
+
return [];
|
|
108
|
+
const jobs = [];
|
|
109
|
+
let current = null;
|
|
110
|
+
for (let i = jobsStart; i < lines.length; i++) {
|
|
111
|
+
const line = lines[i];
|
|
112
|
+
// Another top-level key ends the jobs block.
|
|
113
|
+
if (/^\S/.test(line) && line.trim().length > 0)
|
|
114
|
+
break;
|
|
115
|
+
// A direct child job key: exactly 2-space indent + `name:`.
|
|
116
|
+
const match = /^ {2}([A-Za-z_][\w-]*)\s*:\s*$/.exec(line);
|
|
117
|
+
if (match) {
|
|
118
|
+
if (current)
|
|
119
|
+
jobs.push({ name: current.name, source: current.lines.join('\n') });
|
|
120
|
+
current = { name: match[1], lines: [] };
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (current)
|
|
124
|
+
current.lines.push(line);
|
|
125
|
+
}
|
|
126
|
+
if (current)
|
|
127
|
+
jobs.push({ name: current.name, source: current.lines.join('\n') });
|
|
128
|
+
return jobs;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Extract a top-level block's body (everything indented beneath a
|
|
132
|
+
* given unindented key up to the next top-level key). Returns the
|
|
133
|
+
* concatenated indented body, or `null` if the key is absent.
|
|
134
|
+
*/
|
|
135
|
+
function extractTopLevelBlock(source, key) {
|
|
136
|
+
const lines = source.split('\n');
|
|
137
|
+
const re = new RegExp(`^${key}\\s*:\\s*(.*)$`);
|
|
138
|
+
for (let i = 0; i < lines.length; i++) {
|
|
139
|
+
const m = re.exec(lines[i]);
|
|
140
|
+
if (!m)
|
|
141
|
+
continue;
|
|
142
|
+
// Inline form: `permissions: read-all`. Return the inline value.
|
|
143
|
+
if (m[1] && m[1].trim().length > 0)
|
|
144
|
+
return m[1].trim();
|
|
145
|
+
const body = [];
|
|
146
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
147
|
+
const line = lines[j];
|
|
148
|
+
if (/^\S/.test(line) && line.trim().length > 0)
|
|
149
|
+
break;
|
|
150
|
+
body.push(line);
|
|
151
|
+
}
|
|
152
|
+
return body.join('\n');
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Check that the publishing job has (or inherits) the two permissions
|
|
158
|
+
* that OIDC trusted publishing requires. The permissions may be set at
|
|
159
|
+
* workflow level (top-level `permissions:`) and/or job level; this
|
|
160
|
+
* function reports a missing permission only if *neither* scope
|
|
161
|
+
* declares it. `write-all` satisfies both.
|
|
162
|
+
*/
|
|
163
|
+
export function checkPermissions(workflow) {
|
|
164
|
+
const publishJob = findPublishJob(workflow);
|
|
165
|
+
if (publishJob === null)
|
|
166
|
+
return [];
|
|
167
|
+
const jobPerms = extractBlockFromJob(publishJob.source, 'permissions') ?? '';
|
|
168
|
+
const combined = `${workflow.workflowPermissions}\n${jobPerms}`;
|
|
169
|
+
const issues = [];
|
|
170
|
+
if (!hasPermission(combined, 'id-token', 'write')) {
|
|
171
|
+
issues.push({
|
|
172
|
+
kind: 'missing-permission',
|
|
173
|
+
workflow: workflow.filename,
|
|
174
|
+
job: publishJob.name,
|
|
175
|
+
permission: 'id-token: write',
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
if (!hasPermission(combined, 'contents', 'write')) {
|
|
179
|
+
issues.push({
|
|
180
|
+
kind: 'missing-permission',
|
|
181
|
+
workflow: workflow.filename,
|
|
182
|
+
job: publishJob.name,
|
|
183
|
+
permission: 'contents: write',
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
return issues;
|
|
187
|
+
}
|
|
188
|
+
function hasPermission(block, name, level) {
|
|
189
|
+
// `write-all` shortcut: every scope is `write`.
|
|
190
|
+
if (/\bwrite-all\b/.test(block))
|
|
191
|
+
return true;
|
|
192
|
+
const re = new RegExp(`\\b${name}\\s*:\\s*${level}\\b`);
|
|
193
|
+
return re.test(block);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Return `{ kind: 'missing' }` when the publish job lacks an
|
|
197
|
+
* `environment:` key. Does NOT inspect the value — diff-vs-registry is
|
|
198
|
+
* Option C.
|
|
199
|
+
*/
|
|
200
|
+
export function checkEnvironment(workflow) {
|
|
201
|
+
const publishJob = findPublishJob(workflow);
|
|
202
|
+
if (publishJob === null)
|
|
203
|
+
return null;
|
|
204
|
+
if (hasKeyAtJobLevel(publishJob.source, 'environment'))
|
|
205
|
+
return null;
|
|
206
|
+
return {
|
|
207
|
+
kind: 'missing-environment',
|
|
208
|
+
workflow: workflow.filename,
|
|
209
|
+
job: publishJob.name,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Sanity check: confirm the workflow has at least one clearly-
|
|
214
|
+
* identifiable publish step. `findPublishWorkflows` already filters,
|
|
215
|
+
* but this catches weird states like a `run:` that's been edited into
|
|
216
|
+
* a comment while the composite-action `uses:` line still matches.
|
|
217
|
+
*/
|
|
218
|
+
export function checkPublishInvocation(workflow) {
|
|
219
|
+
// Strip comment-only lines and blank lines before matching. A
|
|
220
|
+
// commented-out `run: putitoutthere publish` step shouldn't count.
|
|
221
|
+
const uncommented = workflow.source
|
|
222
|
+
.split('\n')
|
|
223
|
+
.filter((l) => !/^\s*#/.test(l))
|
|
224
|
+
.join('\n');
|
|
225
|
+
const hasRunCmd = /\bputitoutthere\s+publish\b/.test(uncommented);
|
|
226
|
+
if (hasRunCmd)
|
|
227
|
+
return null;
|
|
228
|
+
// Composite-action form with `command: publish` explicitly.
|
|
229
|
+
const usesPiot = /uses:\s*thekevinscott\/put-it-out-there@/.test(uncommented);
|
|
230
|
+
const commandPublish = /command:\s*['"]?publish['"]?/.test(uncommented);
|
|
231
|
+
if (usesPiot && commandPublish)
|
|
232
|
+
return null;
|
|
233
|
+
return { kind: 'no-publish-step', workflow: workflow.filename };
|
|
234
|
+
}
|
|
235
|
+
/* ---------------------------- helpers ---------------------------- */
|
|
236
|
+
/**
|
|
237
|
+
* Pick the job within a workflow that runs publish. If only one job
|
|
238
|
+
* matches, return it. If multiple match, prefer the one whose name
|
|
239
|
+
* contains `publish`; otherwise return the first.
|
|
240
|
+
*/
|
|
241
|
+
function findPublishJob(workflow) {
|
|
242
|
+
const matches = workflow.jobs.filter((j) => jobRunsPublish(j));
|
|
243
|
+
if (matches.length === 0)
|
|
244
|
+
return null;
|
|
245
|
+
const named = matches.find((j) => /publish/i.test(j.name));
|
|
246
|
+
return named ?? matches[0];
|
|
247
|
+
}
|
|
248
|
+
function jobRunsPublish(job) {
|
|
249
|
+
if (/\bputitoutthere\s+publish\b/.test(job.source))
|
|
250
|
+
return true;
|
|
251
|
+
const usesPiot = /uses:\s*thekevinscott\/put-it-out-there@/.test(job.source);
|
|
252
|
+
const commandPublish = /command:\s*['"]?publish['"]?/.test(job.source);
|
|
253
|
+
return usesPiot && commandPublish;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Whether the given job's source declares the key at the job scope
|
|
257
|
+
* (exactly 4-space indent, matching the 2-space job indent + one level
|
|
258
|
+
* further). Inline or block form both accepted.
|
|
259
|
+
*/
|
|
260
|
+
function hasKeyAtJobLevel(jobSource, key) {
|
|
261
|
+
const re = new RegExp(`^ {4}${key}\\s*:`, 'm');
|
|
262
|
+
return re.test(jobSource);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Extract a nested block from inside a job source — `permissions:` or
|
|
266
|
+
* `environment:` below the 4-space indent.
|
|
267
|
+
*/
|
|
268
|
+
function extractBlockFromJob(jobSource, key) {
|
|
269
|
+
const lines = jobSource.split('\n');
|
|
270
|
+
const headRe = new RegExp(`^ {4}${key}\\s*:\\s*(.*)$`);
|
|
271
|
+
for (let i = 0; i < lines.length; i++) {
|
|
272
|
+
const m = headRe.exec(lines[i]);
|
|
273
|
+
if (!m)
|
|
274
|
+
continue;
|
|
275
|
+
if (m[1] && m[1].trim().length > 0)
|
|
276
|
+
return m[1].trim();
|
|
277
|
+
const body = [];
|
|
278
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
279
|
+
const line = lines[j];
|
|
280
|
+
// Any line indented 4 spaces or less (and non-empty) ends the block.
|
|
281
|
+
if (line.trim().length > 0 && /^ {0,4}\S/.test(line))
|
|
282
|
+
break;
|
|
283
|
+
body.push(line);
|
|
284
|
+
}
|
|
285
|
+
return body.join('\n');
|
|
286
|
+
}
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=oidc-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc-policy.js","sourceRoot":"","sources":["../src/oidc-policy.ts"],"names":[],"mappings":"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"}
|