mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #76] [MERGED] feat(stale): name the repo on every PR line in the Slack digest (BE-4574) #87
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#87
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/76
Author: @mattmillerai
Created: 7/26/2026
Status: ✅ Merged
Merged: 7/27/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-4574-stale-per-line-repo📝 Commits (2)
81d2894feat(stale): name the repo on every PR line in the Slack digest (BE-4574)632d2f8Merge remote-tracking branch 'origin/main' into matt/be-4574-stale-per-line-repo📊 Changes
2 files changed (+21 additions, -15 deletions)
View changed files
📝
.github/workflows/stale.yml(+20 -14)📝
README.md(+1 -1)📄 Description
ELI-5
The Stale PR bot posts a Slack digest listing the PRs it just marked stale or closed. Each line only said
#3523— no repo. That reads fine when one repo is posting, but the same bot runs (and will increasingly run) in several repos into the same channel, so#3523is ambiguous the moment a line is quoted, forwarded, or read on its own. This makes every line sayComfy-Org/cloud#3523instead.What changed
fmt()— the one line-builder used for BOTH the "Marked stale" and "Closed as stale" lists — now interpolates$REPO(github.repository, already in the step'senv:) into the Slack link label:The header (
*Stale PR bot — ${REPO}*) is unchanged and still names the repo — the per-line name is additive, not a replacement. Comments + the README catalog entry are updated to match.BE-2776 built this reusable and deliberately scoped out per-line naming ("keep the per-PR link lines as-is — they already resolve correctly"). This is the follow-up that adds it.
Why it's safe
actions/staleinputs, to theif:gating, or to the Slack POST/error handling.slack_escapeon the title is untouched, and$REPOitself needs no escaping — GitHub constrainsgithub.repositoryto[A-Za-z0-9._-]+/[A-Za-z0-9._-]+, which contains none of& < >.$REPO, so the label now simply matches the URL it points at.Testing
jqexpression against a fixture matchingactions/stale's output shape (a normal PR, a PR with a hostile title containing<!channel>/&/ a masked<url|label>link, and a PR with notitlekey) plus the empty-string and[]inputs. Output: Escaping still holds; missing title still degrades to empty; empty/[]inputs still produce no lines.actionlint .github/workflows/stale.yml— clean.zizmor v1.22.0 --no-online-audits— no findings.cloudandcomfy-infrastill run their own standalone copies), so no scheduled run exercises it yet. The companion PR below makescloudthe first caller.Companion / merge order
Comfy-Org/cloud#5588 migrates
cloud's standalonestale.ymlto a thin caller of this reusable. Merge this PR first, then bump the SHA pin in that PR to the resultingmaincommit before merging it — otherwisecloudcalls the pre-change reusable and the digest gets the repo name in the header only.Follow-ups (not in this PR)
comfy-infra/.github/workflows/stale.ymlis also still a standalone copy — same migration applies there; the ticket calls it out as a follow-up.bump-stale-callers.ymlalongside the existingbump-*-callers.ymlworkflows, so caller SHA pins for this reusable have to be bumped by hand. Worth adding once it has real callers.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.