mcpField
P
pr-review

pr-review

github.com/jellydn测试与质量12651 次安装4 天前更新
代码仓库

关于 pr-review

pr-review 是处理 GitHub 拉取请求评审意见的技能,可落实经确认的可执行修改,并通过测试验证。它接受 PR URL 或编号,也可检测当前分支关联的未关闭 PR。

主要功能

  1. 01按 URL、编号或分支识别 PR
  2. 02使用 gh 获取评审线程和评论
  3. 03分类评论并跟踪解决状态
  4. 04落实已确认的修改并运行检查
  5. 05提取评论并生成优先级报告

适用场景

  1. 01处理 GitHub PR 中可执行的反馈
  2. 02审查并验证当前分支 PR 的评论
  3. 03根据评审评论生成优先级待办清单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jellydn/my-ai-tools --skill pr-review

安装后在 Claude Code 中输入/pr-review确认已加载。

附带文件scripts/extract-pr-comments.js

详细介绍

修复 PR 审查意见

根据 PR 审查意见实现所要求的更改。

用法

/pr-review <PR_URL>      # Review PR by URL (expects full GitHub URL)
/pr-review <PR_NUMBER>   # Review PR by number (expects number, e.g., 123)
/pr-review               # Auto-detect PR from current branch
📋 参数处理

命令从 $ARGUMENTS 接受 PR 标识符:

  1. PR URL:完整的 GitHub PR URL(例如:https://github.com/owner/repo/pull/123)
  2. PR 编号:仅 PR 编号(例如:123)
  3. 无参数:自动检测与当前 Git 分支关联的 PR

如果提供了 $ARGUMENTS,则将其用作 PR 标识符。否则,使用以下命令自动检测当前分支的 PR:

gh pr view --json number,url -q '.number'

此命令会从当前分支的未关闭 PR 中提取 PR 编号,供后续命令使用。

如果当前分支没有未关闭的 PR,则显示以下错误:

Error: No open pull request found for the current branch.

To review a specific PR:
  /pr-review <PR_URL>
  /pr-review <PR_NUMBER>

Or create a PR first:
  gh pr create

流程

  1. 解析 $ARGUMENTS,确定 PR 标识符(URL、编号或自动检测)
  2. 使用 gh 获取 PR 详情、审查讨论串、Issue 评论以及权威的讨论串解决状态
  3. 将每条评论分类为可执行、仅供参考、有争议或含糊不清、已解决;更改有争议或含糊不清的请求前先询问
  4. 对于每条可执行的评论,记录评论 ID、计划的更改和验证命令
  5. 实施已批准的修复
  6. 先运行针对性测试,再运行相关的更广泛检查
  7. 重新检查评论与更改列表,确认每条可执行的讨论串均已解决或明确延期
  8. 提交更改

可用脚本

提取 PR 评论

extract-pr-comments.js 脚本会处理 GitHub PR 审查评论和 Issue 评论,并生成可执行的待办列表。

# Usage
node $SKILL_PATH/scripts/extract-pr-comments.js <review-comments-file> <issue-comments-file> <threads-file> [output-file]

# Example
gh api graphql \
  -f owner=OWNER -f name=REPO -F number=4972 \
  -f query='query($owner:String!, $name:String!, $number:Int!) { repository(owner:$owner, name:$name) { pullRequest(number:$number) { reviewThreads(first:100) { nodes { isResolved comments(first:100) { nodes { databaseId } } } } } } }' \
  > pr-4972-threads.json

node $SKILL_PATH/scripts/extract-pr-comments.js \
  pr-4972-review-comments-raw.json \
  pr-4972-issue-comments-raw.json \
  pr-4972-threads.json \
  pr-4972-comments.ndjson

功能:

  • 要求提供 GitHub 审查讨论串文件;仅当某条讨论串的 isResolved: true 时,才会跳过其中的审查评论
  • 不会将回复视为已解决;未获回复的讨论串仍视为可执行
  • 按严重程度分类评论(严重、高、中、低)
  • 按类别整理评论(安全性、性能、可维护性等)
  • 创建 3 个输出文件:
    • .ndjson - 结构化评论数据
    • -todo.md - 按优先级排列的待办列表
    • -summary.md - 带表情符号的分析摘要

严重程度分类:

  • 🔴 严重:安全性、漏洞、利用
  • 🟠 高:错误、异常、破坏性变更、崩溃、失败
  • 🟡 中:性能、改进、重构、优化
  • 🟢 低:其他所有内容

类别:

  • 🔒 安全性
  • ⚡ 性能
  • 🔧 可维护性
  • ♿ 无障碍
  • 🧪 测试
  • 📚 文档
  • 🏷️ 类型
  • 🎨 风格
  • ✨ 代码质量

示例

# Fix review comments for a PR using URL
/pr-review https://github.com/owner/repo/pull/123

# Fix review comments using PR number
/pr-review 123

# Auto-detect PR from current branch
/pr-review

# After extracting comments with the script, work through the TODO list
# The TODO list is ordered by priority: Critical → High → Medium → Low

评论

支持 Markdown