显示 PR 评论
以表格形式列出 Pull Request 中所有未解决的评论。
输入
按以下顺序确定 PR 编号:
- 从当前对话上下文中推断。
- 从当前分支名称解析(例如
APIF-1234/some-feature→ 在该分支上搜索 PR)。 - 如果不明确,询问用户。
流程
# 从当前分支查找 PR 编号
gh pr list --head "$(git rev-parse --abbrev-ref HEAD)" --json number,url --jq '.[0]'
# 获取所有审查评论和 Issue 评论
gh pr view <PR> --json reviews,comments
# 或获取内联评论
gh api repos/:owner/:repo/pulls/<PR>/comments
gh api repos/:owner/:repo/issues/<PR>/comments
使用 gh api 获取:
- Pull Request 审查评论(内联,在差异上):
GET /repos/{owner}/{repo}/pulls/{pull_number}/comments- 这些包含
path(文件)和line(或original_line)字段。
- 这些包含
- Issue 级别评论(通用):
GET /repos/{owner}/{repo}/issues/{pull_number}/comments- 这些没有文件/行(属于 PR 级别);将位置留空。
- 带有解决状态的审查线程:
gh pr view <PR> --json reviewThreads
仅过滤 未解决 的线程(isResolved: false)。对于不在线程中的评论,包含所有。
输出
渲染一个 Markdown 表格:
| # | 作者 | 类别 | 消息 | 位置 |
|---|---|---|---|---|
| 1 | @alice | 问题 | "为什么这是一个 ConcurrentDictionary?" | Foo.cs:42 |
| 2 | @bob | 潜在错误 | "这会在生产环境中导致空引用..." | Bar.cs:17 |
| 3 | @carol | 建议 | "考虑将其提取到一个辅助方法中。" | (PR 级别) |
类别 — 阅读评论正文并选择 1-2 个最能概括其性质的词。没有固定列表,可自由推断。常见示例:问题、潜在错误、严重错误、必须修复、警告、建议、推荐、清理、测试问题、信息——但任何能准确反映评论内容的简洁标签都有效。
位置 — 对于内联差异评论,使用 `文件名:行号`(使用 line 字段,若有则回退到 original_line)。对于 PR 级别的 Issue 评论,写为 _(PR 级别)_。
在表格下方包含一行摘要:
N 个未解决的评论 在 PR #NNN 上 —
<PR 标题>