SuperAPI AI 工具集

cleanup-merged-branches

部署与运维

查看项目

更新于 10-15 20:05

技能介绍

用途:删除属于已合并 PR 的远程分支。因属破坏性操作,流程强制先试运行、再确认、最后删除。

删除规则(唯一依据 scripts/plan.sh):分支同时满足仍存在于远程、有已合并 PR、无开启中的 PR、未被保护时才可删。受保护分支为默认分支加 staging,即使有已合并 PR 也绝不删除。无 PR 或仅有已关闭未合并 PR 的分支不可删。扩展保护集合只能改 scripts/plan.sh 中的 is_protected()。

步骤:1) 试运行 bash scripts/plan.sh(非 origin 时以 $1 传远程名),输出 <branch> #<pr> <title>,不删任何东西;输出为空则报告“nothing to clean up”并停止。2) 展示完整列表并请求明确同意,模糊回复不得删除,此确认关卡每次必过。3) 对确认分支执行 git push origin --delete <branch>,不得删除列表外内容。4) 报告已删项及失败的 push。

过期认领回收:释放被放弃的进行中认领(代理崩溃、会话中断、从未开 PR),避免死认领永久占用 issue。规则见 scripts/stale-claims.sh:issue 处于开启且带 in-progress 标签、无开启的关联 PR、标签时间超过阈值(默认 24 小时,可用 $1 或 $STALE_CLAIM_HOURS 覆盖)。试运行 bash scripts/stale-claims.sh [hours] 输出 #<n> <title>,逻辑证明见 scripts/stale-claims.test.sh。确认后执行 gh issue edit N --remove-label in-progress --add-label ready-for-agent。

遗留开启 issue:Closes #N 仅在合并进默认分支时自动关闭;若 PR 合入集成分支(如 rebuild/v1),issue 会一直开启。清理每个已合并 PR 时检查其关联 issue,若工作已在默认分支而 issue 仍开启,可手动关闭:gh issue close #N --reason completed --comment "merged via #<pr>"。

限制:所有删除与标签变更均需明确确认;仅处理脚本列出的对象;受保护分支不可删;阈值与保护集合的修改位置固定。