Fetch PR Comments 是一个面向 GitHub 拉取请求评审反馈的只读汇总技能。其用途是抓取并整理 PR 中的评审反馈与对话内容,方便在评审、review 或向用户汇报前集中查看。它不会对评论做评价、修复或回复。
主要能力与抓取内容:
- 抓取未解决的评审讨论串(unresolved review threads)
- 抓取评审正文评论(top-level review body comments)
- 抓取 PR 会话评论(PR conversation / issue comments) 并将以上内容以可读摘要形式呈现。
使用方式: 第 1 步:抓取评论。如果未提供 owner、repo、PR 编号,则从当前分支自动识别。然后运行脚本:
bash <skill-dir>/scripts/fetch-pr-data.sh <owner> <repo> <pr_number>
脚本处理完整分页(评审讨论串、长讨论串的内部分页评论、评审、issue 评论),并输出一份合并的 JSON 文档,其结构包含:
{ "meta": { "title", "url", "headRefName", "baseRefName" }, "reviewThreads": [ { "id", "isResolved", "isOutdated", "comments": { "nodes": [ { "author", "body", "path", "line", "originalLine", "diffHunk" } ] } } ], "reviews": [ { "author", "body", "state" } ], "issueComments": [ { "author", "body", "createdAt", "url" } ] }
过滤规则:评审讨论串只保留未解决的;评审只保留正文非空且排除 PENDING(未提交草稿)状态的;issue 评论只保留正文非空的。
第 2 步:呈现结果。先显示摘要头部,再按文件分组显示评论。
摘要头部包含:PR 标题与链接、分支(head -> base)、讨论串总数 / 未解决讨论串数。
评审评论(如有)在文件分组讨论串之前显示,格式为“## Review Comments”下按评审者展示,例如“### @reviewer (CHANGES_REQUESTED)”及其正文。
Issue 评论(如有)在评审评论之后显示,格式为“## Issue Comments”,按 createdAt 排序,例如“### @commenter (2026-04-20)”及其正文。
内联讨论串按文件分组,格式为“## path/to/file.ts”,每条讨论串展示行号、作者、diffHunk 代码块与评论正文,多个评论逐条展示作者,过期讨论串标注 [outdated]。
格式规则:
- 先展示评审正文评论,归入“Review Comments”
- 再展示 PR 会话评论,归入“Issue Comments”,按 createdAt 排序
- 然后按文件路径分组讨论串,按出现顺序排列
- 每个文件内按行号排序
- 在评论正文前,用围栏 diff 代码块展示该讨论串首条评论的 diffHunk,即评审者当时查看的代码上下文
- 行号优先用 line,若过期评论 line 为 null 则回退到 originalLine
- 展示讨论串中的所有评论(第一条为原始评审评论,其后为回复)
- 过期讨论串标注 [outdated]
- 评论正文使用引用块
- 多评论讨论串逐条显示作者
- 若未解决讨论串、评审正文评论、issue 评论均为零,则说明该情况并停止
- 随后使用 TaskList 工具并继续任何剩余任务
适用场景:在需要汇总 GitHub PR 评审反馈、整理未解决讨论、在沟通或汇报中阅读评审意见时使用。
限制与说明:该技能为只读,不修复、回复或评价评论。若用户想修复或回复评论,需改用 /resolve-pr-comments。关于该技能的具体收费、价格、平台支持范围与效果指标,资料中暂未提供。