关于 ds-watch-pr
ds-watch-pr 用于持续监控单个 PR,直到检查和审查条件满足。它通过可配置等待条件的 Python 监视器运行,并规定了处理失败、评论和分支更新的流程。
主要功能
- 01监控 PR 检查、评论和审查
- 02等待就绪或检查通过
- 03处理新失败和审查意见
- 04分支落后时进行变基
- 05使用带可配置选项的 Python 监视器
适用场景
- 01检查运行期间跟踪 PR
- 02响应新的审查评论或检查失败
- 03报告就绪前确认分支处于最新状态
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aicodeking/ deepseek-stack --skill ds-watch-pr安装后在 Claude Code 中输入/ds-watch-pr确认已加载。
附带文件scripts/watch_pr.py
详细介绍
让一个 PR 持续推进,直到检查全部通过并完成审查,同时尽量减少干扰。
监视器位于此技能文件夹中的 scripts/watch_pr.py。请使用绝对路径调用。它需要 python3 和已登录的 gh。
python3 <skill>/scripts/watch_pr.py <pr> [--repo owner/name] [--until ready|green|any] [--interval 30] [--max-minutes 60]
每遇到新的检查失败、已完成的检查运行、评论或审查,它都会打印一行,最后打印一行 stop:。退出码为 0 表示条件已满足或 PR 已合并。退出码为 1 表示你必须采取行动。退出码为 2 表示输入有误。ready 会等待检查全部通过、分支可合并且没有变更请求。green 只会等待检查通过。
步骤
- 先处理现有事项:失败的检查,以及上次推送之后的新评论。
- 启动监视器。如果运行环境提供后台运行或监控工具,请使用它,以便每行输出都能唤醒你。否则,将其作为一个长时间运行的前台命令执行。
- 每次收到事件,都要先阅读源代码,再修改代码。判断问题是否属实。
- 对于真实 Bug 或 CI 失败:进行最小幅度的修复,在本地运行失败的检查,推送,然后重启监视器。
- 对于误报或超出范围的请求:通过
ds-pr-comments简短说明原因,解决相关讨论串,并将其列为后续事项。 - 区分真实测试失败和基础设施偶发故障。认定为偶发故障前,先重跑一次。
- 如果基分支有更新,或当前分支落后于基分支,请执行变基,使用
--force-with-lease推送,然后重启监视器。 - 在宣布 PR 已就绪前,执行
git fetch并重新查看 PR。其状态不能是 BEHIND 或 DIRTY。
停止条件
- 监视器以退出码 0 结束。报告 PR 已就绪或已合并。
- 连续 5 轮修复并推送后仍未以退出码 0 结束。报告仍未解决的问题。
- 另一个 PR 使当前 PR 失去必要性。停止并在关闭它之前征求同意。
gh报告触发了速率限制。检查gh api rate_limit,并等待一次,直到限制重置。不要循环重试。
规则
- 每个 PR 只运行一个监视器。绝不要自行编写休眠或轮询循环。
- 事件无需处理时,不要发言。不要发送“仍在等待”之类的消息。
- 只有用户明确要求时才合并。否则报告已就绪。
- 保持 PR 精简。优先采用删除代码或缩小代码范围的修复方式。
评论
支持 Markdown