关于 pr-review-comments
pr-review-comments 用于将 JSON 格式的审查发现发布为 GitHub Pull Request 行内评论。它会先对照差异验证文件和行号,并通过已认证的 gh CLI 支持合并审查或逐条评论。
主要功能
- 01对照 PR 差异验证评论行
- 02发布合并审查或单条评论
- 03根据 JSON 字段组装评论内容
- 04通过 dry-run 预览请求
- 05使用 gh 认证并检测仓库
适用场景
- 01在 Pull Request 上发布代码审查发现
- 02发布前检查过期的行号
- 03将发现合并为审查或独立讨论
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ giuseppe-trisciuoglio/ developer-kit --skill pr-review-comments安装后在 Claude Code 中输入/pr-review-comments确认已加载。
附带文件references/json-schema.mdscripts/post_pr_comments.py
详细介绍
PR 审查评论
将 JSON 格式的审查发现数组作为内联评论发布到 GitHub Pull Request 上,
每条评论都锚定到对应的文件和行。通过经过身份验证的
gh CLI 使用 GitHub API,无需处理令牌。
前提条件
- 已安装并完成身份验证的
ghCLI(gh auth status)。脚本会通过gh repo view自动检测 仓库;传入--repo OWNER/REPO可覆盖。 - 要评论的 PR 编号。
- 一个 JSON 文件:包含对象的数组。每个对象必须包含以下键:
file、line。 评论内容来自summary和/或failure_scenario(会合并到评论正文中),也可以通过body明确指定。 完整的架构和示例请参见 references/json-schema.md。
关键限制:只有差异行才能添加评论
GitHub 只接受针对 PR 差异中目标行的内联评论。
line 是新文件中的行号(对于已删除的行,使用 side: "LEFT")。
脚本会获取 PR 差异,验证每条发现是否对应实际差异块中的行,并
跳过所有不在差异中的行;最后会报告这些行,避免遗漏。无法对未变更且不在差异中的行添加行内评论。
工作流
- 确认 JSON 文件路径和 PR 编号。如果仓库不明确,请运行
gh repo view。 - 先进行试运行,查看将要发布的内容以及会被跳过的内容:
scripts/post_pr_comments.py --pr <N> --json <path> --dry-run - 与用户确认“可发布”和“已跳过”的数量。如果因差异发生变动而跳过了某些行,JSON 中的行号可能已过期——请在发布前校准。
- 正式发布,并选择模式(见下文):
# Grouped (default): one PR review bundling all comments scripts/post_pr_comments.py --pr <N> --json <path> --event COMMENT # Individual: one separate inline comment per finding scripts/post_pr_comments.py --pr <N> --json <path> --mode individual - 返回已创建的审查/评论 URL,以及所有被跳过的发现列表。
选择模式
| 模式 | 端点 | 使用场景 |
|---|---|---|
grouped(默认) | POST /pulls/{n}/reviews | 将一组发现作为一条审查发布。只发送一条通知;可设置 --event APPROVE | REQUEST_CHANGES | COMMENT。 |
individual | POST /pulls/{n}/comments | 逐条添加独立评论,或需要让每条发现都拥有单独的讨论串/通知时使用。 |
除非用户需要给出审查结论或创建独立讨论串,否则默认使用 grouped 和 --event COMMENT。
选项参考
--pr N PR number (required)
--json PATH JSON array of findings (required)
--repo OWNER/REPO Override auto-detected repo
--mode grouped|individual Default: grouped
--event COMMENT|APPROVE|REQUEST_CHANGES Grouped-mode verdict (default COMMENT)
--review-body TEXT Top-level summary body for the grouped review
--commit SHA Commit to anchor to (default: PR head SHA)
--dry-run Validate and print payloads without posting
备注
- 多行范围评论:在 JSON 对象中添加
start_line(以及可选的start_side),与line并列;脚本会将这些字段传递给 API。 - 对不熟悉的 PR 正式发布前,务必先使用
--dry-run——行号过期是最常见的问题,试运行会将其标记为“已跳过”,且不会产生副作用。 - 脚本是可靠的处理方式;不要为此手动编写
gh api调用——脚本会统一处理差异验证、仓库/提交检测和评论正文组装。
评论
支持 Markdown