mcpField
P
pr-review-comments

pr-review-comments

github.com/giuseppe-trisciuoglio测试与质量3652.4k 次安装7 周前更新
代码仓库

关于 pr-review-comments

pr-review-comments 用于将 JSON 格式的审查发现发布为 GitHub Pull Request 行内评论。它会先对照差异验证文件和行号,并通过已认证的 gh CLI 支持合并审查或逐条评论。

主要功能

  1. 01对照 PR 差异验证评论行
  2. 02发布合并审查或单条评论
  3. 03根据 JSON 字段组装评论内容
  4. 04通过 dry-run 预览请求
  5. 05使用 gh 认证并检测仓库

适用场景

  1. 01在 Pull Request 上发布代码审查发现
  2. 02发布前检查过期的行号
  3. 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,无需处理令牌。

前提条件

  • 已安装并完成身份验证的 gh CLI(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 差异,验证每条发现是否对应实际差异块中的行,并 跳过所有不在差异中的行;最后会报告这些行,避免遗漏。无法对未变更且不在差异中的行添加行内评论。

工作流

  1. 确认 JSON 文件路径和 PR 编号。如果仓库不明确,请运行 gh repo view。
  2. 先进行试运行,查看将要发布的内容以及会被跳过的内容:
    scripts/post_pr_comments.py --pr <N> --json <path> --dry-run
    
  3. 与用户确认“可发布”和“已跳过”的数量。如果因差异发生变动而跳过了某些行,JSON 中的行号可能已过期——请在发布前校准。
  4. 正式发布,并选择模式(见下文):
    # 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
    
  5. 返回已创建的审查/评论 URL,以及所有被跳过的发现列表。

选择模式

模式端点使用场景
grouped(默认)POST /pulls/{n}/reviews将一组发现作为一条审查发布。只发送一条通知;可设置 --event APPROVE | REQUEST_CHANGES | COMMENT。
individualPOST /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