Repository navigation
fix(ci): grant contents:write on pull-request reusable call - #7
Conversation
Nested job release in build.yml declares contents:write. GitHub validates caller permissions at startup even when publish:false skips that job, which made every pull-request run fail with startup_failure and 0 jobs.
◈ PR LensNote Nothing here is code, only docs, data or images, so PR Lens left this pull request undrawn. Comment
|
nordz0r
left a comment
There was a problem hiding this comment.
wait — diff OK; CI started (startup_failure fixed)
One-file change in .github/workflows/pull-request.yml: caller contents: read → write on the reusable build.yml call. That matches GitHub’s graph-resolve rule: the caller must grant the union of nested job permissions, including release’s contents: write, even when publish: false skips that job.
Evidence on HEAD 7bc7fcab:
- pull-request run 35898119890 is in_progress with real jobs (Checkout / version check / Buildx / Build amd64) — not the previous 0-job
startup_failure. - GitGuardian: success.
- Login / push / attestation steps correctly skipped under
publish: false.
Not merging until Build & smoke finishes green. After merge: re-run checks on dependabot #6 (do not merge #6 here).
nordz0r
left a comment
There was a problem hiding this comment.
approve-ready (COMMENT; APPROVE blocked on own PR) — contents:write on caller fixes startup_failure; CI green on HEAD 7bc7fca (run 35898119890). Nested Build & smoke ran; GitHub Release correctly skipped under publish:false. Squash-merging.
nordz0r
left a comment
There was a problem hiding this comment.
approve — CI green (Build&smoke SUCCESS, release SKIPPED). Caller contents:write fixes startup_failure. Squash-merge.
Summary
pull-request.ymlonly hadcontents: read, while nested jobreleaseinbuild.ymldeclarescontents: write.publish: falseskipsrelease, so everypull-requestrun since ~2026-09-02 failed withstartup_failure/ 0 jobs.contents: writeon the reusable call (keep packages/id-token/attestations write +secrets: inherit).Test plan
pull-requestworkflow on this PR starts jobs (notstartup_failure)