fix(ci): grant callers the "actions: read" their reusables request - #652
Conversation
changelog.yml and readme-derive.yml have been dead at startup_failure — zero jobs, no log, no annotation — since 2026-08-07 and 2026-08-24. The reason is invisible to the REST and GraphQL APIs; it exists only in the run page banner, which states it exactly: Error calling workflow '.../changelog-reusable.yml@a22a7ab'. The workflow is requesting 'actions: read', but is only allowed 'actions: none'. A caller that declares a "permissions:" block at all receives "none" for every key it does NOT list. changelog.yml granted contents+pull-requests, readme-derive.yml granted contents — so both silently denied the "actions: read" their reusables declare, and GitHub rejected the run before any job could start. Corroborated two ways: the banner text above, and a static sweep of all 11 caller/reusable pairs in this repo, which independently identifies these two and only these two. After the fix that sweep reports 0. NOT the cause here, and checked: all four actions.lock failure modes (clean), YAML validity (both parse), and the Actions allowlist. The allowlist IS killing three OTHER workflows (governance, casket-pages, affinescript-verify) — that is a repo-settings fix, not a code one, and is reported separately. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 43 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Up to standards ✅🟢 Issues
|
There was a problem hiding this comment.
Pull Request Overview
The PR successfully addresses the startup_failure in the Changelog and README Derive workflows by granting the necessary actions: read permissions.
However, the review identified significant undocumented changes, including multiple source_hash updates and a scorecard modification. Most critically, a logical contradiction exists in the scorecard file: a requirement is marked with status = "fail" yet assigned check = "true". This inconsistency could impact automated validation and should be corrected before merging.
About this PR
- This PR contains significant scope misalignment. In addition to the CI permission fixes, there are 16 hunks of source hash updates in the registry and a manual scorecard update that are not documented in the PR title or description.
Test suggestions
- Verify
actions: readis present in the permissions block of the Changelog workflow - Verify
actions: readis present in the permissions block of the README Derive workflow
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback



Two workflows have been dead at
startup_failure— zero jobs, no log, no annotation —readme-derive.ymlsince 2026-08-07 andchangelog.ymlsince 2026-08-24.Why this took work to find
startup_failureemits nothing a tool can read. The full run record via REST reportstotal_count=0jobs and carries no message field; GraphQL has none either. The reason exists only as rendered HTML in the run page banner. I fetched it:The mechanism
A caller that declares a
permissions:block at all receivesnonefor every key it does not list. Both callers declared one and omittedactions::changelog.ymlcontents: write,pull-requests: writeactions: readreadme-derive.ymlcontents: writeactions: readThis is why it reads as "misconfigured permissions" rather than "missing permission" — nothing was ever removed; the omission itself is the denial.
Corroboration — two independent methods agree
Besides the banner, a static sweep of all 11 caller→reusable pairs in this repo independently flags these two, and only these two. After the fix it reports 0.
What this is NOT — ruled out, so nobody repeats it
check-lockfile-drift.sh→clean — 41 workflow(s)yaml.safe_loadcleanlygovernance.ymlran healthily 3× after #622 mergedThree other workflows are dead for a completely different reason, confirmed from their banners:
governance.ymleditorconfig-checker/action-editorconfig-checkercasket-pages.ymlhaskell-actions/setupaffinescript-verify.ymlocaml/setup-ocamlThe repo has
allowed_actions: "selected"withpatterns_allowed: []. That is a repository settings change, not a code change, so it is deliberately not in this PR.governance.ymlbeing dead is whygovernance / Validate Hypatia Baselineandgovernance / Code quality + docsare 2 of the 8 required contexts on rulesetOptimus-Branchthat never report — which is why PRs here sit atBLOCKEDwith every reported check green.Related: #399.