Commit edfb39c
matthew
fix(docs): the numeric-id role narrows grants, it does not split buckets
An audit of the previous commit cleared it — role matching in core is exact
map lookup with no wildcard, no consumer parses roles expecting a
`github:org/` shape, the numeric id arrives on the same authenticated
`/user` body as the login so it is no more forgeable, and a hostile org
literally named `id/5` yields `github:org/id/5`, not `github:id/5`.
But it caught my doc comment overclaiming. Binding to `github:id/<id>`
protects the GRANT side: an impostor who re-registers a released handle
carries a different numeric role, so an exact-match binding does not follow
them. It does NOT separate the BUCKETS. The enforcement subject is still
`principal.id`, so the re-registered handle keeps landing on the same
`user:github:<login>` group, usage ledger and budget as the previous owner.
Splitting those means changing the principal id, which is the breaking
change this deliberately avoids — so the limit is now stated where an
operator reading the comment will see it, rather than implied fixed.
Also drops a test I added that was a strict subset of an existing one
covering the same two cases plus a positive control.
And gates this repo's release workflow on its test suite: `ci.yml` is armed
on branch pushes and PRs only, so a `v*` tag ran release.yml with no test
job in the graph at all, and the build-provenance attestation would have
certified the provenance of an untested artifact. The gate runs the repo's
own suite against the core SHA pinned in `.busbar-ref` — the commit the
release actually builds against, not a moving branch.1 parent bf11020 commit edfb39c
3 files changed
Lines changed: 49 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
31 | 65 | | |
32 | 66 | | |
33 | 67 | | |
| 68 | + | |
34 | 69 | | |
35 | 70 | | |
36 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
405 | 405 | | |
406 | 406 | | |
407 | 407 | | |
408 | | - | |
409 | | - | |
410 | | - | |
411 | | - | |
412 | | - | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
413 | 422 | | |
414 | 423 | | |
415 | 424 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
749 | 749 | | |
750 | 750 | | |
751 | 751 | | |
752 | | - | |
753 | | - | |
754 | | - | |
755 | | - | |
756 | | - | |
757 | | - | |
758 | | - | |
0 commit comments