Skip to content

fix(ci): grant 'actions: read' to reusable-workflow callers - #14

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/reusable-caller-actions-read
Aug 26, 2026
Merged

fix(ci): grant 'actions: read' to reusable-workflow callers#14
hyperpolymath merged 1 commit into
mainfrom
fix/reusable-caller-actions-read

Conversation

@hyperpolymath

Copy link
Copy Markdown
Contributor

These workflows fail with startup_failure — rejected before any job starts, so zero jobs and no check run, which is why the API cannot report a reason.

Cause, from the web-UI banner:

Error calling workflow '.../governance-reusable.yml@...'. The workflow is
requesting 'actions: read', but is only allowed 'actions: none'.

A called reusable workflow cannot request more permission than its caller grants. The standards reusables declare actions: read (staleness check reads workflow runs); these callers granted only contents: read.

Patched: governance hypatia-scan scorecard mirror — only the callers that actually mismatch. rust-ci and secret-scanner need no more than they are given and are untouched.

Proven by paired control on rsr-template-repo: with the grant, Governance runs 11 jobs and reports failure; without it, 0 jobs and startup_failure. Fixed at source in rsr-template-repo#42.

Same class as standards#527. Repos already granting actions: read (gossamer, IDApTIK, progblocks, canonical-ums, burble, cadastra, chronicles-of-slavia, stapeln) were already executing these workflows — which is what made the difference look like a lockfile issue. It is not; that theory was tested and disproved.

These workflows fail with startup_failure - rejected before any job starts,
so zero jobs and NO check run, which is why the API cannot report a reason.

Cause, from the GitHub web-UI banner:

  Error calling workflow 'hyperpolymath/standards/.github/workflows/
  governance-reusable.yml@...'. The workflow is requesting 'actions: read',
  but is only allowed 'actions: none'.

A called reusable workflow cannot request MORE permission than its caller
grants. The standards reusables declare 'actions: read' for their staleness
check, which reads workflow runs via the Actions API; these callers granted
only 'contents: read'.

Patched: governance hypatia-scan scorecard mirror - only the callers that actually mismatch. rust-ci and
secret-scanner require no more than they are given and are left untouched.

PROVEN by paired control on hyperpolymath/rsr-template-repo: with the grant,
Governance runs 11 jobs and reports 'failure'; without it, 0 jobs and
'startup_failure'. Fixed at the template in rsr-template-repo#42 so future
mints inherit the correct callers.

Same class as standards#527 (2026-07-27). Repos that already grant
'actions: read' - gossamer, IDApTIK, progblocks, canonical-ums, burble,
cadastra, chronicles-of-slavia, stapeln - were already executing these
workflows, which is what made the difference look like a lockfile issue.
It is not; that theory was tested and disproved.
@sonarqubecloud

Copy link
Copy Markdown

@gitar-bot

gitar-bot Bot commented Aug 26, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

@hyperpolymath
hyperpolymath merged commit fa51285 into main Aug 26, 2026
39 of 47 checks passed
@hyperpolymath
hyperpolymath deleted the fix/reusable-caller-actions-read branch August 26, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant