用途
Handle PR Comments 用于交互式地逐条分类和处理 GitHub 拉取请求(PR)上的评审评论。当用户要求处理、回应或解决 PR 评审评论时使用。
主要能力
- 定位 PR:使用给定的 PR 编号或 URL,否则通过当前分支推导(gh pr view);若不存在 PR 则停止。
- 获取未解决的评审线程:通过拉取请求上的 GraphQL reviewThreads 字段获取,请求每个线程的 id、isResolved、isOutdated、path、line 和 comments,并过滤出 isResolved == false。资料特别说明应使用 GraphQL 而非 REST,因为只有 GraphQL 暴露线程 id 和解决状态。
- 逐条循环处理:每次处理一条评论,包括:
- 总结反馈内容及文件/行号,并阅读周边代码;
- 给出具体的修复建议;
- 通过 AskQuestion 提供选项让用户选择:应用建议修复 / 应用其他修复 / 仅回复 / 跳过;
- 应用用户的选择;
- 如适用,总结所做更改并询问是否提交;
- 通过 GraphQL resolveReviewThread 变更解决该线程。
- 最终报告:输出已更改、已提交、已回复、已跳过和已解决内容的概览,并包含链接。
使用方式
该技能以交互方式运行,每一步处理都需要用户确认。用户可提供 PR 编号或 URL,也可由当前分支自动推导。处理过程中,技能会针对每条评论询问处理方式,用户可选择应用建议修复、应用其他修复、仅回复或跳过。
适用场景
- 需要集中清理 PR 上未解决的评审评论。
- 希望在处理每条评论时获得人工确认,而非自动批量处理。
- 需要区分真实用户评论与 AI 代理(如 Copilot、CodeRabbit)评论的场景。
限制与注意事项
- 资料中的注意事项包括:优先处理真实用户评论,再处理 AI 代理(Copilot、CodeRabbit)的评论。
- 对重复评论进行分组;当同一或类似问题被多次提及时,一并处理。
- 每次更改应单独提交。
- 若不存在 PR,则停止处理。
- 关于收费、价格、平台支持范围等更多信息,资料中暂未提供。