Repository navigation
feat(runner-policy): add ci-workflows v0.38.2 contracts - #716
Conversation
Register the nine ci-workflows reusables at the v0.38.2 tag cf316d12b4a14fbdb96a339b7ad00ce935a8cad4, each a verbatim copy of its v0.38.1 (2531d56) entry. v0.38.2 touches only pr-require-checks, so all nine workflow blobs are byte-identical. Unblocks the claude-lanes repin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S6P1ZfQhbydBZNKz2LUfnf
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 1m 41s —— View job Security review complete — no issues found
Scope: Findings: none. This PR only adds nine new keyed entries to I verified the PR's own claim by diffing each new entry against its
GitHub Actions hardening concerns (pinning, trigger types, expression injection) are zizmor's advisory lane per this review's scope and are not re-reported here; nothing here touches workflow trigger types or |
|
Claude finished @kyle-sexton's task in 2m 43s —— View job Review:
|
|
claude-security-review has reviewed this pull request through 14a5a89; a later push is reviewed from there. |
|
claude-review has reviewed this pull request through 14a5a89; a later push is reviewed from there. |
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 `6ba73b97b058602c4dd2bb6e2cce234d11011787` in `components/runner-policy/policy.json`, so consumer repins from v0.38.2 pass runner-policy. The `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 `cf316d1` entry (no re-serialization; 121 insertions, 0 deletions). Eight are verbatim copies; `maintenance-sync-standards` widens. - `README.md`: review note for v0.39.0. Contracts added (all `melodic-software/ci-workflows/.github/workflows/<file>@6ba73b97b058602c4dd2bb6e2cce234d11011787`): | Reusable | Secret-capable | Surface change since v0.38.2 | Contract | | --- | --- | --- | --- | | `maintenance-sync-standards.yml` | yes (App client ID + private key) | New `environment` input (default `standards-sync`); `attest` and `sync` jobs now run in that caller-repository environment with `deployment: false`, so an environment secret overrides a passed one. `workflow_call` secrets renamed `app-client-id`/`app-private-key` to `STANDARDS_SYNC_APP_CLIENT_ID`/`STANDARDS_SYNC_APP_PRIVATE_KEY`. | Widened: `allowedInputs` adds `environment`; `allowedSecrets` keys renamed to `STANDARDS_SYNC_APP_CLIENT_ID`/`STANDARDS_SYNC_APP_PRIVATE_KEY` (caller-side values unchanged). Consumers must rename the keys under `secrets:` when they repin. | | `intake-triage.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | `anthropics/claude-code-action` v1.0.240 to v1.0.241 (`cab360f`); `$/report-lane-outcome` tree changes only in its tests. | Verbatim copy | | `pr-review.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | Same claude-code-action bump and test-only `$/report-lane-outcome` change. | Verbatim copy | | `pr-review-security.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | Same claude-code-action bump and test-only `$/report-lane-outcome` change. | Verbatim copy | | `intake-label-needs-triage.yml` | no | None: blob byte-identical (`a0a7e39`). | Verbatim copy | | `pr-scan-dependencies.yml` | no | None: blob byte-identical (`5ced69e`). | Verbatim copy | | `pr-audit-workflows.yml` | no | None: blob byte-identical (`0a1a611`). | Verbatim copy | | `pr-automerge-dependabot.yml` | no | None: blob byte-identical (`7f65abe`). | Verbatim copy | | `pr-run-checks.yml` | no | None: blob byte-identical (`3f9622e`). | Verbatim copy | 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`, new `check-workflow-naming`) are not consumed by any pinned reusable. ## Verification - `git diff cf316d12..6ba73b97 -- .github/workflows` in ci-workflows matches the table: four reusables changed, five byte-identical; caller permissions and `runs-on` routing unchanged for all nine. `git diff` of `.github/actions/report-lane-outcome` shows only `classify.test.cjs` and `outcome-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 - ci-workflows v0.39.0 release (`6ba73b9`) - standards#709, #713, #716 (v0.38.x contract precedent) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: prerequisite contracts that unblock the automated claude-lanes repin in #715.
Summary
Registers the nine ci-workflows reusables at the v0.38.2 tag
cf316d12b4a14fbdb96a339b7ad00ce935a8cad4incomponents/runner-policy/policy.json. Without these entries, the automated repin#715 fails
check-policies. The sync job's routing readsneeds, andpr-review/pr-review-securitycarry reviewedallowedCallerPermissionsgrants, so their new SHA cannot be auto-approved.
Fix
policy.json: nine new keys. Each body is a verbatim copy of its2531d56(v0.38.1) entry, text-spliced (121 insertions, 0 deletions). A JSON comparison
confirms each copy equals its source.
README.md: review note for v0.38.2.v0.38.2 adds ci-workflows#696 and #697 on top of v0.38.1. Together they touch only
pr-require-checks.yml, itsaggregate-resultsaction, a test and the README.All nine registered workflow blobs are byte-identical between
2531d56andcf316d1(confirmed withgit rev-parse <sha>:<path>). No input, secret, callerpermission or
runs-onrouting moved. The2531d56entries stay until everyconsumer repins.
Verification
git diff --stat 2531d56 cf316d1in ci-workflows: only the six files above.Blob comparison of the nine reusables: all identical.
npm run test:runner-policy: 297/297 pass.npm run lint:runner-policy: pass.npm run test:runner-policypasses297/297 (previously 4 failures in CI), and
CI_REPOSITORY_VISIBILITY=public npm run lint:runner-policypasses.Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01S6P1ZfQhbydBZNKz2LUfnf
Generated by Claude Code