Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions components/runner-policy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1433,6 +1433,11 @@ entry at `b0ecc273abe492d12f2efa98ee4741a84c219ed2`: the apply job keeps an
existing Issue Type, a permission denial on an otherwise clean triage applies
nothing, and the new `triage-deferred` output reports that deferral
(ci-workflows#887), with no input, secret, permission or routing change.
At the v0.65.11 tag `e5167fc29d948ab7d0923cf62f5ea9eeeef8e9e8`, the
`intake-triage` contract is copied forward verbatim from v0.65.10 and the
`pr-review-cli` contract from v0.65.9: the lane-outcome record gains the
leg's token usage and rate-limit windows (ci-workflows#889), 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
Expand Down
47 changes: 47 additions & 0 deletions components/runner-policy/policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,32 @@
"issues": "write"
}
},
"melodic-software/ci-workflows/.github/workflows/intake-triage.yml@e5167fc29d948ab7d0923cf62f5ea9eeeef8e9e8": {
"routing": "runner-input",
"runnerInput": "runner",
"role": "intake",
"allowedInputs": [
"runner",
"allowed-labels",
"escalation-label",
"floor-label",
"instructions",
"cli-version",
"claude-args",
"issue-number",
"allowed-author-ids",
"allowed-bot-sender-ids",
"role"
],
"allowedSecrets": {
"CLAUDE_API_KEY": "${{ secrets.INTAKE_CLAUDE_API_KEY }}",
"CLAUDE_CODE_OAUTH_TOKEN": "${{ secrets.INTAKE_CLAUDE_CODE_OAUTH_TOKEN }}"
},
"allowedCallerPermissions": {
"contents": "read",
"issues": "write"
}
},
"melodic-software/ci-workflows/.github/workflows/pr-review.yml@ab83b01273026ab5c23c6f3b40e946d97a863fa2": {
"routing": "runner-input",
"runnerInput": "runner",
Expand Down Expand Up @@ -1142,6 +1168,27 @@
"CLAUDE_CODE_OAUTH_TOKEN": "${{ secrets.REVIEWS_CLAUDE_CODE_OAUTH_TOKEN }}"
}
},
"melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml@e5167fc29d948ab7d0923cf62f5ea9eeeef8e9e8": {
"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 }}"
}
},
"melodic-software/ci-workflows/.github/workflows/intake-label-needs-triage.yml@ab83b01273026ab5c23c6f3b40e946d97a863fa2": {
"routing": "runner-input",
"runnerInput": "runner",
Expand Down
18 changes: 18 additions & 0 deletions components/runner-policy/runner-policy.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10082,6 +10082,24 @@ test("the intake-triage contract at the v0.65.10 tag copies its b0ecc27 entry fo
assert.equal(Object.keys(contracts).filter((k) => k.endsWith(`@${sha}`)).length, 1);
});

// v0.65.11 adds the leg's token usage and rate-limit windows to the
// lane-outcome record (ci-workflows#889). Inputs, secrets and job permissions
// are unchanged, so both lane contracts copy forward.
test("the intake-triage and pr-review-cli contracts at the v0.65.11 tag copy their prior entries forward verbatim", () => {
const contracts = BASE_POLICY.approvedReusableWorkflowContracts;
const key = (wf, sha) => `melodic-software/ci-workflows/.github/workflows/${wf}@${sha}`;
const sha = "e5167fc29d948ab7d0923cf62f5ea9eeeef8e9e8";
assert.deepEqual(
contracts[key("intake-triage.yml", sha)],
contracts[key("intake-triage.yml", "215cec5c362f953f8b6196effb04451696c3f970")],
);
assert.deepEqual(
contracts[key("pr-review-cli.yml", sha)],
contracts[key("pr-review-cli.yml", "4fbceb4b75ffd568dfa5db31de0d0e753c0c64e6")],
);
assert.equal(Object.keys(contracts).filter((k) => k.endsWith(`@${sha}`)).length, 2);
});

// 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
Expand Down
Loading