Fix branch-cleanup: fall back to head.label for deleted branches (#248)
## Summary - Forgejo rewrites `head.ref` to `refs/pull/N/head` once a PR's source branch is deleted from the remote - The original branch name is preserved in `head.label` - This was causing 188 out of 246 merged PRs to go undetected by the cleanup script - Fix: fall back to `head.label` when `head.ref` starts with `refs/pull/` ## Test plan - [x] Dry run correctly identifies 18 previously-missed local branches - [x] Live run successfully deleted all 18 Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/248
This commit is contained in:
parent
abb7e6fe88
commit
198c810e86
1 changed files with 6 additions and 1 deletions
|
|
@ -188,7 +188,12 @@ def get_merged_pr_branches(client: httpx.Client, console: Console) -> set[str]:
|
|||
break
|
||||
for pr in prs:
|
||||
if pr.get("merged"):
|
||||
ref = pr.get("head", {}).get("ref", "")
|
||||
head = pr.get("head", {})
|
||||
ref = head.get("ref", "")
|
||||
# Forgejo rewrites ref to refs/pull/N/head once the
|
||||
# source branch is deleted; the original name is in label
|
||||
if ref.startswith("refs/pull/"):
|
||||
ref = head.get("label", "")
|
||||
if ref and ref not in PROTECTED_BRANCHES:
|
||||
merged_branches.add(ref)
|
||||
page += 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue