gitlink-cli/skills/gitlink-code-review/README.md

9.1 KiB
Raw Blame History

gitlink-code-review - 智能代码审查 Skill

GitLink Skill Version AI Agent Ready

欢迎使用 gitlink-code-review Skill这是一个 AI 驱动的自动化代码审查工具,帮助开发者和 Reviewers 快速分析 GitLink PR 的代码质量。

🎯 功能特性

核心功能

  • 自动代码分析:获取 PR 的文件列表和 diff 内容
  • 多维度审查:代码质量、安全性、性能、可维护性
  • 结构化报告:生成 JSON/Markdown 格式的审查报告
  • 智能建议:提供具体的代码修改建议
  • 自动评论:将审查意见自动添加为 PR 评论
  • AI 驱动:基于 Claude 的代码理解能力

审查维度

维度 检查项 说明
代码质量 复杂度、命名规范、注释完整性 确保代码清晰易读
安全性 SQL 注入、XSS、敏感信息泄露 发现安全漏洞
性能 资源泄漏、循环效率、数据库查询 优化性能问题
可维护性 代码重复、职责单一、测试覆盖 提高代码可维护性

🚀 快速开始

前置条件

  1. 安装 gitlink-cli

    npm install -g @gitlink-ai/cli
    
  2. 配置认证

    gitlink-cli auth login
    
  3. 验证安装

    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 分析并生成报告
# 修复发现的问题

场景 2Reviewers 辅助审查

Reviewers 使用 AI 辅助审查:

# 快速获取审查报告
gitlink-cli pr +view --id 123 --format json
gitlink-cli pr +diff --id 123 --format json

# AI 生成报告Reviewers 参考
# 专注于业务逻辑和架构设计

场景 3CI/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
# 提供详细的代码指导
# 帮助改进代码质量

📚 文档导航

快速查找

🤖 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 ⚠️

需要我详细说明修复方法吗?

🎓 最佳实践

审查时机

  1. PR 创建后:立即进行初步审查
  2. PR 更新后:审查新增的代码变更
  3. 合并前:最终审查确认代码质量

审查重点

根据 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:

  1. 提供完整的 diff 内容
  2. 根据项目类型调整审查规则
  3. 结合项目上下文分析
  4. 定期更新审查规则

Q: 如何处理误报?

A:

  1. AI 审查可能产生误报,需要人工验证
  2. 可以配置白名单忽略特定规则
  3. 提供反馈改进审查规则

Q: 审查报告可以作为合并条件吗?

A:

  1. 可以将审查评分设置为合并门禁
  2. 建议设置最低评分(如 70 分)
  3. 高优先级问题必须修复后才能合并

Q: 如何集成到 CI/CD

A: 参考 examples/ci-integration.md 中的配置示例

🔗 相关资源

📈 更新日志

v1.0.0 (2026-06-12)

  • 初始版本发布
  • 支持代码质量、安全性、性能、可维护性审查
  • 生成结构化审查报告
  • AI Agent 集成
  • 完整文档和示例

🤝 贡献

欢迎贡献!如果你有改进建议或发现问题,请:

  1. 创建 Issue 描述问题或建议
  2. 提交 Pull Request 改进 Skill
  3. 分享你的使用经验

📞 获取帮助


祝你审查愉快!🚀

如有问题,请查看 SKILL.mdexamples/ 中的详细示例。