mcpField
R
review-pr

review-pr

github.com/oschina测试与质量5148 次安装27 周前更新
代码仓库

关于 review-pr

此技能指导如何评审 Gitee 仓库中的 Pull Request,供需要检查变更质量并提交评审意见的团队使用。它按正确性、安全性、可维护性、性能和一致性检查,并要求先让用户确认,再发布评论。

主要功能

  1. 01获取 PR 详情和变更文件
  2. 02查看已有评审评论
  3. 03检查正确性与安全风险
  4. 04按严重程度分类问题
  5. 05确认后提交评审评论

适用场景

  1. 01评审 Gitee Pull Request
  2. 02检查变更中的敏感文件
  3. 03避免重复提出已有评论
  4. 04在用户确认后发布评审

MCP 相关

该技能通过 Gitee MCP Server 调用 PR 详情、差异文件、评论列表和创建评论等工具。可选地结合本地 Git 命令和文件访问获取上下文。

安装

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

$npx skills add https://github.com/oschina/gitee-agent-skills --skill review-pr

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

详细介绍

注意:如果你已在本地安装 mcporter,应使用 mcporter 调用 MCP 工具,而不是直接调用 MCP 工具。mcporter CLI 提供了更方便的界面和更完善的错误处理。

通过 Gitee MCP 评审 PR

对 Gitee 仓库中的 Pull Request 进行全面的代码评审。

前提条件

  • 已配置 Gitee MCP Server(工具:get_pull_detail、get_diff_files、list_comments(resource_type: pull)、create_comment(resource_type: pull))
  • 用户必须提供:仓库所有者、仓库名称、PR 编号(或表示“评审最新 PR”)
  • 可选:如果当前目录是 PR 所在仓库的本地克隆,可使用本地 git 命令和文件访问来获取更多上下文。

步骤

步骤 1:获取 PR 详情

使用 get_pull_detail 获取 PR 信息,并检查:

  • 标题和描述是否清楚地说明了变更目的
  • 源分支和目标分支是否正确
  • PR 状态(如果已关闭或合并,则停止评审)
  • 是否为 Draft;如果是,请告知用户
步骤 2:获取差异文件

使用 get_diff_files 获取变更文件列表,并分析:

  • 变更文件的数量和范围
  • 是否涉及敏感文件(配置文件、密钥、权限相关代码)

对于每个核心变更文件,使用 get_file_content 阅读其内容以了解上下文。

如果当前位于本地仓库目录,请利用本地 git 命令和文件访问获取更多评审上下文(例如,查看相关提交、相关文件和文件历史)。

步骤 3:检查现有评论

使用 list_comments(resource_type: pull)获取现有评论,避免提出已讨论过的问题。

步骤 4:代码评审

从以下维度评审代码:

正确性

  • 逻辑是否正确?是否处理了边界情况?
  • 是否存在明显的 bug 或空指针风险?
  • 错误处理是否充分?

安全性

  • 是否存在 SQL 注入、XSS、命令注入或其他安全风险?
  • 是否硬编码了敏感信息?
  • 是否进行了权限检查?

可维护性

  • 命名是否清晰且有明确含义?
  • 每个函数/方法是否只负责一项职责?
  • 是否为复杂逻辑块添加了注释?

性能

  • 是否存在不必要的嵌套循环或 N+1 查询?
  • 大型文件操作是否考虑了内存使用?

一致性

  • 代码是否遵循项目现有风格?
  • 是否与相关模块保持一致?
步骤 5:问题分类

按严重程度对发现的问题分类:

  • 🔴 阻塞问题:影响正确性或存在安全风险——必须修复
  • 🟡 建议:代码质量问题——建议修复,但不是强制要求
  • 🟢 可选:锦上添花的改进
步骤 6:向用户展示评审结果

停止——暂时不要提交!

将评审内容展示给用户以供确认。使用以下格式:

## Code Review Preview

**Summary**: [One sentence describing the purpose of the PR and overall quality assessment]

### 🔴 Blockers
1. **[filename:line]** [Issue description]
   - Problem: [Specific explanation]
   - Suggestion: [How to fix it]

### 🟡 Suggestions
1. **[filename]** [Issue description]
   - Suggestion: [Direction for improvement]

### 🟢 Optional
1. [Improvement suggestion]

### Conclusion
[Overall assessment — LGTM or key changes needed]

如果没有发现问题,则显示:

## Code Review Preview

LGTM! No significant issues found. Code quality looks good.

然后询问用户:“请确认以上评审内容是否有问题。确认无误后,我将提交到 PR。”

步骤 7:提交评审评论(用户确认后)

用户确认评审内容无误后,使用 create_comment(resource_type: pull)将评审提交到 PR。使用以下格式:

## Code Review

**Summary**: [One sentence describing the purpose of the PR and overall quality assessment]

### 🔴 Blockers
1. **[filename:line]** [Issue description]
   - Problem: [Specific explanation]
   - Suggestion: [How to fix it]

### 🟡 Suggestions
1. **[filename]** [Issue description]
   - Suggestion: [Direction for improvement]

### 🟢 Optional
1. [Improvement suggestion]

### Conclusion
[Overall assessment — LGTM or key changes needed]

🤖 Generated by AI + Gitee MCP

如果没有发现问题,则评论:

## Code Review

LGTM! No significant issues found. Code quality looks good.

🤖 Generated by AI + Gitee MCP

注意事项

  • 仅关注 PR 中新增或修改的代码,不要评审已有代码
  • 避免吹毛求疵——不要提出 linter 可以自动发现的问题
  • 评论应具体且可执行——提供建议,而不只是指出现象
  • 对于不确定的问题,请说“建议核实”,不要断言它一定是 bug

评论

支持 Markdown