mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #137] [MERGED] ci(bump-callers): seed the pr-risk roster and hard-fail on an empty one (BE-6480) #146
Labels
No labels
cursor-review-catalog-drift
groom
groom
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/github-workflows#146
Loading…
Add table
Add a link
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?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/github-workflows/pull/137
Author: @mattmillerai
Created: 8/5/2026
Status: ✅ Merged
Merged: 8/12/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-6480-pr-risk-fleet-roster📝 Commits (3)
0b99789ci(bump-callers): seed the pr-risk roster and hard-fail on an empty one (BE-6480)306c6d5ci(bump-callers): make pr-risk's hard-fail explicit and close the roster doc gaps (BE-6480)29aaf90Merge origin/main into matt/be-6480-pr-risk-fleet-roster📊 Changes
5 files changed (+63 additions, -25 deletions)
View changed files
📝
.github/bump-callers/README.md(+1 -1)📝
.github/workflows/bump-pr-risk-callers.yml(+31 -14)📝
README.md(+7 -4)📝
docs/callers/README.md(+1 -1)📝
docs/callers/pr-risk.md(+23 -5)📄 Description
ELI-5
pr-riskis a workflow other repos borrow. When it changes, a "bumper" is supposed to open a PR in each borrowing repo moving its pin forward. That bumper was built last week but its address book was left empty, and it was configured to shrug and exit successfully when the address book is empty. So it did nothing, quietly, and one borrower has been running a two-revisions-old grader. This fills in the address book with the two real borrowers and removes the shrug, so an empty address book is now a loud failure instead of a silent one.Scope note — most of this ticket already shipped
BE-6480 was written against a spike (BE-6474) that predates #119 (BE-6308), which already landed the entrypoint and the docs registration. Rather than re-do that, I verified each of the ticket's criteria against
mainand implemented only the genuine remainder. Criterion-by-criterion:bump-pr-risk-callers.ymlexists, correctname/concurrency/paths/workflow_dispatch/env/decommission guard/stale guard/noWIRE_BOT_SCRIPTmainvia #119 — verified line by line, all match (#119's decommission guard and stale-run guard are strictly stronger than the groom model the ticket specified)ALLOW_EMPTYALLOW_EMPTY: "true". Fixed herePR_RISK_CALLERStest-bump-callers.ymlboth path listsmainvia #119. The README row's Seeded column saidempty [] allowed, now correctedworkflow_dispatchRoster seeding (step 2) — done, not in this diff
Seeded as repo config, deliberately not as a commit: this repo is public, so caller names must never appear in a file, a commit message, or PR text. Two entries,
{"repo","file","label":""}, matching theGROOM_CALLERSconvention.Verified in both directions, as AGENTS.md requires:
uses:SHA and a bareworkflows_ref:).Comfy-Orgrepos'.github/workflows/via the contents API for anypr-riskcaller. Exactly two exist, both enrolled. No third caller is missing from the roster, and no roster entry is dead.I seeded both a variable and a same-named secret. #135 (BE-6472, open) flips every entrypoint from
vars.Xtosecrets.X; its judgment call 1 assumes this roster is unseeded and therefore inert under the flip. WithALLOW_EMPTYgone that assumption would turn a merge-order accident into a red fleet, so the roster now resolves under either binding. Operational consequence worth knowing: there are now two copies, and a future edit to one silently staleness the other. Once #135 merges and the variables are deleted per its runbook, deletePR_RISK_CALLERSthe variable too and keep only the secret.Riskiest line
Removing
ALLOW_EMPTY: "true". Safe because of ordering: the roster was seeded and read back before this change, and checked againstbump-callers.sh's ownjqvalidator, so there is no window where the fleet hard-fails against a roster that does not exist. If the roster ever does vanish, the new outcome is a loud red run — which is the point.Verified empirically rather than by reading the script:
Negative-claim falsification
This diff adds a deny path (exit 0 → exit 1), so the falsification rule applies. The premise being asserted is "an empty pr-risk roster is never legitimate." That is falsifiable by finding zero callers — so I went and looked rather than assuming: the 200-repo org-wide sweep above returned exactly two live callers, both with pins the bumper can rewrite. Had it returned zero, the hard-fail would be wrong and
ALLOW_EMPTYshould stay. It returned two. The denial is also loud and one-line reversible, not a silent dead-end.Verification
bash .github/bump-callers/tests/test_bump_callers.sh— 175 passed, 0 failedshellcheck -x .github/bump-callers/bump-callers.sh .github/bump-callers/tests/test_bump_callers.sh— cleanpython3 .github/agents-md-integrity/check_agents_md.py --root .— passed (2 pre-existing warnings: AGENTS.md 186 lines, no CODEOWNERS — unchanged, AGENTS.md is not touched here).github/workflows/*.ymlparsetest-bump-callers.ymlalready listsbump-pr-risk-callers.ymlin both path filters, so CI exercises this change on the PRJudgment calls
docs/callers/pr-risk.mdtold enrollers "This workflow has no roster yet … so there is novars.*_CALLERSentry to add" — actively wrong now, and it is precisely the "enrolling is two steps" half AGENTS.md calls the most repeated mistake here. Both enrollment roster tables (rootREADME.md,docs/callers/README.md) also omittedPR_RISK_CALLERS. Fixed all three; they are the same registration the ticket's step 3 is about.detect-unreviewed-merge. That fleet's roster is deliberately unseeded and its story is different, so adding it is someone else's call, not a drive-by here.vars.binding — that is #135's job.Merge-time runbook (ticket step 4 — cannot be done pre-merge)
gh workflow run bump-pr-risk-callers.yml -R Comfy-Org/github-workflows. Landing this touches no watched path, so nothing fires on its own and the stale caller stays stale until this one dispatch.ci/bump-pr-risk. The other caller is already atmain's tip (7f7c9bf) and should no-op.env:dump before the script's::add-mask::can run.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.