Repository navigation
chore(ci): re-pin the review callers to ci-workflows v0.65.8 - #9848
Conversation
v0.65.8 adds the reusable's check-key-credit job, which reads this workflow's own runs and skips the key job while the reviews key's last credit stop is inside six hours. Each caller job grants actions: read for it; without the grant the run fails at startup. The lane test pins v0.65.8 and fails when a caller stops granting actions: read. 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-review reviewed No findings. I read the full diff (3 files) and the PR context.
|
|
claude-security-review reviewed No security findings. critical-findings: 0 Changes reviewed (3 files, none under a trusted path):
Not verified: I have no network access here, so I could not confirm that SHA
Spend: the added gate makes about 2 to 4 |
No related issue: owner decision Q57 (2026-10-24)
Summary
Re-pins both review callers to ci-workflows v0.65.8 (
4f79cc9244498ae856504cf74aeeb05dcc9c6b43). That release adds thecheck-key-creditjob (ci-workflows#882). While the reviews key's last credit stop is less than 6 hours old, the job skips the key job, and the subscription job reviews.Fix
pr-review-hosted.ymlandpr-review-security-hosted.yml: the pin moves from v0.65.7 to v0.65.8. Eachpr-review*job also grantsactions: read. The reusable'scheck-key-creditjob requests that permission to read this workflow's own runs. A called workflow can only lower the caller's grant, so a caller that does not grant it fails at startup.scripts/ci-review-lanes.test.sh: the pin check now expects v0.65.8. A new check fails when a caller job stops grantingactions: read.API budget (GITHUB_TOKEN)
The gate reads with the job token. That token's
corebudget ran out at 16:51-16:55Z today (api-budgetremaining=0 used=5000).GET .../actions/workflows/<file>/runs?status=completed&created=>=<now-6h>&per_page=100).GET .../runs/<id>/jobs?filter=latest). The newest run usually settles the question, so a run usually spends 2 calls.cost=5, about 6 core requests. Today a burned key spends those reads and the subscription job repeats them. With the gate, only the subscription job reads, so a burned-key run spends about 4 fewer calls net.decidecatches it and returns "run the key" (.github/actions/check-key-credit/gate.cjs).check-key-credit: ... runs the keyline, not::error.continue-on-error, and the action wrapsnode ... || true, so the job stays green.per_page=1read first, to skip the list when the previous run used the key successfully. It saves nothing. The common case already costs one list call plus one jobs call. A one-run list still needs the jobs call to see what the key did. It also cannot tell whether a carried credit stop is still in the window, which the 6-hour list provides.Verification
bash scripts/ci-review-lanes.test.sh: PASS=83 FAIL=0 on current main. With theactions: readgrant removed from one caller, it reportsFAIL: pr-review-hosted.yml does not grant actions: read to job pr-review.actionlintandzizmor --offlinepass on both callers.shellcheckpasses on the test script.node .github/standards/runner-policy/runner-policy.mjs --root .: Runner policy passed, with the v0.65.8 contract from standards #877 synced in chore: sync standards components #9837.Related
steps.<id>.outputsvalue. The first credit stop on main after this merges is the probe. If the name does not render, the gate still fails open.🤖 Generated with Claude Code