关于 review-pr
此技能指导如何评审 Gitee 仓库中的 Pull Request,供需要检查变更质量并提交评审意见的团队使用。它按正确性、安全性、可维护性、性能和一致性检查,并要求先让用户确认,再发布评论。
主要功能
- 01获取 PR 详情和变更文件
- 02查看已有评审评论
- 03检查正确性与安全风险
- 04按严重程度分类问题
- 05确认后提交评审评论
适用场景
- 01评审 Gitee Pull Request
- 02检查变更中的敏感文件
- 03避免重复提出已有评论
- 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 工具。mcporterCLI 提供了更方便的界面和更完善的错误处理。
通过 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