Claude Code 使用 Review PR 命令一键完成 PR 自动审查:claude-howto 仓库 pr-review 插件实战指南
【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto
导读
本文围绕 claude-howto 仓库中 pr-review 插件 的review-pr命令(日文版文档位于 ja/07-plugins/pr-review/commands/review-pr.md),系统讲解如何用 Claude Code 对拉取请求(Pull Request)执行「安全分析、测试覆盖验证、文档更新、代码质量检查、性能影响评估」五位一体的自动化审查。读者阅读本文后,将掌握该命令的触发方式、内部五步工作流、三个子代理(Subagent)的分工、前置条件配置,以及底层 pre-review 钩子(Hook)与 GitHub MCP 服务器的真实实现细节,可直接在真实仓库中落地一套可复用的 AI 代码评审流程。
命令概览:一条命令启动完整 PR 审查
在 Claude Code 插件体系中,命令(Slash Command)通过 YAML frontmatter 声明名称与用途。review-pr命令的定义位于 07-plugins/pr-review/commands/review-pr.md:
--- name: Review PR description: Start comprehensive PR review with security and testing checks ---日文版 ja/07-plugins/pr-review/commands/review-pr.md 对这条命令的定位描述得更为直接:「セキュリティチェックとテストチェックを含む包括的な PR レビューを開始する」——即启动一次包含安全检查与测试检查在内的全面 PR 审查。
命令的审查范围明确划分为五个维度:
- 安全解析(Security analysis)
- 测试覆盖率验证(Test coverage verification)
- 文档更新(Documentation updates)
- 代码质量检查(Code quality checks)
- 性能影响评估(Performance impact assessment)
这五个维度并非彼此孤立,而是由同一条命令统一编排、汇总为一份综合审查报告,这正是review-pr与插件中另外两条聚焦型命令(check-security、check-tests)的本质区别:前者是「全量审查」,后者是「定向扫描」。
安装与前置条件:让 /review-pr 可运行的最小配置
插件安装
pr-review 插件通过 Claude Code 的插件机制安装,命令如下:
/plugin install pr-review安装后即可获得三个 Slash Command、三个子代理、一个 MCP 服务器和一个钩子:
| 类别 | 名称 | 职责 |
|---|---|---|
| Slash Command | /review-pr | 综合 PR 审查(本文核心) |
| Slash Command | /check-security | 安全定向审查 |
| Slash Command | /check-tests | 测试覆盖率分析 |
| Subagent | security-reviewer | 安全漏洞检测 |
| Subagent | test-checker | 测试覆盖分析 |
| Subagent | performance-analyzer | 性能影响评估 |
| MCP Server | GitHub 集成 | 获取 PR 数据 |
| Hook | pre-review.js | 审查前的条件校验 |
环境要求
根据 07-plugins/pr-review/README.md 中的 Requirements 一节,运行该插件需要:
- Claude Code 2.1+
- GitHub 访问权限(用于拉取 PR 数据)
- Git 仓库(审查对象必须是受 Git 管理的项目)
GitHub Token 配置
GitHub MCP 服务器需要访问令牌。配置方式:
export GITHUB_TOKEN="your_github_token"该环境变量会被 github-config.json 中的 MCP 配置读取:
{ "mcpServers": { "github": { "command": "npx", "args": ["@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } } } }从配置可以看出:MCP 服务器通过npx启动官方@modelcontextprotocol/server-github,并将GITHUB_TOKEN注入其环境变量。这意味着审查所需的 PR 变更数据、提交记录、文件差异等,全部经由这一 GitHub MCP 通道获取——配置好 Token 是整条审查链路能否打通的第一步。
五维审查内容拆解:每一维度到底查什么
review-pr的五维审查并非泛泛而谈,插件为其中三个维度提供了专门的子代理与定向命令,从源码结构上可以清晰看到每一维度的检查重点。
维度一:安全解析(Security analysis)
安全维度由security-reviewer子代理负责,其定义见 07-plugins/pr-review/agents/security-reviewer.md:
--- name: security-reviewer description: Security-focused code review tools: Read, Grep, Bash ---该子代理被授予Read、Grep、Bash三个工具,用于在代码库中检索与验证安全问题,重点排查四类风险:
- 认证/授权问题(Authentication/authorization issues)
- 数据泄露(Data exposure)
- 注入攻击(Injection attacks)
- 不安全配置(Secure configuration)
如果只想针对 PR 单独跑一遍安全审查,可改用聚焦命令/check-security。其检查清单更细,见 check-security.md:
- 认证/授权检查
- 数据泄露风险
- 注入漏洞
- 加密弱点
- 日志中的敏感数据
维度二:测试覆盖率验证(Test coverage verification)
测试维度由test-checker子代理负责,见 07-plugins/pr-review/agents/test-checker.md:
--- name: test-checker description: Test coverage and quality analysis tools: Read, Bash, Grep ---与安全子代理相比,test-checker同样具备Read、Bash、Grep三个工具——其中Bash是运行覆盖率工具(如pytest --cov、nyc等)的关键能力。其分析范围包括:
- 覆盖率百分比(Coverage percentage)
- 缺失的测试用例(Missing test cases)
- 测试质量评估(Test quality assessment)
- 边界情况识别(Edge case identification)
定向命令/check-tests(见 check-tests.md)则给出五步执行序列:检查覆盖率百分比 → 定位未测试代码路径 → 审查测试质量 → 建议补充缺失用例 → 验证边界情况覆盖。实际审查中,这些步骤会与仓库中真实的测试体系衔接——例如本仓库就带有 scripts/tests 目录的 pytest 测试套件,可作为覆盖率评估的参照对象。
维度三:文档更新(Documentation updates)
审查 PR 时检查其是否同步更新了相关文档(API 说明、README、注释等),避免「代码改了、文档滞后」的典型问题。这是review-pr独有的维度,不设独立子代理,而是在综合审查阶段由主流程统一核对。
维度四:代码质量检查(Code quality checks)
评估改动代码的整洁度与可维护性,包括命名、结构、重复代码、复杂度等通用质量指标。
维度五:性能影响评估(Performance impact assessment)
性能维度由performance-analyzer子代理负责,见 07-plugins/pr-review/agents/performance-analyzer.md:
--- name: performance-analyzer description: Performance impact analysis tools: Read, Grep, Bash ---其评估重点是:
- 算法复杂度(Algorithm complexity)
- 数据库查询效率(Database query efficiency)
- 内存使用(Memory usage)
- 缓存机会(Caching opportunities)
对于涉及高频路径、数据库访问或大数据量的 PR,这一维度能提前拦截潜在的性能回退。
工作流全景:从触发到综合报告的七步执行链
根据 07-plugins/pr-review/README.md 中的 Example Workflow,/review-pr触发后的完整执行链如下:
User: /review-pr Claude: 1. Runs pre-review hook (validates git repo) 2. Fetches PR data via GitHub MCP 3. Delegates security review to security-reviewer subagent 4. Delegates testing to test-checker subagent 5. Delegates performance to performance-analyzer subagent 6. Synthesizes all findings 7. Provides comprehensive review report逐环节解读:
- 前置校验:先执行
pre-review.js钩子,确认当前目录是合法 Git 仓库且无阻塞性问题; - 数据获取:通过 GitHub MCP 拉取 PR 的变更数据;
- 并行委派:将安全、测试、性能三个维度分别委派给对应子代理,由各子代理在其工具权限内独立执行深度分析;
- 汇总综合:主流程收集三个子代理的结论,并结合文档更新、代码质量两个维度的自查结果;
- 输出报告:生成涵盖全部五个维度的综合审查报告。
深入源码:pre-review.js 钩子如何守住审查门槛
执行链第一步依赖 pre-review.js。这个约 30 行的 Node.js 脚本负责在审查开始前完成两项硬性校验,从源码可以看到其具体逻辑:
// Check if git repository try { execSync('git rev-parse --git-dir', { stdio: 'pipe' }); } catch (error) { console.error('❌ Not a git repository'); process.exit(1); } // Check for uncommitted changes try { const status = execSync('git status --porcelain', { encoding: 'utf-8' }); if (status.trim()) { console.warn('⚠️ Warning: Uncommitted changes detected'); } } catch (error) { console.error('❌ Failed to check git status'); process.exit(1); }两个关键设计值得注意:
- Git 仓库校验(硬失败):通过
git rev-parse --git-dir验证仓库存在,失败则输出❌ Not a git repository并以process.exit(1)终止——防止在非 Git 目录中启动无意义的审查; - 未提交变更检测(软警告):
git status --porcelain有输出时仅打印⚠️ Warning: Uncommitted changes detected而不中断流程,因为带未提交改动的 PR 审查仍有价值,但审查结论需考虑工作区状态这一变量。
通过后输出✅ Pre-review checks passed,审查流程才正式放行。这一「硬校验 + 软警告」的模式,是保证 AI 审查在正确环境中运行的防御性设计。
预期输出与实战要点
一次完整的/review-pr综合审查报告,README.md 给出的输出形态示例为:
Result: ✅ Security: No critical issues found ⚠️ Testing: Coverage is 65%, recommend 80%+ ✅ Performance: No significant impact 📝 Recommendations: Add tests for edge cases要点提炼:
- 结果分级:各维度用 ✅/⚠️ 标注健康度,⚠️ 意味着「不阻塞合并但建议改进」(如覆盖率 65% 低于 80% 建议线);
- 建议可执行:报告末尾的 Recommendations 给出具体改进动作(如补充边界用例),而非抽象结论;
- 定向复查:当综合报告标记某维度异常时,可继续用
/check-security或/check-tests深入复查,形成「先全面、后聚焦」的两级审查策略。
限制与适用前提
- 该插件面向Claude Code 2.1+环境,命令与子代理均依赖 Claude Code 的插件、Slash Command、Subagent 与 Hook 运行时,脱离该环境无法独立运行;
- 审查质量受 GitHub Token 权限范围影响——Token 至少应具备读取目标仓库 PR 与代码的权限;
- 本文描述的行为均以当前仓库 pr-review 插件的源码与文档为准,插件未来版本的维度或流程可能调整,使用时请以仓库最新内容为准。
延伸阅读
- pr-review 插件总览:安装、命令清单、工作流示例
- 安全定向命令 check-security
- 测试定向命令 check-tests
- pre-review 钩子实现
- GitHub MCP 配置
- 日文版 review-pr 命令文档
- 插件体系整体说明
【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考