Repository navigation
feat(runner-policy): add ci-workflows v0.39.0 contracts - #732
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude finished @kyle-sexton's task in 3m 34s —— View job Code review:
|
|
Claude finished @kyle-sexton's task in 1m 56s —— View job Security review complete
No security issues found. This PR is a pure-addition registration change: nine new Checked:
GitHub Actions supply-chain/pin-hardening concerns (e.g., independently verifying the SHA's content against the upstream release) are zizmor's advisory lane per this skill's scope and are not re-reported here. |
|
claude-security-review has reviewed this pull request through ba362ec; a later push is reviewed from there. |
|
claude-review has reviewed this pull request through ba362ec; a later push is reviewed from there. |
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration (standards-sync automation, phase C). ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), and renames the secrets this repository passes to `maintenance-sync-standards` to the names v0.39.0 declares. ## Fix - Pin SHA and `# v0.39.0` comment on 31 lines across five workflows. - `maintenance-sync-standards.yml`: `app-client-id` / `app-private-key` become `STANDARDS_SYNC_APP_CLIENT_ID` / `STANDARDS_SYNC_APP_PRIVATE_KEY` (values unchanged). Environment secret names allow only `[A-Za-z0-9_]`, so the hyphenated names could never be supplied from an environment. No `environment` input is passed: the default `standards-sync` is intended, and its main-only branch policy is declared in github-iac separately. Until then the job auto-creates the environment and still reads the repo-level secrets. - Component sources under `components/` are untouched; managed callers move through `maintenance-repin-ci-workflows`. ## Verification - actionlint passes on `.github/workflows/*.yml`; every pinned path exists at `6ba73b9`. - Runner-policy contracts for `6ba73b9`, including the renamed secret keys, are in #732; this PR's runner-policy check passes once #732 merges. ## Related - #732 (v0.39.0 runner-policy contracts) - melodic-software/ci-workflows#707 (environment input, secret rename), #708 (sync-verify mode); release v0.39.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that asserts the pin. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that asserts the pin. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that asserts the pin. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that asserts the pin. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that asserts the pin. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that asserts the pin. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that asserts the pin. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.38.2 (`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.0` comment, plus repo-owned files that assert the pin (README, check-docs-only-gate.sh). The required `check-managed-files` job pins v0.39.1 (`c586acc`), which adds only that action's Dependabot-skip hardening (ci-workflows#709); it is a composite action, so it needs no runner-policy contract. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. No pinned path moved between v0.38.2 and v0.39.0, and no caller-facing input changed for the reusables pinned here. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `6ba73b9` except the required `check-managed-files` job at `c586acc` (v0.39.1); every pinned path exists at its commit. - `aggregate-results` is byte-identical between `cf316d1` and `6ba73b9` (`git diff --stat` empty), so the hand-verified `contract-only` predicate note in `check-docs-only-gate.sh` still holds at the new pin. - actionlint passes on the changed workflows; the diff touches pin lines only. - The runner-policy contracts for `6ba73b9` merged in melodic-software/standards#732; this PR's runner-policy check passes once the standards sync delivers them. ## Related - melodic-software/standards#732 (v0.39.0 runner-policy contracts) - ci-workflows v0.39.0 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: unblocks the ci-workflows v0.39.3 fleet repin in the GitHub Actions conventions migration. ## Summary Registers the nine ci-workflows reusables at the v0.39.3 tag `ab83b01273026ab5c23c6f3b40e946d97a863fa2` in `components/runner-policy/policy.json`, so consumer repins from v0.38.2, v0.39.0 and v0.39.1/v0.39.2 pass runner-policy. The `6ba73b9` (v0.39.0) and `cf316d1` (v0.38.2) entries stay until every consumer has repinned; a follow-up retires them. ## Fix - `policy.json`: nine new keys, each spliced in as text after its `6ba73b9` entry (no re-serialization; 121 insertions, 0 deletions). All nine are verbatim copies (parsed-JSON equality checked per entry). - `README.md`: review note for v0.39.3. Contracts added (all `melodic-software/ci-workflows/.github/workflows/<file>@ab83b01273026ab5c23c6f3b40e946d97a863fa2`): | Reusable | Secret-capable | Workflow blob | Commit-relative paths reached | Contract | | --- | --- | --- | --- | --- | | `intake-triage.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | identical (`ccc44c4`) | `$/report-lane-outcome` identical (`cff090b`) | Verbatim copy | | `pr-review.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | identical (`f0e042a`) | `$/report-lane-outcome` identical | Verbatim copy | | `pr-review-security.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | identical (`121c7e2`) | `$/report-lane-outcome` identical | Verbatim copy | | `maintenance-sync-standards.yml` | yes (App client ID + private key) | identical (`b3e81ac`) | none | Verbatim copy | | `intake-label-needs-triage.yml` | no | identical (`a0a7e39`) | none | Verbatim copy | | `pr-scan-dependencies.yml` | no | identical (`5ced69e`) | none | Verbatim copy | | `pr-audit-workflows.yml` | no | identical (`0a1a611`) | none | Verbatim copy | | `pr-automerge-dependabot.yml` | no | identical (`7f65abe`) | none | Verbatim copy | | `pr-run-checks.yml` | no | identical (`3f9622e`) | 13 `$/` actions: 8 identical; `detect-changes`, `gitleaks`, `check-exec-bit`, `check-machine-paths`, `check-comment-markers` changed | Verbatim copy, **needs hand review** | **Hand review needed on `pr-run-checks`:** its surface and workflow blob are identical, but five action trees it reaches have different object SHAs, so it is not an auto-copy under the README's tree-SHA rule. The change is the shfmt `switch_case_indent` re-indentation (ci-workflows#712): `git diff --stat 6ba73b97 ab83b01` on those five directories shows 103 insertions and 103 deletions across `superset-test.sh`, `check-exec-bit.sh`, `check-machine-specific-paths.sh`, `match.sh`, `scan.sh` and `scan.test.sh`, and `git diff -w` on the same paths is empty. No `action.yml` changed. The other release changes (`check-managed-files` Dependabot-skip hardening in ci-workflows#709, `pr-require-checks.yml`, `pr-run-checks-go.yml` golangci-lint bump in #713) are not reached by any registered reusable. ## Verification - In ci-workflows, `git rev-parse` of each of the nine workflow blobs at `6ba73b97` and `ab83b01` matches, and a recursive walk of every `$/` and `./` reference shows the object SHAs in the table. - Per-entry check: each new key's parsed contract equals its `6ba73b9` predecessor. - `npm run test:runner-policy` (297/297), `npm run lint:runner-policy`, `npm run test:concurrency-policy` (31/31), `npm run lint:concurrency-policy`, `npm run test:pr-convention-lockstep` (82/82), `npm run lint:dependabot-automerge-lockstep`, `npx biome check components/runner-policy/policy.json`, `markdownlint-cli2 components/runner-policy/README.md`, and the lefthook pre-commit (editorconfig, typos, markdownlint, gitleaks, biome): all pass. - `npm run lint:pr-convention-lockstep` fails locally on live fleet fetches (unauthenticated HTTP 403s and caller drift in other repos); it reads no file this PR touches. ## Related - ci-workflows v0.39.3 release (`ab83b01`) - #732 (v0.39.0 contract precedent) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: unblocks the ci-workflows v0.39.0 fleet repin in the GitHub Actions conventions migration.
Summary
Registers the nine ci-workflows reusables at the v0.39.0 tag
6ba73b97b058602c4dd2bb6e2cce234d11011787incomponents/runner-policy/policy.json, so consumer repins from v0.38.2 pass runner-policy. Thecf316d1(v0.38.2) entries stay until every consumer has repinned; a follow-up retires them.Fix
policy.json: nine new keys, each spliced in as text after itscf316d1entry (no re-serialization; 121 insertions, 0 deletions). Eight are verbatim copies;maintenance-sync-standardswidens.README.md: review note for v0.39.0.Contracts added (all
melodic-software/ci-workflows/.github/workflows/<file>@6ba73b97b058602c4dd2bb6e2cce234d11011787):maintenance-sync-standards.ymlenvironmentinput (defaultstandards-sync);attestandsyncjobs now run in that caller-repository environment withdeployment: false, so an environment secret overrides a passed one.workflow_callsecrets renamedapp-client-id/app-private-keytoSTANDARDS_SYNC_APP_CLIENT_ID/STANDARDS_SYNC_APP_PRIVATE_KEY.allowedInputsaddsenvironment;allowedSecretskeys renamed toSTANDARDS_SYNC_APP_CLIENT_ID/STANDARDS_SYNC_APP_PRIVATE_KEY(caller-side values unchanged). Consumers must rename the keys undersecrets:when they repin.intake-triage.ymlCLAUDE_CODE_OAUTH_TOKEN)anthropics/claude-code-actionv1.0.240 to v1.0.241 (cab360f);$/report-lane-outcometree changes only in its tests.pr-review.ymlCLAUDE_CODE_OAUTH_TOKEN)$/report-lane-outcomechange.pr-review-security.ymlCLAUDE_CODE_OAUTH_TOKEN)$/report-lane-outcomechange.intake-label-needs-triage.ymla0a7e39).pr-scan-dependencies.yml5ced69e).pr-audit-workflows.yml0a1a611).pr-automerge-dependabot.yml7f65abe).pr-run-checks.yml3f9622e).The four secret-capable entries never auto-copy and need the owner's hand sign-off. The other release changes (
pr-require-checks.yml,check-managed-files, newcheck-workflow-naming) are not consumed by any pinned reusable.Verification
git diff cf316d12..6ba73b97 -- .github/workflowsin ci-workflows matches the table: four reusables changed, five byte-identical; caller permissions andruns-onrouting unchanged for all nine.git diffof.github/actions/report-lane-outcomeshows onlyclassify.test.cjsandoutcome-step.test.cjs.npm run test:runner-policy(297/297),npm run lint:runner-policy,npx biome check components/runner-policy/policy.json,markdownlint-cli2 components/runner-policy/README.md, and the lefthook pre-commit (typos, editorconfig, gitleaks): all pass.Related
6ba73b9)🤖 Generated with Claude Code