Skip to content

AI 代码审查

AI 代码审查是 Git Workflow 的核心功能之一,使用 AI 对代码变更进行智能审查,生成详细的 Markdown 审查报告。

🎯 功能特点

  • 智能分析 - AI 自动分析代码变更,识别潜在问题
  • 多维度审查 - 覆盖代码质量、安全、性能、最佳实践等维度
  • 详细报告 - 生成结构化的 Markdown 审查报告
  • 灵活选择 - 支持审查暂存区、指定 commit 或交互式选择

🚀 快速开始

bash
# 交互式选择要审查的 commits
gw review

# 审查指定的 commit
gw review abc1234

# 审查多个 commits
gw review abc1234 def5678

# 审查 commit 范围(包含 abc1234 和 def5678 的所有 commits)
gw review abc1234..def5678

# 审查最近 N 个 commits
gw review -n 3

# 审查暂存区的更改
gw review -s

📊 审查维度

AI 会从以下维度进行代码审查:

维度说明示例
代码质量可读性、可维护性、代码风格命名规范、函数长度、注释完整性
潜在 Bug空指针、边界条件、异常处理未处理的 null、数组越界
安全问题SQL 注入、XSS、敏感信息泄露硬编码密码、未转义输入
性能问题不必要的循环、内存泄漏、重复计算N+1 查询、大数组遍历
最佳实践设计模式、SOLID 原则、DRY 原则代码重复、职责不清

🔴🟡🔵 问题严重程度

审查报告会按严重程度对问题进行分类:

  • 🔴 严重 - 必须修复的问题(安全漏洞、严重 Bug)
  • 🟡 警告 - 建议修复的问题(潜在 Bug、性能问题)
  • 🔵 建议 - 可选的改进(代码风格、最佳实践)

📝 审查报告

审查报告会保存在 .gw-reviews/ 目录下,包含:

  1. 变更统计 - 文件数、新增行数、删除行数
  2. 审查的提交 - 相关 commit 信息
  3. AI 审查结果
    • 概述 - 变更内容和整体评价
    • 问题列表 - 按严重程度分类
    • 改进建议 - 具体的代码改进建议
    • 亮点 - 代码中写得好的地方

报告示例

markdown
# 🔍 代码审查报告

> 生成时间: 2024/1/20 10:30:00

## 📊 变更统计

| 指标 | 数值 |
|------|------|
| 文件数 | 3 |
| 新增行 | +45 |
| 删除行 | -12 |

## 🤖 AI 审查结果

### 概述
本次变更主要添加了用户登录功能,整体代码质量良好...

### 问题列表

🔴 **严重问题**
1. `src/auth.ts:25` - 密码未加密存储

🟡 **警告**
1. `src/login.ts:42` - 缺少输入验证

🔵 **建议**
1. `src/utils.ts:18` - 建议使用 const 替代 let

⚙️ 配置

AI 审查使用与 AI Commit 相同的配置:

json
{
  "aiCommit": {
    "enabled": true,
    "provider": "github",
    "apiKey": "your-api-key",
    "model": "gpt-4o",
    "language": "zh-CN"
  }
}

支持的 AI 提供商

提供商默认模型说明
githubgpt-4oGitHub Models(推荐,免费)
openaigpt-4oOpenAI API
claudeclaude-3-5-sonnetAnthropic Claude
ollamaqwen2.5-coder:14b本地 Ollama(离线可用)

💡 使用技巧

1. 提交前审查

在提交代码前,先审查暂存区的更改:

bash
git add .
gw review -s
# 根据审查结果修改代码
gw c

2. Code Review 辅助

在进行代码审查时,先用 AI 审查相关 commits:

bash
# 审查某个 PR 的所有 commits
gw review abc1234 def5678 ghi9012

# 或使用范围语法审查从 abc1234 到 def5678 的所有 commits(包含两端)
gw review abc1234..def5678

3. 定期代码审计

定期审查最近的提交,发现潜在问题:

bash
# 审查最近 10 个 commits
gw review -n 10

📋 命令参考

详细的命令选项请参考 review 命令文档

🔗 相关功能

Released under the MIT License.