dorfl 0.14.1 → 0.14.2
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/advance-ci-template.d.ts.map +1 -1
- package/dist/advance-ci-template.js +10 -4
- package/dist/advance-ci-template.js.map +1 -1
- package/dist/advance-lifecycle-template.d.ts.map +1 -1
- package/dist/advance-lifecycle-template.js +73 -21
- package/dist/advance-lifecycle-template.js.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/close-job-template.d.ts +1 -1
- package/dist/close-job-template.d.ts.map +1 -1
- package/dist/close-job-template.js +15 -2
- package/dist/close-job-template.js.map +1 -1
- package/dist/install-ci-core.d.ts +77 -0
- package/dist/install-ci-core.d.ts.map +1 -1
- package/dist/install-ci-core.js +94 -4
- package/dist/install-ci-core.js.map +1 -1
- package/dist/install-ci-github.d.ts +15 -1
- package/dist/install-ci-github.d.ts.map +1 -1
- package/dist/install-ci-github.js +32 -0
- package/dist/install-ci-github.js.map +1 -1
- package/dist/install-ci.d.ts.map +1 -1
- package/dist/install-ci.js +21 -0
- package/dist/install-ci.js.map +1 -1
- package/dist/intake-trigger-template.d.ts.map +1 -1
- package/dist/intake-trigger-template.js +22 -6
- package/dist/intake-trigger-template.js.map +1 -1
- package/dist/intake.d.ts.map +1 -1
- package/dist/intake.js +10 -5
- package/dist/intake.js.map +1 -1
- package/dist/mint-adr.d.ts.map +1 -1
- package/dist/mint-adr.js +4 -1
- package/dist/mint-adr.js.map +1 -1
- package/dist/slug-namespace.d.ts +4 -3
- package/dist/slug-namespace.d.ts.map +1 -1
- package/dist/slug-namespace.js +28 -3
- package/dist/slug-namespace.js.map +1 -1
- package/dist/slug-safety.d.ts +55 -0
- package/dist/slug-safety.d.ts.map +1 -0
- package/dist/slug-safety.js +76 -0
- package/dist/slug-safety.js.map +1 -0
- package/dist/triage-persist.d.ts.map +1 -1
- package/dist/triage-persist.js +12 -3
- package/dist/triage-persist.js.map +1 -1
- package/dist/verify-workflow-template.d.ts +1 -1
- package/dist/verify-workflow-template.d.ts.map +1 -1
- package/dist/verify-workflow-template.js +14 -2
- package/dist/verify-workflow-template.js.map +1 -1
- package/package.json +3 -2
- package/src/advance-ci-template.ts +12 -4
- package/src/advance-lifecycle-template.ts +75 -21
- package/src/cli.ts +2 -2
- package/src/close-job-template.ts +15 -2
- package/src/install-ci-core.ts +130 -4
- package/src/install-ci-github.ts +40 -1
- package/src/install-ci.ts +25 -0
- package/src/intake-trigger-template.ts +26 -6
- package/src/intake.ts +10 -5
- package/src/mint-adr.ts +4 -1
- package/src/slug-namespace.ts +33 -5
- package/src/slug-safety.ts +83 -0
- package/src/triage-persist.ts +13 -7
- package/src/verify-workflow-template.ts +14 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage-persist.js","sourceRoot":"","sources":["../src/triage-persist.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"triage-persist.js","sourceRoot":"","sources":["../src/triage-persist.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ export declare const VERIFY_WORKFLOW_PATH = "workflows/verify.yml";
|
|
|
40
40
|
* so the GitHub check it produces matches the required-status `context` install-ci
|
|
41
41
|
* configures on `main` — by construction, not by hand-typed agreement.
|
|
42
42
|
*/
|
|
43
|
-
export declare function generateVerifyWorkflow(
|
|
43
|
+
export declare function generateVerifyWorkflow(config: ResolvedCIConfig): string;
|
|
44
44
|
/** A single structural problem found in the generated verify workflow. */
|
|
45
45
|
export interface VerifyWorkflowProblem {
|
|
46
46
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-workflow-template.d.ts","sourceRoot":"","sources":["../src/verify-workflow-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-workflow-template.d.ts","sourceRoot":"","sources":["../src/verify-workflow-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAG3D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,oJAC8G,CAAC;AAEnJ,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAuEvE;AAED,0EAA0E;AAC1E,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,wBAAwB;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CA8B7E"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* (GitHub Merge Queue) can flip the ruleset on without changing this workflow's
|
|
21
21
|
* trigger surface — the forward seam the spec's Applied Answers q3 names.
|
|
22
22
|
*/
|
|
23
|
+
import { shouldDropCheckoutCredentials } from './install-ci-core.js';
|
|
23
24
|
/**
|
|
24
25
|
* The required-status-check CONTEXT install-ci sets via branch protection AND the
|
|
25
26
|
* job/check name the emitted verify workflow produces. ONE source of truth so
|
|
@@ -39,7 +40,18 @@ export const VERIFY_WORKFLOW_PATH = 'workflows/verify.yml';
|
|
|
39
40
|
* so the GitHub check it produces matches the required-status `context` install-ci
|
|
40
41
|
* configures on `main` — by construction, not by hand-typed agreement.
|
|
41
42
|
*/
|
|
42
|
-
export function generateVerifyWorkflow(
|
|
43
|
+
export function generateVerifyWorkflow(config) {
|
|
44
|
+
// `persist-credentials: false` ONLY on a repo KNOWN to be public (see
|
|
45
|
+
// {@link shouldDropCheckoutCredentials}): this job has `contents: read`, so
|
|
46
|
+
// the persisted token can only ever read, and on a public repo reads need
|
|
47
|
+
// no token. Unknown / private / internal ⇒ today's checkout, unchanged.
|
|
48
|
+
const checkoutCredentials = shouldDropCheckoutCredentials(config)
|
|
49
|
+
? `
|
|
50
|
+
# Public repository: every git read works without a token, and this
|
|
51
|
+
# job cannot push, so do not leave the token in .git/config for later
|
|
52
|
+
# steps (the project-setup hook's installs, the gate) to read.
|
|
53
|
+
persist-credentials: false`
|
|
54
|
+
: '';
|
|
43
55
|
return `\
|
|
44
56
|
# dorfl — the VERIFY workflow (Tier-1 GitHub ceiling; spec
|
|
45
57
|
# land-time-reverify-and-parallel-merge-ceiling, task
|
|
@@ -94,7 +106,7 @@ jobs:
|
|
|
94
106
|
steps:
|
|
95
107
|
- uses: actions/checkout@v5
|
|
96
108
|
with:
|
|
97
|
-
fetch-depth: 0
|
|
109
|
+
fetch-depth: 0${checkoutCredentials}
|
|
98
110
|
- uses: ./.github/actions/dorfl-setup
|
|
99
111
|
- name: run the repo verify gate
|
|
100
112
|
run: dorfl verify
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-workflow-template.js","sourceRoot":"","sources":["../src/verify-workflow-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"verify-workflow-template.js","sourceRoot":"","sources":["../src/verify-workflow-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAC,6BAA6B,EAAC,MAAM,sBAAsB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAE7C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAE7C,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GACnC,iJAAiJ,CAAC;AAEnJ,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAwB;IAC9D,sEAAsE;IACtE,4EAA4E;IAC5E,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,MAAM,CAAC;QAChE,CAAC,CAAC;;;;qCAIiC;QACnC,CAAC,CAAC,EAAE,CAAC;IACN,OAAO;;;;;;kEAM0D,oBAAoB;;4DAE1B,oBAAoB;yEACP,oBAAoB;;;;;;;;gDAQ7C,oBAAoB;;;;;;;;;;QAU5D,oBAAoB;;;;;;;;;;;WAWjB,oBAAoB;;;;;;;;;SAStB,oBAAoB;;IAEzB,oBAAoB;;;;;0BAKE,mBAAmB;;;;CAI5C,CAAC;AACF,CAAC;AAcD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,OAAgB,EAAE,OAAe,EAAQ,EAAE;QACvE,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,OAAO,EAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,IAAI;SACpB,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,CAAC,0BAA0B,EAAE,IAAI,MAAM,CAC7C,UAAU,oBAAoB,QAAQ,EACtC,GAAG,CACH,CAAC,IAAI,CACL,SAAS,CACT,EAAE,mDAAmD,oBAAoB,KAAK;QAC9E,6DAA6D,CAAC,CAAC;IAChE,OAAO,CAAC,sBAAsB,EAAE,oCAAoC,CAAC,IAAI,CACxE,SAAS,CACT,EAAE,kEAAkE,CAAC,CAAC;IACvE,OAAO,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,IAAI,CAC3D,SAAS,CACT,EAAE,oFAAoF,CAAC,CAAC;IACzF,OAAO,CAAC,yBAAyB,EAAE,CAAC,2BAA2B,CAAC,IAAI,CACnE,SAAS,CACT,EAAE,iDAAiD,CAAC,CAAC;IACtD,OAAO,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,IAAI,CACjD,SAAS,CACT,EAAE,mFAAmF,CAAC,CAAC;IACxF,OAAO,EAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,QAAQ,EAAC,CAAC;AAC9C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dorfl",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/wighawag/dorfl.git",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"as-soon": "^0.1.5",
|
|
37
37
|
"tsx": "^4.21.0",
|
|
38
38
|
"typescript": "^5.3.3",
|
|
39
|
-
"vitest": "^4.0.18"
|
|
39
|
+
"vitest": "^4.0.18",
|
|
40
|
+
"yaml": "^2.9.1"
|
|
40
41
|
},
|
|
41
42
|
"scripts": {
|
|
42
43
|
"build": "tsc && node scripts/vendor-protocol.mjs && node scripts/vendor-skills.mjs",
|
|
@@ -147,15 +147,23 @@ export function validateAdvanceCiTemplate(
|
|
|
147
147
|
'+ `cwd.repo.specs[]` pools), so a ready ungated SPEC becomes one auto-task ' +
|
|
148
148
|
'matrix leg alongside the eligible-task legs ' +
|
|
149
149
|
'(`ci-propose-matrix-must-enumerate-sliceable-prds-not-only-slices`).');
|
|
150
|
-
require('propose-one-advance-per-item', /dorfl advance "
|
|
150
|
+
require('propose-one-advance-per-item', /WORK_ITEM:\s*\$\{\{\s*matrix\.item\s*\}\}[\s\S]*?dorfl advance "\$\{WORK_ITEM\}"/.test(
|
|
151
151
|
text,
|
|
152
152
|
), 'each matrix leg must run one `dorfl advance <matrix item>` ' +
|
|
153
|
-
'(one PR per item).');
|
|
153
|
+
'(one PR per item), reading the item from the step env (`WORK_ITEM`).');
|
|
154
|
+
// The item id is a slug that may be hand-written, so it must reach the shell
|
|
155
|
+
// as DATA through `env:`, never as `${{ }}` text spliced into the `run:` script
|
|
156
|
+
// (GitHub Actions script injection).
|
|
157
|
+
require('matrix-item-not-spliced-into-run', !/dorfl advance "?\$\{\{/.test(
|
|
158
|
+
text,
|
|
159
|
+
), 'the matrix item must NOT be interpolated into the `run:` script as ' +
|
|
160
|
+
'`${{ matrix.item }}` (script injection): pass it through the step `env:` ' +
|
|
161
|
+
'as `WORK_ITEM` and quote it as `"${WORK_ITEM}"`.');
|
|
154
162
|
// The matrix leg must carry `--propose` so the integration mode is TIED to the
|
|
155
163
|
// matrix shape (it cannot desync from the dispatch `integrationMode` input nor
|
|
156
164
|
// fall back to a repo config default of `merge`). Scoped to the `advance-propose`
|
|
157
165
|
// job so it is the LEG that carries it, not merely the file somewhere.
|
|
158
|
-
require('propose-leg-carries-propose-flag', /advance-propose:[\s\S]*?dorfl advance "
|
|
166
|
+
require('propose-leg-carries-propose-flag', /advance-propose:[\s\S]*?dorfl advance "\$\{WORK_ITEM\}"[^\n]*--propose\b/.test(
|
|
159
167
|
text,
|
|
160
168
|
), 'each `propose` matrix leg must pass `--propose` so the integration mode is ' +
|
|
161
169
|
'TIED to the matrix shape (a leg can never merge to main / desync from the ' +
|
|
@@ -176,7 +184,7 @@ export function validateAdvanceCiTemplate(
|
|
|
176
184
|
// scoped to the `advance-merge:` job so the `--merge` flag is TIED to its leg
|
|
177
185
|
// (cannot desync from the dispatch `integrationMode` input nor fall back to a
|
|
178
186
|
// repo config default of `propose`).
|
|
179
|
-
require('merge-leg-carries-merge-flag', /advance-merge:[\s\S]*?dorfl advance "
|
|
187
|
+
require('merge-leg-carries-merge-flag', /advance-merge:[\s\S]*?dorfl advance "\$\{WORK_ITEM\}"[^\n]*--merge\b/.test(
|
|
180
188
|
text,
|
|
181
189
|
), 'each `merge` matrix leg must pass `--merge` so the integration mode is ' +
|
|
182
190
|
'TIED to the matrix shape (a leg can never propose-only / desync from the ' +
|
|
@@ -306,13 +306,26 @@ jobs:
|
|
|
306
306
|
# surfaceBlockers), so an override that does not reach this job produces an
|
|
307
307
|
# empty matrix and is silently inert. \`if:\` + the inner \`[ -n ... ]\` guard
|
|
308
308
|
# keep schedule/push (and a blank dispatch field) exporting NOTHING — an
|
|
309
|
-
# empty DORFL_* would make env-config coercion throw.
|
|
309
|
+
# empty DORFL_* would make env-config coercion throw. The inputs reach the
|
|
310
|
+
# shell through \`env:\` as DATA, never as \`\${{ }}\` text spliced into the
|
|
311
|
+
# script (GitHub's script-injection guidance), and the \`case\` guard stops a
|
|
312
|
+
# value from appending its own lines to $GITHUB_ENV. Both only matter if an
|
|
313
|
+
# input ever stops being a fixed \`type: choice\`; for the choices below the
|
|
314
|
+
# step writes exactly what it always did.
|
|
310
315
|
if: \${{ github.event_name == 'workflow_dispatch' }}
|
|
316
|
+
env:
|
|
317
|
+
DISPATCH_AUTO_BUILD: \${{ github.event.inputs.autoBuild }}
|
|
318
|
+
DISPATCH_AUTO_TASK: \${{ github.event.inputs.autoTask }}
|
|
319
|
+
DISPATCH_OBSERVATION_TRIAGE: \${{ github.event.inputs.observationTriage }}
|
|
320
|
+
DISPATCH_SURFACE_BLOCKERS: \${{ github.event.inputs.surfaceBlockers }}
|
|
311
321
|
run: |
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
[ -n "\${
|
|
322
|
+
case "\${DISPATCH_AUTO_BUILD}\${DISPATCH_AUTO_TASK}\${DISPATCH_OBSERVATION_TRIAGE}\${DISPATCH_SURFACE_BLOCKERS}" in
|
|
323
|
+
*$'\\n'*|*$'\\r'*) echo "::error::a dispatch gate override contains a line break"; exit 1 ;;
|
|
324
|
+
esac
|
|
325
|
+
[ -n "\${DISPATCH_AUTO_BUILD}" ] && echo "DORFL_AUTO_BUILD=\${DISPATCH_AUTO_BUILD}" >> "$GITHUB_ENV"
|
|
326
|
+
[ -n "\${DISPATCH_AUTO_TASK}" ] && echo "DORFL_AUTO_TASK=\${DISPATCH_AUTO_TASK}" >> "$GITHUB_ENV"
|
|
327
|
+
[ -n "\${DISPATCH_OBSERVATION_TRIAGE}" ] && echo "DORFL_OBSERVATION_TRIAGE=\${DISPATCH_OBSERVATION_TRIAGE}" >> "$GITHUB_ENV"
|
|
328
|
+
[ -n "\${DISPATCH_SURFACE_BLOCKERS}" ] && echo "DORFL_SURFACE_BLOCKERS=\${DISPATCH_SURFACE_BLOCKERS}" >> "$GITHUB_ENV"
|
|
316
329
|
true
|
|
317
330
|
- id: scan
|
|
318
331
|
# Enumerate eligible items as namespaced ids, one matrix leg per id. CI
|
|
@@ -402,11 +415,19 @@ jobs:
|
|
|
402
415
|
# DORFL_* ONLY on a workflow_dispatch with a non-blank input, so the
|
|
403
416
|
# one-shot override also reaches the \`advance\` leg that builds the item.
|
|
404
417
|
if: \${{ github.event_name == 'workflow_dispatch' }}
|
|
418
|
+
env:
|
|
419
|
+
DISPATCH_AUTO_BUILD: \${{ github.event.inputs.autoBuild }}
|
|
420
|
+
DISPATCH_AUTO_TASK: \${{ github.event.inputs.autoTask }}
|
|
421
|
+
DISPATCH_OBSERVATION_TRIAGE: \${{ github.event.inputs.observationTriage }}
|
|
422
|
+
DISPATCH_SURFACE_BLOCKERS: \${{ github.event.inputs.surfaceBlockers }}
|
|
405
423
|
run: |
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
[ -n "\${
|
|
424
|
+
case "\${DISPATCH_AUTO_BUILD}\${DISPATCH_AUTO_TASK}\${DISPATCH_OBSERVATION_TRIAGE}\${DISPATCH_SURFACE_BLOCKERS}" in
|
|
425
|
+
*$'\\n'*|*$'\\r'*) echo "::error::a dispatch gate override contains a line break"; exit 1 ;;
|
|
426
|
+
esac
|
|
427
|
+
[ -n "\${DISPATCH_AUTO_BUILD}" ] && echo "DORFL_AUTO_BUILD=\${DISPATCH_AUTO_BUILD}" >> "$GITHUB_ENV"
|
|
428
|
+
[ -n "\${DISPATCH_AUTO_TASK}" ] && echo "DORFL_AUTO_TASK=\${DISPATCH_AUTO_TASK}" >> "$GITHUB_ENV"
|
|
429
|
+
[ -n "\${DISPATCH_OBSERVATION_TRIAGE}" ] && echo "DORFL_OBSERVATION_TRIAGE=\${DISPATCH_OBSERVATION_TRIAGE}" >> "$GITHUB_ENV"
|
|
430
|
+
[ -n "\${DISPATCH_SURFACE_BLOCKERS}" ] && echo "DORFL_SURFACE_BLOCKERS=\${DISPATCH_SURFACE_BLOCKERS}" >> "$GITHUB_ENV"
|
|
410
431
|
true
|
|
411
432
|
- name: advance one item in-place (propose ⇒ opens a PR)
|
|
412
433
|
# In-place in this checkout (no --isolated/--remote): the CI container IS
|
|
@@ -421,13 +442,19 @@ jobs:
|
|
|
421
442
|
# works zero-config; the job's \`pull-requests: write\` scopes that token.
|
|
422
443
|
env:
|
|
423
444
|
GH_TOKEN: \${{ secrets.DORFL_GH_TOKEN || secrets.GITHUB_TOKEN }}
|
|
445
|
+
# The item id is a slug read from work/ (frontmatter \`slug:\` or the
|
|
446
|
+
# file name). dorfl sanitises the slugs it mints, but a hand-written
|
|
447
|
+
# one is only checked when \`advance\` resolves it, so it reaches the
|
|
448
|
+
# shell as DATA through env, never as \`\${{ matrix.item }}\` text
|
|
449
|
+
# spliced into the script.
|
|
450
|
+
WORK_ITEM: \${{ matrix.item }}
|
|
424
451
|
# \`--watch\` streams the build agent's high-signal turns (assistant text,
|
|
425
452
|
# tool calls, finish) into THIS job log live, so the run shows the agent
|
|
426
453
|
# working instead of freezing after "Start work". A read-only observer (no
|
|
427
454
|
# outcome/gate/git effect). It fits because each matrix leg names ONE item
|
|
428
455
|
# (one pi session to tail) — the merge job is now a per-item matrix too
|
|
429
456
|
# (see below) and streams the same way.
|
|
430
|
-
run: dorfl advance "\${
|
|
457
|
+
run: dorfl advance "\${WORK_ITEM}" --propose --watch --arbiter origin
|
|
431
458
|
|
|
432
459
|
# ── MERGE: a MATRIX of independent jobs (parallel build/gate/review, serialised land) ──
|
|
433
460
|
# SPEC \`land-time-reverify-and-parallel-merge-ceiling\` (stories 4 + 6): each item
|
|
@@ -468,11 +495,19 @@ jobs:
|
|
|
468
495
|
# merge job re-scans the pool inside \`advance -n\`, so it needs the override
|
|
469
496
|
# too for the lifecycle/task pools to reflect it.
|
|
470
497
|
if: \${{ github.event_name == 'workflow_dispatch' }}
|
|
498
|
+
env:
|
|
499
|
+
DISPATCH_AUTO_BUILD: \${{ github.event.inputs.autoBuild }}
|
|
500
|
+
DISPATCH_AUTO_TASK: \${{ github.event.inputs.autoTask }}
|
|
501
|
+
DISPATCH_OBSERVATION_TRIAGE: \${{ github.event.inputs.observationTriage }}
|
|
502
|
+
DISPATCH_SURFACE_BLOCKERS: \${{ github.event.inputs.surfaceBlockers }}
|
|
471
503
|
run: |
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
[ -n "\${
|
|
504
|
+
case "\${DISPATCH_AUTO_BUILD}\${DISPATCH_AUTO_TASK}\${DISPATCH_OBSERVATION_TRIAGE}\${DISPATCH_SURFACE_BLOCKERS}" in
|
|
505
|
+
*$'\\n'*|*$'\\r'*) echo "::error::a dispatch gate override contains a line break"; exit 1 ;;
|
|
506
|
+
esac
|
|
507
|
+
[ -n "\${DISPATCH_AUTO_BUILD}" ] && echo "DORFL_AUTO_BUILD=\${DISPATCH_AUTO_BUILD}" >> "$GITHUB_ENV"
|
|
508
|
+
[ -n "\${DISPATCH_AUTO_TASK}" ] && echo "DORFL_AUTO_TASK=\${DISPATCH_AUTO_TASK}" >> "$GITHUB_ENV"
|
|
509
|
+
[ -n "\${DISPATCH_OBSERVATION_TRIAGE}" ] && echo "DORFL_OBSERVATION_TRIAGE=\${DISPATCH_OBSERVATION_TRIAGE}" >> "$GITHUB_ENV"
|
|
510
|
+
[ -n "\${DISPATCH_SURFACE_BLOCKERS}" ] && echo "DORFL_SURFACE_BLOCKERS=\${DISPATCH_SURFACE_BLOCKERS}" >> "$GITHUB_ENV"
|
|
476
511
|
true
|
|
477
512
|
- name: advance one item in-place (merge ⇒ rebase + CAS land on main)
|
|
478
513
|
# In-place (no --isolated/--remote). \`--merge\` ties the integration mode
|
|
@@ -483,10 +518,16 @@ jobs:
|
|
|
483
518
|
# \`GH_TOKEN\` from the env.
|
|
484
519
|
env:
|
|
485
520
|
GH_TOKEN: \${{ secrets.DORFL_GH_TOKEN || secrets.GITHUB_TOKEN }}
|
|
521
|
+
# The item id is a slug read from work/ (frontmatter \`slug:\` or the
|
|
522
|
+
# file name). dorfl sanitises the slugs it mints, but a hand-written
|
|
523
|
+
# one is only checked when \`advance\` resolves it, so it reaches the
|
|
524
|
+
# shell as DATA through env, never as \`\${{ matrix.item }}\` text
|
|
525
|
+
# spliced into the script.
|
|
526
|
+
WORK_ITEM: \${{ matrix.item }}
|
|
486
527
|
# \`--watch\` streams the build agent's high-signal turns into THIS job
|
|
487
528
|
# log live; each leg names ONE item, so it fits the same way it does on
|
|
488
529
|
# the propose legs.
|
|
489
|
-
run: dorfl advance "\${
|
|
530
|
+
run: dorfl advance "\${WORK_ITEM}" --merge --watch --arbiter origin
|
|
490
531
|
|
|
491
532
|
# ── REAP merged remote work/* branches (capability F, the hygiene sweep) ─────
|
|
492
533
|
# PRESERVED from the seed (NOT a separate gc-sweep workflow): the provider-
|
|
@@ -607,11 +648,19 @@ export function validateAdvanceLifecycleWorkflow(
|
|
|
607
648
|
text,
|
|
608
649
|
), 'the matrix items must be ENUMERATED via the eligible-pool scan ' +
|
|
609
650
|
'(`dorfl scan --json`).');
|
|
610
|
-
require('propose-one-advance-per-item', /dorfl advance "
|
|
651
|
+
require('propose-one-advance-per-item', /WORK_ITEM:\s*\$\{\{\s*matrix\.item\s*\}\}[\s\S]*?dorfl advance "\$\{WORK_ITEM\}"/.test(
|
|
611
652
|
text,
|
|
612
653
|
), 'each matrix leg must run one `dorfl advance <matrix item>` ' +
|
|
613
|
-
'(one PR per item).');
|
|
614
|
-
|
|
654
|
+
'(one PR per item), reading the item from the step env (`WORK_ITEM`).');
|
|
655
|
+
// The item id is a slug that may be hand-written (only minted slugs are
|
|
656
|
+
// sanitised), so it must reach the shell as DATA through `env:`, never as `${{ }}` text
|
|
657
|
+
// spliced into the `run:` script (GitHub Actions script injection).
|
|
658
|
+
require('matrix-item-not-spliced-into-run', !/dorfl advance "?\$\{\{/.test(
|
|
659
|
+
operative,
|
|
660
|
+
), 'the matrix item must NOT be interpolated into the `run:` script as ' +
|
|
661
|
+
'`${{ matrix.item }}` (script injection): pass it through the step `env:` ' +
|
|
662
|
+
'as `WORK_ITEM` and quote it as `"${WORK_ITEM}"`.');
|
|
663
|
+
require('propose-leg-carries-propose-flag', /advance-propose:[\s\S]*?dorfl advance "\$\{WORK_ITEM\}"[^\n]*--propose\b/.test(
|
|
615
664
|
text,
|
|
616
665
|
), 'each `propose` matrix leg must pass `--propose` so the integration mode is ' +
|
|
617
666
|
'TIED to the matrix shape (a leg can never merge to main / desync from the ' +
|
|
@@ -626,7 +675,7 @@ export function validateAdvanceLifecycleWorkflow(
|
|
|
626
675
|
), 'the `merge` job must use a MATRIX (parallel build/gate/review per item; ' +
|
|
627
676
|
"the land tail is serialised by the engine's `mergeRetries` CAS-retry " +
|
|
628
677
|
"loop, not by the workflow's job shape).");
|
|
629
|
-
require('merge-leg-carries-merge-flag', /advance-merge:[\s\S]*?dorfl advance "
|
|
678
|
+
require('merge-leg-carries-merge-flag', /advance-merge:[\s\S]*?dorfl advance "\$\{WORK_ITEM\}"[^\n]*--merge\b/.test(
|
|
630
679
|
text,
|
|
631
680
|
), 'each `merge` matrix leg must pass `--merge` so the integration mode is ' +
|
|
632
681
|
'TIED to the matrix shape (a leg can never propose-only / desync from the ' +
|
|
@@ -692,9 +741,14 @@ export function validateAdvanceLifecycleWorkflow(
|
|
|
692
741
|
['observationTriage', 'DORFL_OBSERVATION_TRIAGE'],
|
|
693
742
|
['surfaceBlockers', 'DORFL_SURFACE_BLOCKERS'],
|
|
694
743
|
] as const) {
|
|
695
|
-
// The override is a guarded shell write
|
|
744
|
+
// The override is a guarded shell write of a step-env copy of the input:
|
|
745
|
+
// `env: DISPATCH_<X>: ${{ inputs.<x> }}` then
|
|
746
|
+
// `[ -n "${DISPATCH_<X>}" ] && echo "<ENV>=${DISPATCH_<X>}" >> $GITHUB_ENV`.
|
|
747
|
+
// The input never appears as `${{ }}` text inside the `run:` script.
|
|
748
|
+
const dispatchVar = envVar.replace(/^DORFL_/, 'DISPATCH_');
|
|
696
749
|
const guardedWrite = new RegExp(
|
|
697
|
-
|
|
750
|
+
`${dispatchVar}:\\s*\\$\\{\\{ github\\.event\\.inputs\\.${input} \\}\\}` +
|
|
751
|
+
`[\\s\\S]*?\\[ -n "\\$\\{${dispatchVar}\\}" \\] && echo "${envVar}=\\$\\{${dispatchVar}\\}"`,
|
|
698
752
|
);
|
|
699
753
|
require(`dispatch-${input}-guarded-write`, guardedWrite.test(
|
|
700
754
|
text,
|
package/src/cli.ts
CHANGED
|
@@ -1108,8 +1108,8 @@ interface CloseMergedIssuesFlags {
|
|
|
1108
1108
|
* it prints the error to stderr and exits 1 (the task-only commands never act on
|
|
1109
1109
|
* a spec). An OMITTED slug (`start`/`complete`/`prompt` infer it from the branch)
|
|
1110
1110
|
* passes through untouched. (The legacy ''prd:'' prefix is a DEAD namespace token
|
|
1111
|
-
* after the hard cutover
|
|
1112
|
-
*
|
|
1111
|
+
* after the hard cutover: it is not special-cased here; a ''prd:<slug>'' arg
|
|
1112
|
+
* is refused by the shared safe-slug check, since `:` is not a slug character.)
|
|
1113
1113
|
*
|
|
1114
1114
|
* `do` is the ONE command that spans both namespaces; it consumes the full
|
|
1115
1115
|
* `resolveSlug` (with the cross-namespace collision check) in the `do-in-place`
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
import type {ResolvedCIConfig} from './install-ci-core.js';
|
|
37
|
+
import {shouldDropCheckoutCredentials} from './install-ci-core.js';
|
|
37
38
|
|
|
38
39
|
/** The capability id (the registry key + the emitted workflow file stem). */
|
|
39
40
|
export const CLOSE_JOB_CAPABILITY_ID = 'close-job';
|
|
@@ -52,7 +53,19 @@ export const CLOSE_JOB_WORKFLOW_PATH = 'workflows/close-job.yml';
|
|
|
52
53
|
* and future per-config wiring, but the close-job shape itself is
|
|
53
54
|
* config-independent.
|
|
54
55
|
*/
|
|
55
|
-
export function generateCloseJobWorkflow(
|
|
56
|
+
export function generateCloseJobWorkflow(config: ResolvedCIConfig): string {
|
|
57
|
+
// `persist-credentials: false` ONLY on a repo KNOWN to be public (see
|
|
58
|
+
// {@link shouldDropCheckoutCredentials}): this job has `contents: read`, so
|
|
59
|
+
// the persisted token can only ever read, and on a public repo reads need
|
|
60
|
+
// no token. Unknown / private / internal ⇒ today's checkout, unchanged.
|
|
61
|
+
const checkoutCredentials = shouldDropCheckoutCredentials(config)
|
|
62
|
+
? `
|
|
63
|
+
# Public repository: every git read works without a token, and this
|
|
64
|
+
# job cannot push, so do not leave the token in .git/config for later
|
|
65
|
+
# steps (the setup action, including any project-setup hook, and
|
|
66
|
+
# close-merged-issues) to read.
|
|
67
|
+
persist-credentials: false`
|
|
68
|
+
: '';
|
|
56
69
|
return `\
|
|
57
70
|
# dorfl — the ISSUE CLOSE-JOB in CI (capability E, spec runner-in-ci).
|
|
58
71
|
# EMITTED by \`dorfl install-ci\`; the human commits it. DO NOT hand-edit a
|
|
@@ -112,7 +125,7 @@ jobs:
|
|
|
112
125
|
steps:
|
|
113
126
|
- uses: actions/checkout@v5
|
|
114
127
|
with:
|
|
115
|
-
fetch-depth: 0
|
|
128
|
+
fetch-depth: 0${checkoutCredentials}
|
|
116
129
|
- uses: ./.github/actions/dorfl-setup
|
|
117
130
|
- name: close issues whose work has landed on main
|
|
118
131
|
# In-place in this checkout (no --isolated/--remote): the CI container IS
|
package/src/install-ci-core.ts
CHANGED
|
@@ -141,6 +141,44 @@ export interface ResolvedCIConfig {
|
|
|
141
141
|
projectSetup?: Record<string, unknown>;
|
|
142
142
|
/** See {@link CIConfigFile.maxParallel}. Always resolved (default applied). */
|
|
143
143
|
maxParallel: number;
|
|
144
|
+
/**
|
|
145
|
+
* The repo's visibility, DETECTED at generation time through the provider
|
|
146
|
+
* seam ({@link CIProviderContext.getRepoVisibility}); never read from or
|
|
147
|
+
* written to a config file (it is a fact about the repo, not a choice).
|
|
148
|
+
* `undefined` ⇒ unknown, which keeps the conservative output. See
|
|
149
|
+
* {@link shouldDropCheckoutCredentials}.
|
|
150
|
+
*/
|
|
151
|
+
repoVisibility?: RepoVisibility;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* A repository's visibility on its CI provider. Used ONLY to decide whether the
|
|
156
|
+
* read-only jobs (verify, close-job) may check out with
|
|
157
|
+
* `persist-credentials: false`: on a PUBLIC repo every git read works without a
|
|
158
|
+
* token, so dropping the persisted token cannot break a fetch; on a private or
|
|
159
|
+
* internal repo (or when visibility is unknown) a fetch may need it.
|
|
160
|
+
*/
|
|
161
|
+
export type RepoVisibility = 'public' | 'private' | 'internal';
|
|
162
|
+
|
|
163
|
+
/** Parse a provider's visibility answer (`PUBLIC`, `private`, ...); unknown ⇒ `undefined`. */
|
|
164
|
+
export function parseRepoVisibility(raw: string): RepoVisibility | undefined {
|
|
165
|
+
const v = raw.trim().toLowerCase();
|
|
166
|
+
return v === 'public' || v === 'private' || v === 'internal' ? v : undefined;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Whether the read-only jobs (verify, close-job) should check out with
|
|
171
|
+
* `persist-credentials: false`. True ONLY when the repo is KNOWN to be public:
|
|
172
|
+
* then the persisted token adds nothing a git read needs (those jobs have
|
|
173
|
+
* `contents: read`, so they cannot push either way), while leaving it in
|
|
174
|
+
* `.git/config` hands it to every later step, including the project-setup
|
|
175
|
+
* hook's dependency installs. Unknown or non-public ⇒ keep today's checkout, so
|
|
176
|
+
* a project gate that runs `git fetch` on a private repo keeps working.
|
|
177
|
+
*/
|
|
178
|
+
export function shouldDropCheckoutCredentials(
|
|
179
|
+
config: Pick<ResolvedCIConfig, 'repoVisibility'>,
|
|
180
|
+
): boolean {
|
|
181
|
+
return config.repoVisibility === 'public';
|
|
144
182
|
}
|
|
145
183
|
|
|
146
184
|
/** The default harness the composite setup action installs. */
|
|
@@ -222,6 +260,13 @@ export interface CIProviderContext {
|
|
|
222
260
|
* no default-branch concept.
|
|
223
261
|
*/
|
|
224
262
|
getDefaultBranch?(): Promise<string | undefined>;
|
|
263
|
+
/**
|
|
264
|
+
* OPTIONALLY report the repo's VISIBILITY (GitHub:
|
|
265
|
+
* `gh repo view --json visibility`). Read-only. Returns `undefined` when the
|
|
266
|
+
* lookup fails; absent on a provider with no such concept. Drives
|
|
267
|
+
* {@link shouldDropCheckoutCredentials}.
|
|
268
|
+
*/
|
|
269
|
+
getRepoVisibility?(): Promise<RepoVisibility | undefined>;
|
|
225
270
|
/**
|
|
226
271
|
* OPTIONALLY create/replace a branch RULESET (GitHub:
|
|
227
272
|
* `POST /repos/{owner}/{repo}/rulesets`) carrying the deadlock-guard
|
|
@@ -673,6 +718,75 @@ function indent(text: string, spaces: number): string {
|
|
|
673
718
|
.join('\n');
|
|
674
719
|
}
|
|
675
720
|
|
|
721
|
+
/**
|
|
722
|
+
* The npm package the composite setup action installs for the `pi` harness.
|
|
723
|
+
*
|
|
724
|
+
* Upstream moved the harness from `@mariozechner/pi-coding-agent` (deprecated,
|
|
725
|
+
* frozen at 0.73.1) to this name. The binary is still `pi` and it still reads
|
|
726
|
+
* `~/.pi/agent/` (models.json / auth.json), so nothing else in the generated
|
|
727
|
+
* action changes.
|
|
728
|
+
*/
|
|
729
|
+
export const PI_HARNESS_PACKAGE = '@earendil-works/pi-coding-agent';
|
|
730
|
+
|
|
731
|
+
/**
|
|
732
|
+
* The EXACT `pi` harness version the composite setup action installs.
|
|
733
|
+
*
|
|
734
|
+
* Pinned because the install runs in jobs that hold `contents: write` and a
|
|
735
|
+
* provider API key: an unpinned `npm install -g` resolves whatever `latest` is
|
|
736
|
+
* at RUN time, so a compromised or broken release would reach those
|
|
737
|
+
* credentials with no review and no lockfile to catch it.
|
|
738
|
+
*
|
|
739
|
+
* It is a constant dorfl DECLARES (not an install-ci parameter) because the
|
|
740
|
+
* harness is coupled to dorfl, not to the consumer: dorfl drives `pi` through
|
|
741
|
+
* its CLI flags and reads its session files (`session-path.ts`,
|
|
742
|
+
* `watch-session.ts`), so the harness version that works is a property of the
|
|
743
|
+
* dorfl release. Bump it here, with a changeset, when a dorfl release needs a
|
|
744
|
+
* newer harness; every consumer picks it up on their next `install-ci` run.
|
|
745
|
+
*
|
|
746
|
+
* 0.80.6 is the version dorfl is exercised against day to day (the maintainer's
|
|
747
|
+
* installed `pi`), not the newest release: a harness upgrade should be a
|
|
748
|
+
* deliberate, tested bump. It requires Node >= 22.19.0, which the action's
|
|
749
|
+
* `node-version: '22'` satisfies (setup-node resolves the latest 22.x).
|
|
750
|
+
*/
|
|
751
|
+
export const PI_HARNESS_VERSION = '0.80.6';
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* The version of THIS dorfl package, read at runtime from its own
|
|
755
|
+
* `package.json` (the single source changesets bumps on release). The composite
|
|
756
|
+
* setup action installs `dorfl@<this version>` so a consumer's CI runs the SAME
|
|
757
|
+
* CLI that generated its workflows, instead of whatever `latest` is at run time.
|
|
758
|
+
*
|
|
759
|
+
* Resolved relative to this module (`dist/install-ci-core.js` or
|
|
760
|
+
* `src/install-ci-core.ts` → `../package.json`), so it works from the built CLI
|
|
761
|
+
* and under tsx. Throws when the version cannot be read: silently falling back
|
|
762
|
+
* to an unpinned install would reintroduce exactly the risk the pin removes.
|
|
763
|
+
*/
|
|
764
|
+
export function dorflPackageVersion(): string {
|
|
765
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
766
|
+
const pkgPath = join(here, '..', 'package.json');
|
|
767
|
+
let version: unknown;
|
|
768
|
+
try {
|
|
769
|
+
version = (JSON.parse(readFileSync(pkgPath, 'utf8')) as {version?: unknown})
|
|
770
|
+
.version;
|
|
771
|
+
} catch (err) {
|
|
772
|
+
throw new Error(
|
|
773
|
+
`install-ci: cannot read dorfl's own version from ${pkgPath} ` +
|
|
774
|
+
`(needed to pin \`npm install -g dorfl@<version>\`): ` +
|
|
775
|
+
(err instanceof Error ? err.message : String(err)),
|
|
776
|
+
);
|
|
777
|
+
}
|
|
778
|
+
if (
|
|
779
|
+
typeof version !== 'string' ||
|
|
780
|
+
!/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/.test(version)
|
|
781
|
+
) {
|
|
782
|
+
throw new Error(
|
|
783
|
+
`install-ci: dorfl's package.json at ${pkgPath} has no usable semver ` +
|
|
784
|
+
`"version" (got ${JSON.stringify(version)}); cannot pin the CI install.`,
|
|
785
|
+
);
|
|
786
|
+
}
|
|
787
|
+
return version;
|
|
788
|
+
}
|
|
789
|
+
|
|
676
790
|
/**
|
|
677
791
|
* The install step for the configured harness (the `pi` CLI; `''` ⇒ none).
|
|
678
792
|
* `registry` mode installs via `npm install -g`; `workspace` mode installs via
|
|
@@ -684,11 +798,15 @@ function harnessInstallStep(
|
|
|
684
798
|
installSource: InstallSource,
|
|
685
799
|
): string {
|
|
686
800
|
if (harness === 'pi') {
|
|
801
|
+
const spec = `${PI_HARNESS_PACKAGE}@${PI_HARNESS_VERSION}`;
|
|
687
802
|
const run =
|
|
688
803
|
installSource === 'workspace'
|
|
689
|
-
?
|
|
690
|
-
:
|
|
804
|
+
? `pnpm add -g ${spec}`
|
|
805
|
+
: `npm install -g ${spec}`;
|
|
691
806
|
return `
|
|
807
|
+
# Pinned to the exact harness version this dorfl release declares
|
|
808
|
+
# (PI_HARNESS_VERSION): the job holds write access and a provider key, so the
|
|
809
|
+
# version must not move on its own. Re-run \`dorfl install-ci\` to upgrade.
|
|
692
810
|
- name: Install agent harness (pi)
|
|
693
811
|
shell: bash
|
|
694
812
|
run: ${run}`;
|
|
@@ -815,17 +933,25 @@ ${indent(modelsJsonStr, 8)}
|
|
|
815
933
|
pnpm setup
|
|
816
934
|
echo "$HOME/.local/share/pnpm" >> "$GITHUB_PATH"
|
|
817
935
|
|
|
936
|
+
# \`--ignore-scripts\`: nothing here needs an install-time script. The build is
|
|
937
|
+
# explicit (\`pnpm -r build\` below; the root \`prepare\` would only repeat it),
|
|
938
|
+
# and verify runs on fork pull requests, where a lifecycle script would run
|
|
939
|
+
# the fork's code before any gate does.
|
|
818
940
|
- name: Install dependencies and build dorfl
|
|
819
941
|
shell: bash
|
|
820
942
|
run: |
|
|
821
|
-
pnpm install
|
|
943
|
+
pnpm install --ignore-scripts
|
|
822
944
|
pnpm -r build
|
|
823
945
|
cd packages/dorfl && pnpm link --global${installHarness}`;
|
|
824
946
|
} else {
|
|
825
947
|
installSteps = `\
|
|
948
|
+
# Pinned to the dorfl version that generated this action, so CI runs the
|
|
949
|
+
# same CLI that wrote these workflows (and never an unreviewed \`latest\` in a
|
|
950
|
+
# job holding write access and a provider key). Re-run \`dorfl install-ci\`
|
|
951
|
+
# after upgrading dorfl to move the pin.
|
|
826
952
|
- name: Install dorfl
|
|
827
953
|
shell: bash
|
|
828
|
-
run: npm install -g dorfl${installHarness}`;
|
|
954
|
+
run: npm install -g dorfl@${dorflPackageVersion()}${installHarness}`;
|
|
829
955
|
}
|
|
830
956
|
|
|
831
957
|
// NO bespoke CI resolver shim (task install-ci-shim-converges-on-dorfl-cmd,
|