fix(binjovi): scope the write integration to sean/outline #737
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/outline-write-integration"
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?
Outline's builds are green and not one
binjovi/cistatus has ever been written. The trunk protection requires that context, so the pull request cannot merge and every release dies. Measured 2026-09-14 on sean/outline pull request 1; the delivery answer is{:http_status, 403}:The collaborator grant is not the whole grant.
binjovi-botwrites commit statuses through a short-lived JWT whose repository scopes are rows in Forgejo's own database, seeded by this Job.outlinewas created bycreate_repositoryon 2026-09-13 and never got a row — the one repository of 33 missing. A build needs no status to succeed, so nothing went red.The roster cannot grow by itself
tests/binjovi.shheld a hand-written list of repositories to check for, introduced with the comment "the short-lived write integration must include every repository that grants binjovi-bot write access". That sentence is the invariant, and the set it names is already declared once, in the collaborator grant: every<repo>-binjovi-botname inservice-legacy-access.yamlIS a write grant.The guard now derives it instead of repeating it, and fails with the missing names. Measured red on exactly this bug before the fix:
33 collaborator writers derived, 32 already scoped,
outlinethe only gap.Job generation
A Job template is immutable, so the generation moves with it:
v31→v32in all four places (Job, ServiceAccount, RoleBinding subject, serviceAccountName), and the three pins re-pinned — count, retired rangeseq 1 31, fingerprint915627282 18830.https://claude.ai/code/session_01JGe4pyhQ36AhgDfPJry4d3
Outline's builds are green and NOT ONE `binjovi/ci` status has ever been written. The trunk protection requires that context, so the pull request cannot merge and every release dies. Measured 2026-09-14 on sean/outline pull request 1; the delivery answer is `{:http_status, 403}`. The collaborator grant is not the whole grant. binjovi-bot writes commit statuses through a short-lived JWT whose repository scopes are rows in Forgejo's own database, seeded by this Job. outline was created by create_repository on 2026-09-13 and never got a row -- the one repository of 33 missing. A build needs no status to succeed, so nothing went red. THE ROSTER CANNOT GROW BY ITSELF. tests/binjovi.sh held a hand-written list of repositories to check for, introduced with the comment "the short-lived write integration must include every repository that grants binjovi-bot write access". That sentence is the invariant, and the set it names is ALREADY declared once, in the collaborator grant: every `<repo>-binjovi-bot` name in service-legacy-access.yaml IS a write grant. The guard now derives it instead of repeating it, and fails with the missing names. Measured red on exactly this bug before the fix. A Job template is immutable, so the generation moves with it: v31 -> v32 in all four places, and the three pins re-pinned (count, retired range, fingerprint 915627282 18830). Claude-Session: https://claude.ai/code/session_01JGe4pyhQ36AhgDfPJry4d3