mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #177] [MERGED] ci(bump-callers): share one roster across the pr-risk and pr-derisk fleets (BE-7756) #185
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#185
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/177
Author: @mattmillerai
Created: 8/17/2026
Status: ✅ Merged
Merged: 8/17/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-7756-share-one-roster-pr-risk-derisk📝 Commits (1)
e60695aci(bump-callers): share one roster across the pr-risk and pr-derisk fleets (BE-7756)📊 Changes
8 files changed (+300 additions, -20 deletions)
View changed files
📝
.github/bump-callers/README.md(+42 -1)📝
.github/bump-callers/bump-callers.sh(+91 -6)📝
.github/bump-callers/tests/test_bump_callers.sh(+119 -0)📝
.github/workflows/bump-pr-derisk-callers.yml(+32 -9)📝
.github/workflows/bump-pr-risk-callers.yml(+9 -0)📝
AGENTS.md(+1 -1)📝
docs/callers/README.md(+1 -1)📝
docs/callers/pr-derisk.md(+5 -2)📄 Description
ELI-5
The roster is a delivery list telling the bumper: go to this repo, open this file, update the pin inside.
Right now
pr-riskandpr-deriskeach want their own list. Two lists means two places to remember a repo — and forgetting the second one is completely silent. The caller merges, the pin never moves, every run stays green, and you find out weeks later.That already happened.
ComfyUI_frontendenrolled in pr-risk on 08-07, never made it into the roster, and sat 10 commits behind for ten days.Every roster line already says which file it's about — nobody was using that. So: keep one list, and let each fleet pick its own lines out of it.
The risk fleet takes the first line. The derisk fleet takes the second. One address book, two mail carriers, each reading only their own routes. Enrolling a repo is one edit in one place.
What changed
bump-callers.sh— new optionalFILE_FILTER. When set, only roster entries whosefilematches are bumped. Unset is byte-identical to today, which is every other fleet.bump-pr-risk-callers.yml— filters toci-pr-risk.yml.bump-pr-derisk-callers.yml— filters toci-pr-derisk.ymland readsPR_RISK_CALLERS.PR_DERISK_CALLERSis retired before it was ever seeded, so there is no migration.Why not just merge the two fleets into one
Recorded so it isn't re-proposed:
WORKFLOW_FILEnames the reusable whose@shagets rewritten and is fleet-level. The two fleets pin different reusables, so a merged fleet needs it moved into the roster entry — a data-model change to the one script this repo is emphatic about not reshaping casually.scripts/pr-derisk/-only change would open a no-op pin bump against every pr-risk caller — including repos running no derisk caller at all, every time the beta churns.Failure modes, deliberately loud
FILE_FILTER→ hard error. A typo would otherwise select zero entries, which onALLOW_EMPTY=trueis a green no-op indistinguishable from "not enrolled yet" — frozen callers, forever, with nothing red.ALLOW_EMPTY, exactly as an empty roster does: derisk (growing) no-ops green, pr-risk (must always have callers) hard-fails naming the filter and the entry count.Residual, stated rather than implied
FILE_FILTERmatches by string equality, so every repo in a filtered fleet must spell its caller the same way. Fleets don't have that property in general —CURSOR_REVIEW_CALLERScarries three spellings today — so a repo naming its caller differently is skipped silently. That's by design: skipping entries is the filter's entire job, and a warning on every run is noise nobody reads. The audit line'sN caller(s), M after FILE_FILTER=…is the signal; glance atMafter any enrolment.Only put a fleet on
FILE_FILTERwhere the caller filename convention is controlled — which pr-risk/pr-derisk are (their caller guides specify the names literally) and cursor-review is not. Documented in the script header and the bump-callers README.Testing
New coverage: each fleet takes only its half of a shared roster; the sibling takes the other half and logs an identical digest; filtered-to-zero both ways; four malformed-filter shapes rejected; validation reaching filtered-out entries; and unset
FILE_FILTERbumping the whole roster with no filter wording in the audit line.Noted, not fixed here
AGENTS.mdis 245 lines — 45 over the 200-line hard ceiling this repo enforces on every other repo, and there's noci-agents-md-integrity.ymlcaller running the checker on itself. Pre-existing; this PR is net-zero on that file rather than adding to it. Filed separately.Provenance
Built from an interactive session reviewing pr-risk v1 status. The operator asked why
/deriskis a separate workflow given the bump burden; a full merge was proposed, then withdrawn after readingbump-callers.sh(see "Why not just merge" above), and this smaller variant approved in its place.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.