9.1 KiB
9.1 KiB
gitlink-code-review - 智能代码审查 Skill
欢迎使用 gitlink-code-review Skill!这是一个 AI 驱动的自动化代码审查工具,帮助开发者和 Reviewers 快速分析 GitLink PR 的代码质量。
🎯 功能特性
核心功能
- ✅ 自动代码分析:获取 PR 的文件列表和 diff 内容
- ✅ 多维度审查:代码质量、安全性、性能、可维护性
- ✅ 结构化报告:生成 JSON/Markdown 格式的审查报告
- ✅ 智能建议:提供具体的代码修改建议
- ✅ 自动评论:将审查意见自动添加为 PR 评论
- ✅ AI 驱动:基于 Claude 的代码理解能力
审查维度
| 维度 | 检查项 | 说明 |
|---|---|---|
| 代码质量 | 复杂度、命名规范、注释完整性 | 确保代码清晰易读 |
| 安全性 | SQL 注入、XSS、敏感信息泄露 | 发现安全漏洞 |
| 性能 | 资源泄漏、循环效率、数据库查询 | 优化性能问题 |
| 可维护性 | 代码重复、职责单一、测试覆盖 | 提高代码可维护性 |
🚀 快速开始
前置条件
-
安装 gitlink-cli
npm install -g @gitlink-ai/cli -
配置认证
gitlink-cli auth login -
验证安装
gitlink-cli pr +list
基础使用
1. 获取 PR 信息
# 查看 PR 详情
gitlink-cli pr +view --id 123 --format json
# 获取变更文件列表
gitlink-cli pr +files --id 123 --format json
# 获取 diff 内容
gitlink-cli pr +diff --id 123 --format json
2. 进行代码审查
AI Agent 方式(推荐):
用户: "帮我审查 PR #123,检查代码质量、安全性和性能问题"
AI Agent 将:
1. 获取 PR 的代码变更
2. 分析代码质量和潜在问题
3. 生成结构化的审查报告
4. (可选)自动添加审查评论
手动方式:
# 获取 diff 并分析
gitlink-cli pr +diff --id 123 --format json > pr_diff.json
# 使用 AI 工具分析 pr_diff.json
# 生成审查报告
# (可选)添加评论到 PR
gitlink-cli api POST /:owner/:repo/pulls/123/reviews --body '{
"body": "审查报告内容...",
"event": "COMMENT"
}'
完整工作流示例
详见 examples/comprehensive-review-workflow.md
📊 审查报告示例
简化版报告
# 代码审查报告
## 总体评分: 85/100 ⭐⭐⭐⭐
## 🔴 高优先级问题(2)
1. **敏感信息泄露** - `src/auth/login.go:45`
- 硬编码的密钥不应出现在代码中
- 建议:使用环境变量存储密钥
2. **资源泄漏** - `src/auth/login.go:78`
- 数据库连接未关闭
- 建议:使用 defer 确保连接关闭
## ⭐ 优秀实践(1)
1. **优秀的错误处理** - `src/auth/user.go:120`
完整版报告
完整版报告包含:
- PR 基本信息
- 各维度详细评分
- 按优先级排序的问题列表
- 具体的代码位置和修改建议
- 优秀实践和改进建议
- 逐文件的详细分析
🎯 使用场景
场景 1:开发者自审
开发者在提交 PR 前进行自审:
# 获取 PR diff
gitlink-cli pr +diff --id 123 --format json
# AI 分析并生成报告
# 修复发现的问题
场景 2:Reviewers 辅助审查
Reviewers 使用 AI 辅助审查:
# 快速获取审查报告
gitlink-cli pr +view --id 123 --format json
gitlink-cli pr +diff --id 123 --format json
# AI 生成报告,Reviewers 参考
# 专注于业务逻辑和架构设计
场景 3:CI/CD 集成
在 CI/CD 流程中自动审查:
# .gitlab-ci.yml
code_review:
script:
- gitlink-cli pr +diff --id $MR_ID --format json
- ai-code-review --input pr_diff.json --output report.json
- check-score --min 70 report.json
场景 4:新贡献者指导
为新贡献者的 PR 提供详细指导:
# 全面审查新贡献者的 PR
# 提供详细的代码指导
# 帮助改进代码质量
📚 文档导航
- SKILL.md - 技能总览和完整功能说明
- REFERENCE.md - API 详细参考
- references/ - 详细操作指南
- examples/ - 工作流示例
快速查找
- 我想了解基本用法: SKILL.md
- 我想看审查维度: SKILL.md
- 我想看工作流示例: examples/comprehensive-review-workflow.md
- 我想了解 API 细节: REFERENCE.md
🤖 AI Agent 使用
Claude Code 和其他 AI Agent 可以直接使用此 Skill:
用户请求: "审查 PR #123"
↓
AI 读取 gitlink-code-review/SKILL.md
↓
AI 执行:
1. gitlink-cli pr +view --id 123 --format json
2. gitlink-cli pr +files --id 123 --format json
3. gitlink-cli pr +diff --id 123 --format json
↓
AI 分析代码变更
↓
AI 生成结构化审查报告
↓
AI (可选)添加评论到 PR
↓
完成!
典型 AI 对话
用户: "帮我审查一下 PR #123,重点关注安全性问题"
AI Agent:
我来帮您审查 PR #123,重点关注安全性问题。
[获取 PR 信息...]
[分析代码变更...]
发现以下安全问题:
🔴 高优先级(1):
1. SQL 注入风险 - src/auth/login.go:45
- 直接拼接用户输入到 SQL 语句
- 建议:使用参数化查询
⚠️ 中优先级(1):
1. 缺少输入验证 - src/auth/login.go:30
- 未验证用户名长度和格式
- 建议:添加输入验证中间件
总体评分:70/100
安全性评分:60/100 ⚠️
需要我详细说明修复方法吗?
🎓 最佳实践
审查时机
- PR 创建后:立即进行初步审查
- PR 更新后:审查新增的代码变更
- 合并前:最终审查确认代码质量
审查重点
根据 PR 类型调整审查重点:
- 功能 PR:代码质量 + 可维护性
- Bug 修复:修复完整性 + 测试覆盖
- 重构 PR:性能改进 + 代码简化
- 文档 PR:文档完整性 + 准确性
评论规范
- ✅ 建设性:提供具体的修改建议
- ✅ 礼貌友好:使用积极的语言
- ✅ 解释原因:说明为什么需要修改
- ✅ 认可优点:指出优秀实践
自动化审查
配置 CI/CD 自动审查:
# 合并门禁示例
if (review_score < 70) {
block_merge("代码审查评分低于 70 分")
}
if (high_priority_issues > 0) {
block_merge("存在高优先级问题")
}
📊 质量标准
审查评分体系
| 分数范围 | 等级 | 说明 |
|---|---|---|
| 90-100 | ⭐⭐⭐⭐⭐ 优秀 | 代码质量高,可以直接合并 |
| 75-89 | ⭐⭐⭐⭐ 良好 | 代码质量良好,小幅改进后可合并 |
| 60-74 | ⭐⭐⭐ 一般 | 存在一些问题,建议改进后合并 |
| < 60 | ⭐⭐ 较差 | 存在严重问题,必须修复 |
问题优先级
| 优先级 | 图标 | 说明 | 是否阻止合并 |
|---|---|---|---|
| HIGH | 🔴 | 安全漏洞、严重性能问题 | 是 |
| MEDIUM | ⚠️ | 代码质量问题、潜在风险 | 建议 |
| LOW | ℹ️ | 代码风格、轻微改进 | 否 |
❓ 常见问题
Q: 如何提高审查准确性?
A:
- 提供完整的 diff 内容
- 根据项目类型调整审查规则
- 结合项目上下文分析
- 定期更新审查规则
Q: 如何处理误报?
A:
- AI 审查可能产生误报,需要人工验证
- 可以配置白名单忽略特定规则
- 提供反馈改进审查规则
Q: 审查报告可以作为合并条件吗?
A:
- 可以将审查评分设置为合并门禁
- 建议设置最低评分(如 70 分)
- 高优先级问题必须修复后才能合并
Q: 如何集成到 CI/CD?
A:
参考 examples/ci-integration.md 中的配置示例
🔗 相关资源
- gitlink-cli 主项目
- gitlink-pr Skill - PR 操作指南
- gitlink-workflow Skill - AI 工作流
- 代码审查最佳实践
📈 更新日志
v1.0.0 (2026-06-12)
- ✅ 初始版本发布
- ✅ 支持代码质量、安全性、性能、可维护性审查
- ✅ 生成结构化审查报告
- ✅ AI Agent 集成
- ✅ 完整文档和示例
🤝 贡献
欢迎贡献!如果你有改进建议或发现问题,请:
- 创建 Issue 描述问题或建议
- 提交 Pull Request 改进 Skill
- 分享你的使用经验
📞 获取帮助
- 查看文档: SKILL.md
- 查看示例: examples/
- 提交问题: GitLink Issues
祝你审查愉快!🚀