mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #119] [MERGED] ci(bump-callers): add the pr-risk caller-bump fleet (BE-6308) #130
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#130
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/119
Author: @mattmillerai
Created: 8/4/2026
Status: ✅ Merged
Merged: 8/4/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-6308-pr-risk-bump-fleet📝 Commits (4)
eb8139eci(bump-callers): add the pr-risk caller-bump fleet (BE-6308)af20bc1ci(bump-callers): address pr-risk fleet review findings (BE-6308)9707274ci(bump-callers): harden the pr-risk staleness guard (BE-6308)26126a8Merge remote-tracking branch 'origin/main' into matt/be-6308-pr-risk-bump-fleet📊 Changes
4 files changed (+284 additions, -12 deletions)
View changed files
📝
.github/bump-callers/README.md(+5 -1)➕
.github/workflows/bump-pr-risk-callers.yml(+264 -0)📝
.github/workflows/test-bump-callers.yml(+3 -1)📝
AGENTS.md(+12 -10)📄 Description
ELI-5
Every repo that uses one of our shared workflows "pins" it to an exact commit, so the shared workflow can't change under it without review. That means somebody has to move the pin forward when the shared workflow changes — and we have a little robot per workflow that opens those bump PRs automatically.
pr-riskwas the one shared workflow that had real users but no robot, so its users' pins were frozen forever. This adds the robot.What this does
Adds
bump-pr-risk-callers.yml, a thin entrypoint over the shared.github/bump-callers/bump-callers.sh, and registers the new fleet in the three places a fleet has to be registered:.github/workflows/bump-pr-risk-callers.yml— new (copied frombump-pr-size-callers.yml).github/workflows/test-bump-callers.yml— added to both thepull_request.pathsandpush.pathslists.github/bump-callers/README.md— new row in "The fleets"AGENTS.md— added to the thin-entrypoints list and the fleet-variables listbump-callers.shis unchanged. Its SHA rewrite address (/github-workflows|workflows_ref/) already moves both of apr-riskcaller's pins — theuses:line and theworkflows_ref:input the reusable checks its grader/risk-map/label-script out at. That is the same double-pin shape a groom caller has, which the script documents explicitly.Why it's urgent
Permission drift between a pinned caller and the reusable fails at caller startup. Open PR #112 widens the
gradejob's declared permissions, andpr-risk.ymlhas already moved twice since the pilot caller pinned it — so callers are drifting today with no mechanism to catch up.Verification
shellcheck -x .github/bump-callers/bump-callers.sh .github/bump-callers/tests/test_bump_callers.sh— cleanbash .github/bump-callers/tests/test_bump_callers.sh— 123 passed, 0 failedactionlinton both changed workflow files — cleanpython3 .github/agents-md-integrity/check_agents_md.py --root .— passed (144 lines; the one warning is the pre-existing missing-CODEOWNERS warning, unrelated to this change)bump-pr-size-callers.yml: the only differences are the name, the concurrency group, the path filter, the decommission-guard paths, the four env values, and one added header paragraph (below).Post-merge ops — needs repo-variable write access
1. Seed the roster. The spike's "seed it empty" step is now stale — there are TWO live callers on their default branches, not zero.
Comfy-Org/comfy-cloud-mcp-servermerged its pilot caller since the spike ran, and a second caller has landed in another registry repo. Seeding[]and then immediately adding both is pointless churn, so seed it with both entries directly. Shape matches the other fleets' variables:where each entry is
{"repo":"<owner/repo>","file":".github/workflows/ci-pr-risk.yml","label":""}. Keep the canonicalcallers.jsonin the private infra/ops repo per the README — the repo names are deliberately not written here, since this repo and its run logs are public.2.
workflow_dispatchthe new fleet ONCE frommainafter seeding. Landing the fleet touches no path it watches, so its own merge fires no run and the already-stale callers stay stale untilpr-risk.ymlnext changes. One dispatch converges them. (This ordering is the reverse of the spike's — seed first, then dispatch once, rather than dispatch-empty-then-seed-then-redispatch.)Judgment calls
ALLOW_EMPTY: "true"kept as specified, even though the roster will be seeded non-empty. It matches the pr-size model the ticket named and means a not-yet-created variable is a clean no-op rather than a red run. Worth revisiting once the roster is stable: thecursor-review/auto-labelfleets use hard-fail-if-empty precisely so an accidentally-cleared variable is loud instead of a silent fleet-wide no-op. Not changed here — that is a posture decision, not part of this ticket.empty [] allowedrather than the ticket'sempty []. With two callers already live, writing "seeded empty" into a public doc would be false within a day of merge; the phrasing preserves the real semantic (this fleet tolerates an empty roster) without asserting a state that will not hold.AGENTS.mdand thebump-callersREADME now say "groom or pr-risk" rather than groom alone, andtest-bump-callers.yml's header comment listspr-riskamong the fleets its suite guards. Leaving these would have made three existing statements newly wrong.scripts/pr-risk/**includesscripts/pr-risk/tests/, so a test-only change there fires a fan-out bump. That is exactly thepr-sizeprecedent (scripts/check-pr-size/**containsmain_test.go/size_test.go), and narrowing it risks missing a real behavior change — kept consistent with the model rather than special-cased.Out of scope (unchanged, per the ticket)
pr-risk.ymlauto-fires the fan-out — that is the intended behavior.detect-unreviewed-merge.yml's missing fleet. Noted while auditing: aDETECT_UNREVIEWED_MERGE_CALLERSvariable now exists even though nobump-detect-unreviewed-merge-callers.ymlentrypoint does, so the README's "no fleet — pins bumped by hand" row is still accurate but the half-built state is worth a follow-up ticket.bump-callers.sh.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.