diff --git a/components/runner-policy/README.md b/components/runner-policy/README.md index d7c37011..daee337e 100644 --- a/components/runner-policy/README.md +++ b/components/runner-policy/README.md @@ -1457,6 +1457,10 @@ At the v0.65.13 tag `ba7af78d291f10bd75651857a0db2357c23df0fe`, both contracts copy their v0.65.12 entries forward unchanged: the release fixes the pr-review-cli status job's read of the counted token leg's job result (ci-workflows#892), with no input, secret, permission or routing change. +At the v0.65.14 tag `3180217076b19bbdfccc43026c7f91c604da673d`, the pr-review-cli +contract copies its v0.65.13 entry forward unchanged: the release reports a +failed "Isolate the runner" install as install-failed (ci-workflows#893), with +no input, secret, permission or routing change. The Zizmor contract at `de50a08b6093d231519ee7a4c9371db76c0a7e1e` uses its reviewed `runner` input and checksum-verified native Linux binary, so enrolled consumers may route that advisory lane onto the managed fleet diff --git a/components/runner-policy/policy.json b/components/runner-policy/policy.json index 786b4c3e..9104539c 100644 --- a/components/runner-policy/policy.json +++ b/components/runner-policy/policy.json @@ -1287,6 +1287,28 @@ "FALLBACK_CLAUDE_CODE_OAUTH_TOKEN": "${{ secrets.FALLBACK_CLAUDE_CODE_OAUTH_TOKEN }}" } }, + "melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml@3180217076b19bbdfccc43026c7f91c604da673d": { + "routing": "hosted-only", + "fixedRunsOn": ["ubuntu-24.04"], + "allowedInputs": [ + "lane", + "publish", + "role", + "model-args", + "allowed-bot-sender-ids", + "allowed-author-ids", + "docs-only-paths", + "incremental-review", + "cli-version", + "hold-label", + "hold-paths" + ], + "allowedSecrets": { + "CLAUDE_API_KEY": "${{ secrets.REVIEWS_CLAUDE_API_KEY }}", + "CLAUDE_CODE_OAUTH_TOKEN": "${{ secrets.REVIEWS_CLAUDE_CODE_OAUTH_TOKEN }}", + "FALLBACK_CLAUDE_CODE_OAUTH_TOKEN": "${{ secrets.FALLBACK_CLAUDE_CODE_OAUTH_TOKEN }}" + } + }, "melodic-software/ci-workflows/.github/workflows/intake-label-needs-triage.yml@ab83b01273026ab5c23c6f3b40e946d97a863fa2": { "routing": "runner-input", "runnerInput": "runner", diff --git a/components/runner-policy/runner-policy.test.mjs b/components/runner-policy/runner-policy.test.mjs index c9153b38..b452b915 100644 --- a/components/runner-policy/runner-policy.test.mjs +++ b/components/runner-policy/runner-policy.test.mjs @@ -10275,6 +10275,19 @@ test("the intake-triage and pr-review-cli contracts at the v0.65.13 tag copy the assert.equal(Object.keys(contracts).filter((k) => k.endsWith(`@${sha}`)).length, 2); }); +// v0.65.14 reports a failed "Isolate the runner" install as install-failed +// (ci-workflows#893): no input, secret or permission changes, so the +// pr-review-cli entry copies v0.65.13 forward unchanged. +test("the pr-review-cli contract at the v0.65.14 tag copies its v0.65.13 entry unchanged", () => { + const contracts = BASE_POLICY.approvedReusableWorkflowContracts; + const key = (sha) => `melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml@${sha}`; + const sha = "3180217076b19bbdfccc43026c7f91c604da673d"; + const previous = "ba7af78d291f10bd75651857a0db2357c23df0fe"; + assert.ok(contracts[key(previous)]); + assert.deepEqual(contracts[key(sha)], contracts[key(previous)]); + assert.equal(Object.keys(contracts).filter((k) => k.endsWith(`@${sha}`)).length, 1); +}); + // Convergence as a property, never as a hardcoded SHA. The daily // claude-lanes-repin lane rewrites these components on every ci-workflows // release, and a test naming one revision would go red by construction on