mcpField
D
ds-watch-pr

ds-watch-pr

github.com/aicodeking开发150269 次安装6 天前更新
代码仓库

关于 ds-watch-pr

ds-watch-pr 用于持续监控单个 PR,直到检查和审查条件满足。它通过可配置等待条件的 Python 监视器运行,并规定了处理失败、评论和分支更新的流程。

主要功能

  1. 01监控 PR 检查、评论和审查
  2. 02等待就绪或检查通过
  3. 03处理新失败和审查意见
  4. 04分支落后时进行变基
  5. 05使用带可配置选项的 Python 监视器

适用场景

  1. 01检查运行期间跟踪 PR
  2. 02响应新的审查评论或检查失败
  3. 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 只会等待检查通过。

步骤

  1. 先处理现有事项:失败的检查,以及上次推送之后的新评论。
  2. 启动监视器。如果运行环境提供后台运行或监控工具,请使用它,以便每行输出都能唤醒你。否则,将其作为一个长时间运行的前台命令执行。
  3. 每次收到事件,都要先阅读源代码,再修改代码。判断问题是否属实。
  4. 对于真实 Bug 或 CI 失败:进行最小幅度的修复,在本地运行失败的检查,推送,然后重启监视器。
  5. 对于误报或超出范围的请求:通过 ds-pr-comments 简短说明原因,解决相关讨论串,并将其列为后续事项。
  6. 区分真实测试失败和基础设施偶发故障。认定为偶发故障前,先重跑一次。
  7. 如果基分支有更新,或当前分支落后于基分支,请执行变基,使用 --force-with-lease 推送,然后重启监视器。
  8. 在宣布 PR 已就绪前,执行 git fetch 并重新查看 PR。其状态不能是 BEHIND 或 DIRTY。

停止条件

  • 监视器以退出码 0 结束。报告 PR 已就绪或已合并。
  • 连续 5 轮修复并推送后仍未以退出码 0 结束。报告仍未解决的问题。
  • 另一个 PR 使当前 PR 失去必要性。停止并在关闭它之前征求同意。
  • gh 报告触发了速率限制。检查 gh api rate_limit,并等待一次,直到限制重置。不要循环重试。

规则

  • 每个 PR 只运行一个监视器。绝不要自行编写休眠或轮询循环。
  • 事件无需处理时,不要发言。不要发送“仍在等待”之类的消息。
  • 只有用户明确要求时才合并。否则报告已就绪。
  • 保持 PR 精简。优先采用删除代码或缩小代码范围的修复方式。

评论

支持 Markdown