PR Address 是一个面向 GitHub Pull Request 工作流的自动化技能,核心目标是逐条处理审查评论并持续循环,直到 CI 通过且所有评论均已解决。它会在用户提出处理评论、修复 PR 反馈或回应审查意见时触发。
用途
该技能用于自动化 PR 审查反馈的处理循环。它把“找 PR、读上下文、抓评论、修复、提交、推送、回复、解决、等 CI”整合成一套可重复执行的流程,帮助在大量审查意见和多次审查周期下不漏评论、不误报完成。
主要能力
- 查找 PR:通过 gh pr list --head $(git branch --show-current) --repo Significant-Gravitas/AutoGPT 定位,并用 gh pr view 查看。
- 阅读 PR 描述:使用 gh pr view {N} --json body --jq '.body' 获取 Why / What / How 上下文。
- 抓取多来源评论:
- 内联审查线程(GraphQL,主要可执行项来源)。
- 顶层审查(REST,需 --paginate)。
- PR 会话评论(REST,需 --paginate)。
- 分页与去重:GraphQL reviewThreads 每页最多 100 条且按最旧优先返回,必须循环到 hasNextPage == false,不能因某页未解决数为 0 就停止;收集后 reverse 使最新评论优先处理。
- 逐条处理:fix → commit → push → inline reply → resolve,禁止无真实提交就调用 resolveReviewThread。
- 覆盖率与格式化:运行后端 poetry run format、前端 pnpm format && pnpm lint && pnpm types,并在 API 路由变更时重新生成前端客户端。
- 合并冲突处理:git pull {base-remote} {base-branch} --no-rebase,检查冲突标记后提交推送。
- CI 轮询:每 30 秒检查 gh pr checks、mergeable 状态和新评论,CI 变绿后继续轮询两轮再退出。
使用方式
技能以命令和流程说明的形式给出,主要通过 gh CLI 和 Git 操作执行。典型流程为:定位 PR → 读取描述 → 分页抓取三类评论 → 逐条修复并推送 → 内联回复并解决 → 轮询 CI 与新评论 → 直至全绿且无新评论。回复评论时使用完整的 commit SHA:FULL_SHA=$(git rev-parse HEAD),再以 markdown 链接形式回复。禁止推送空提交来触发 CI。
适用场景
适用于维护活跃 GitHub PR、需要应对多轮审查意见(含机器人审查如 autogpt-reviewer、sentry[bot]、coderabbitai[bot] 及人工审查)的场景,尤其是评论数量多、跨多页、容易漏掉最新未解决线程的情况。
限制
- 所有命令均以 Significant-Gravitas/AutoGPT 仓库为例,其他仓库需自行调整 owner/name 与仓库路径。
- 存在三类不同的 GitHub 速率限制,GraphQL 被限流时需查看 REST 回退方案;文档在此处截断,具体回退细节暂未提供。
- 只有两种情况允许解决线程:真实代码修复(已提交推送并以 SHA 回复)或确证为误报并有具体技术理由。
- 覆盖率目标为变更行 80%(Codecov patch),检查为信息性而非阻塞。
- 平台支持情况、收费方式等暂未提供。