@@ -22,22 +22,21 @@ concurrency:
2222 group : quality-${{ github.head_ref || github.ref_name }}
2323 cancel-in-progress : true
2424
25- # Union of two intents, both of which are load-bearing:
25+ # Permission CEILING for the called quality pipeline. GitHub statically
26+ # validates the called workflow's declared job permissions against this
27+ # grant — even for jobs that are disabled — so it must cover the maximum any
28+ # nested job declares: journeydoc-capture (contents+actions write),
29+ # update-baseline / features-extract (contents write), SBOM (packages read),
30+ # and the Quality Report PR comment (issues / pull-requests write).
2631#
27- # * `issues: write` + `pull-requests: write` come from development's
28- # least-privilege pass (#257) — the Quality Report job posts a sticky PR
29- # comment and cannot without them.
30- # * `contents: write` + `actions: write` + `packages: read` are required by
31- # jobs the called workflow declares (coverage-baseline update, journeydoc
32- # capture, SBOM). A caller cannot grant a reusable workflow more than it
33- # holds itself, so capping those at `read` makes the whole call fail to
34- # START: zero jobs, no annotations — indistinguishable from "nothing to
35- # run". `development` at cb101f1 shows exactly that, two `startup_failure`
36- # runs in a row.
32+ # A caller cannot grant a reusable workflow more than it holds itself, so
33+ # capping any of these at `read` makes the whole call fail to START: zero jobs,
34+ # no annotations — indistinguishable from "nothing to run". `development` at
35+ # cb101f1 shows exactly that, two `startup_failure` runs in a row.
3736#
38- # Keeping only development's block would therefore trade a posted comment for a
39- # pipeline that never starts. Keeping only this branch 's would silently drop
40- # the comment. Both are kept .
37+ # This block is the UNION of both branches' grants, which agreed on every entry
38+ # except `packages: read`. Dropping development 's half would silently lose the
39+ # PR comment; dropping this branch's half would stop the pipeline starting .
4140permissions :
4241 contents : write
4342 actions : write
0 commit comments