Git 智能代码审查助手 (Git AI Reviewer)
基于 AI 的 VS Code 代码审查插件。它能自动分析 Git 暂存区 (Staged) 的代码变更,在提交前发现 Bug、安全隐患并提供优化建议,支持一键采纳修复。
✨ 核心特性
- 🤖 智能审查:集成 OpenAI 兼容接口(支持 GPT-4o, Claude 3.5 Sonnet 等),深度分析代码逻辑、潜在 Bug 和规范问题。
- 🎯 精准定位:仅审查 Git 暂存区的变更文件,专注即将提交的代码,避免无效 Token 消耗。
- 💬 行内评论:审查意见直接以 VS Code 原生评论形式展示在代码行间,体验丝滑。
- ⚡️ 一键修复:AI 提供的代码修改建议,点击评论中的
Apply Fix (✓) 按钮即可一键应用。
- 🛡️ 安全隐私:
- 内置本地安全扫描,防止 API Key、密钥等敏感信息发送给 AI。
- 代码仅用于推理,不进行任何云端存储。
- ⚙️ 灵活配置:支持全局配置(API Key)和项目级配置(Prompt 规则、忽略列表)。
🚀 快速开始
- 在 VS Code 扩展市场搜索并安装
Git AI Reviewer (或安装 .vsix 包)。
- 配置 API Key(见下文)。
- 开始使用!
⚙️ 配置说明
本插件支持多级配置,优先级:项目配置 > 全局配置 > 默认配置。
配置采用 YAML 格式。
1. 全局配置 (推荐)
用于存放敏感信息(如 API Key)。
请在您的 用户主目录 下创建 ~/git-ai-config.yaml:
# ~/git-ai-config.yaml
# AI API 配置
apiKey: "sk-your-api-key-here"
baseUrl: "https://api.openai.com/v1" # 支持任何 OpenAI 兼容接口
model: "gpt-4o" # 或 claude-3-5-sonnet
2. 项目配置 (可选)
用于定义团队共享的审查规则。
请在 项目根目录 下创建 .git-ai-reviewer.yaml:
# .git-ai-reviewer.yaml
# 系统提示词 (定义审查角色和关注点)
systemPrompt: |
你是一个资深技术专家。请重点审查:
1. 潜在的空指针异常
2. SQL 注入风险
3. 代码可读性
# 超时设置 (毫秒)
timeout: 60000
# 最大文件行数限制 (超过跳过)
maxFileLineSize: 1000
# 忽略文件 (Glob 模式,追加到默认忽略列表)
ignore:
- "**/*.test.ts"
- "generated/**"
# 敏感信息过滤 (正则,追加到默认规则)
sensitivePatterns:
- "MY_PRIVATE_TOKEN"
3. 支持的配置项
| 配置项 |
类型 |
默认值 |
说明 |
apiKey |
string |
- |
AI 服务的 API Key (必填) |
baseUrl |
string |
https://api.openai.com/v1 |
AI 服务接口地址 |
model |
string |
claude-3-5-sonnet-20240620 |
使用的模型名称 |
systemPrompt |
string |
(内置资深审查员Prompt) |
系统提示词,定义 AI 角色 |
timeout |
number |
60000 |
请求超时时间 (ms) |
maxFileLineSize |
number |
1000 |
单文件最大行数,超大文件自动跳过 |
ignore |
string[] |
(内置常见忽略列表) |
忽略文件的 Glob 匹配模式 |
sensitivePatterns |
string[] |
[] |
本地安全扫描的正则匹配模式 |
📖 使用指南
启动审查
- 修改代码并执行
git add 将文件加入暂存区。
- 点击 源代码管理 (SCM) 面板标题栏上的 机器人图标 (Start AI Review)。
- 或者使用命令面板 (
Cmd+Shift+P) 运行: Git AI Reviewer: Start AI Review。
查看结果
- 审查完成后,如果有问题,VS Code 会自动打开相关文件。
- 审查意见会以 评论 (Comment) 的形式挂载在具体代码行上。
交互操作
在每条 AI 评论的操作栏中:
- ✅ Apply Fix: 采纳 AI 的修复建议,自动修改代码。
- ❌ Dismiss: 忽略该建议,移除评论。
- ⬆️⬇️ Prev/Next: 在多条建议之间快速跳转。
⚠️ 常见问题
Q: 为什么点击开始审查没有反应?
A: 请确保暂存区 (git status) 有文件变更。如果所有变更文件都被 ignore 规则命中(或超过行数限制),也会直接结束。
Q: 如何配置忽略某些文件?
A: 在 .git-ai-reviewer.yaml 中的 ignore 字段添加 Glob 规则。插件默认已忽略 node_modules、lock 文件及常见的二进制/生成文件。
License: MIT
| |