mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #38] [MERGED] ci(bump-callers): generalize caller SHA-bump to the agents-md-integrity fleet #50
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#50
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/38
Author: @mattmillerai
Created: 7/19/2026
Status: ✅ Merged
Merged: 7/19/2026
Merged by: @mattmillerai
Base:
main← Head:matt/generalize-caller-bump📝 Commits (1)
3d27c92ci(bump-callers): generalize caller SHA-bump to the agents-md-integrity fleet📊 Changes
6 files changed (+548 additions, -129 deletions)
View changed files
➕
.github/bump-callers/README.md(+45 -0)➕
.github/bump-callers/bump-callers.sh(+185 -0)➕
.github/bump-callers/tests/test_bump_callers.sh(+187 -0)➕
.github/workflows/bump-agents-md-callers.yml(+72 -0)📝
.github/workflows/bump-cursor-review-callers.yml(+16 -129)➕
.github/workflows/test-bump-callers.yml(+43 -0)📄 Description
ELI-5
We have a robot that, whenever we update our shared
cursor-reviewworkflow,automatically opens a "please update your pinned version" PR in every repo that
uses it. This teaches that same robot a second trick: do the exact same thing for
the new
agents-md-integrityworkflow. Instead of copy-pasting the robot (copiesdrift apart over time), both jobs now share one script; each just hands it a
different list of repos and a couple of labels.
What & why
bump-cursor-review-callers.ymlauto-bumps SHA-pinned cursor-review callersacross repos listed in the
CURSOR_REVIEW_CALLERSrepo variable. Theagents-md-integrityreusable workflow is about to grow its own caller fleet(~15–30 repos), and SHA-pinned callers rot without an auto-bump — the
cursor-review pins alone needed two manual bump PRs in a single day.
This generalizes the bump machinery so both fleets are driven by one shared
script,
.github/bump-callers/bump-callers.sh, with two thin workflowentrypoints that supply per-fleet parameters (caller variable, human tag,
reusable-workflow filename):
bump-cursor-review-callers.ymlcursor-review.ymlCURSOR_REVIEW_CALLERSbump-agents-md-callers.yml(new)agents-md-integrity.ymlor.github/agents-md-integrity/**AGENTS_MD_CALLERSJudgment calls
parameterized implementation but explicitly allowed two thin entrypoints when
the path-filter triggers differ. They genuinely differ here, and — more
importantly — a unified trigger would spuriously cross-bump (a
cursor-review.ymlchange would open no-op PRs against agents-md callers, and vice versa). So the
shared logic lives once in
bump-callers.sh; the two entrypoints differ only intrigger + parameters. This is the anti-drift shape the ticket asked for.
CURSOR_REVIEW_CALLERSbehavior is preserved byte-for-byte — same branchname, commit message, PR title/body,
sedpin+comment rewrite,::add-mask::masking, the trailing-newline restore, and the single-line PR body. The only
mechanical change to that path is that the (previously inline) logic now lives
in the checked-out script, so the entrypoint gained an
actions/checkoutstep.AGENTS_MD_CALLERSis seeded empty ([]). I set the repo variable directly(config, not code — harmless additive
[]). An empty/absent list is a cleanno-op for this fleet (
ALLOW_EMPTY=true), so the workflow is safe to run beforeany callers exist; the rollout's per-repo caller tickets add entries as callers
land. The must-always-have-callers cursor-review fleet still hard-fails on empty
(guards against a silent no-op dispatcher).
callers pin with a
# v1comment (not the# github-workflows#NNform thecursor-review callers use), so the shared comment-normalize
sedsimply doesn'tmatch and leaves
# v1intact — verified in the tests.Tests
New
test-bump-callers.ymlruns shellcheck + abashfunctional suite that stubsgh(no network) and asserts: both caller variables parse, private repo names aremasked out of the (public) run logs, the caller's pinned SHA is rewritten (both
SHA refs for agents-md), the pin comment is normalized while
# v1is preserved,the committed file keeps exactly one trailing newline, and the empty (no-op vs
hard-fail) and malformed guards fire. All 25 assertions pass locally; shellcheck
clean.
Per this public repo's convention, no tracker references in the title/body/commits.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.