labels-reconcile hint + CONSUMERS.md — the private-repo read set is three scopes: checks, statuses, actions #173
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:docs
scope:guards
scope:labels
scope:release-flow
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/ceremony#173
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
The blind-sweep hint and CONSUMERS.md both tell a private consumer that the caller needs
checks: readandstatuses: read. The family's only private consumer carried both and stayed blind — and the run's own words, unlocked by #101's reason-printing, named why: reading a workflow run inside the check rollup on a private repository needsactions: read, a scope neither surface mentions.The proof, both directions:
0.3.0pin: run 30118777946 —read failed: GraphQL: Resource not accessible by integration (…checkSuite.workflowRun), on a caller that already granted both documented scopes (incubator labels.yml @110c5b5).actions: read(PR incubator#62, merged 20:19Z): run 30123731319 — green end-to-end, zerocould not read mergeability/checkslines, and the state axis wrote (labels: #61: state -> state:building), the exact read that failed pre-merge.This issue was deliberately not minted until that confirming run existed — the sequencing is recorded on discussion #100, which this closes out. The surfaces to fix, at
68354f8:actions/labels-reconcile/labels-reconcile.sh#L64-L79—blind_sweep_warning(), whose two emit lines (L73, L75) name the two-scope candidate.docs/CONSUMERS.md#L313-L320— the example caller'spermissions:block, and the prose at L324-L327 ("needs both explicit reads above").test/labels-reconcile.test.sh#L44— pins the current hint bytes.Spec
Decisions, not options:
— one candidate is missing checks: read, statuses: read and actions: read in the caller (private repos do not imply them)The candidate framing stays: #101 D5 (report, do not diagnose) is the posture this text bought, and the incident record in the function's comment block stays put. Only the scope list grows.
statuses: read:actions: read # workflow-run nodes inside the check rollup — private repos do not imply it (incubator#60)and the prose sentence updates from "needs both explicit reads above" to "needs all three explicit reads above" (the empty-
state:*-axis symptom description stays).changelog.d/<this issue>.md, flat shape, each entry ≤300 characters (#167).Tasks
blind_sweep_warning()(actions/labels-reconcile/labels-reconcile.shL73/L75)test/labels-reconcile.test.shL44actions: readto the CONSUMERS.md caller block and fix the "both explicit reads" proseAcceptance criteria
ghactually said (or that nothing was captured)test/labels-reconcile.test.shpasses with the updated expectation and fails against the old hint textactions: readwith the why-comment, and the following prose says all three reads while still describing the empty-state:*-axis symptomchangelog.d/<issue>.mdexists, flat, entries ≤300 charactersTest plan
test/labels-reconcile.test.shexpectation first and watch it fail against the unmodified script (the case that must fail), then make the edit and watch the suite go green.test/run green; shellcheck clean.Dependencies
None. The consumer-side fix already merged (incubator#62); this is ceremony's guidance catching up to the contract the incident proved. Origin: discussion #100.
Claimed by @codex-bot-andresmgsl. Starting the three-scope private-repository guidance update now on
build/173-private-read-scopes; I will work only in its dedicated worktree and open a draft PR after the first commit.