AI Code Review - Feishu
AI 驱动的代码审查 VS Code 插件。支持多种审查模式:Git 提交自动审查、暂存变更审查、工作区变更审查、当前文件审查、选中代码审查。审查结果在编辑器内可视化展示(Problems 面板 + 行内诊断 + 快速修复建议),同时可通过飞书 Webhook 推送给团队负责人。支持前端(Vue)和后端(Java)两套审查规范。
功能特性
- 多种审查模式:提交审查、暂存变更、工作区变更、当前文件、选中代码,覆盖各种开发场景
- 自动审查:Git 提交后自动触发 AI 代码审查,无需配置 Git Hook
- 侧边栏面板:Activity Bar 中的专属入口,包含快捷操作、配置概览、审查报告列表三个视图
- 编辑器内展示:审查问题显示在 Problems 面板,支持点击跳转、行内波浪线提示、快速修复建议
- 审查报告:自动保存 Markdown 格式审查报告到
.ai-review/ 目录,支持预览和管理
- 飞书推送:提交审查和手动触发审查的报告自动发送到飞书群和/或飞书用户私信
- 审查锁定:审查进行中自动禁用所有审查按钮,防止重复触发,显示"正在审查中..."状态
- 内置规范:基于 frontend-standards 规范体系,涵盖命名、Vue3、TypeScript、CSS、数据验证等 8 大类别
- 多技术栈:支持
frontend-vue 和 backend-java 两套审查规范,通过配置切换
- 可扩展:支持自定义审查规则,覆盖或扩展内置规则
- 多模型支持:兼容 OpenAI API 格式,可使用 DeepSeek、通义千问等国内服务
快速开始
- 安装插件
- 配置 AI API Key(必需):
aiReview.ai.apiKey
- 配置飞书 Webhook(可选):
aiReview.feishu.webhooks
- 提交代码,自动触发审查
审查模式
| 模式 |
触发方式 |
审查范围 |
飞书通知 |
| 触发代码审查 |
侧边栏按钮 / 命令面板 |
最近一次 Git 提交的 diff |
✅ |
| 提交自动审查 |
Git 提交后自动触发 |
最近一次 Git 提交的 diff |
✅ |
| 审查暂存变更 |
侧边栏按钮 / 命令面板 |
git diff --cached 暂存区内容 |
❌ |
| 审查工作区变更 |
侧边栏按钮 / 命令面板 |
git diff 未暂存的修改 |
❌ |
| 审查当前文件 |
侧边栏按钮 / 命令面板 |
当前编辑器打开的完整文件 |
❌ |
| 审查选中代码 |
侧边栏按钮 / 右键菜单 / 命令面板 |
编辑器中选中的代码片段 |
❌ |
侧边栏面板
点击 Activity Bar 中的 AI Code Review 图标打开侧边栏,包含三个视图:
快捷操作
一键触发各种审查模式和常用操作:
- 触发代码审查、审查暂存变更、审查工作区变更、审查当前文件、审查选中代码
- 清除审查标记(清除编辑器中的波浪线和 Problems 面板标记)
- 查看最新报告、校验配置、打开设置
配置概览
分组展示当前扩展配置状态,点击可跳转到对应设置项:
- AI 引擎:API Key 状态、API 地址、模型名称
- 飞书通知:Webhook 数量、App ID、App Secret、通知用户数
- 审查规则:技术栈、自定义规则路径、规则类别、优先级映射
- 行为设置:自动触发开关、超时时间
审查报告
按审查时间倒序列出 .ai-review/ 目录下的所有历史报告,支持:
- 点击预览报告(Markdown 预览)
- 右键删除报告
- 手动刷新列表
报告文件名按审查模式区分,如 review-commit-<hash>-<时间>-<摘要>.md、review-staged-<时间>.md 等。
命令
| 命令 |
说明 |
AI Review: Trigger Review |
手动触发审查(最近一次提交) |
AI Review: 审查暂存变更 |
审查已暂存的代码变更 |
AI Review: 审查工作区变更 |
审查工作区未暂存的变更 |
AI Review: 审查当前文件 |
审查当前打开的文件 |
AI Review: 审查选中代码 |
审查编辑器中选中的代码(也可右键触发) |
AI Review: 清除审查标记 |
清除所有审查诊断标记 |
AI Review: Show Full Report |
查看最新审查报告 |
AI Review: Open Settings |
打开插件设置 |
AI Review: Validate Settings |
校验配置有效性 |
配置项
| 配置项 |
类型 |
默认值 |
说明 |
aiReview.ai.apiUrl |
string |
https://api.openai.com/v1 |
AI API 地址 |
aiReview.ai.apiKey |
string |
"" |
AI API Key |
aiReview.ai.model |
string |
gpt-4o |
AI 模型名称 |
aiReview.feishu.webhooks |
string[] |
[] |
飞书群 Webhook 地址列表 |
aiReview.feishu.appId |
string |
"" |
飞书应用 App ID(用于向用户发私信) |
aiReview.feishu.appSecret |
string |
"" |
飞书应用 App Secret |
aiReview.feishu.userIds |
string[] |
[] |
飞书用户邮箱列表,用于发送私信通知 |
aiReview.behavior.autoTrigger |
boolean |
true |
是否自动触发审查 |
aiReview.behavior.timeoutSeconds |
number |
180 |
审查超时时间(秒) |
aiReview.rules.techStack |
string |
frontend-vue |
技术栈选择(frontend-vue / backend-java) |
aiReview.rules.enabledCategories |
string[] |
全部 8 类 |
启用的审查规则类别 |
aiReview.rules.customRulesPath |
string |
"" |
自定义规则文件路径 |
aiReview.rules.priorityMapping |
object |
{"A":"error","B":"warning","C":"info"} |
优先级映射 |
使用 DeepSeek 示例
{
"aiReview.ai.apiUrl": "https://api.deepseek.com/v1",
"aiReview.ai.apiKey": "sk-your-key",
"aiReview.ai.model": "deepseek-chat",
"aiReview.behavior.timeoutSeconds": 120
}
技术栈切换
插件默认使用前端 Vue 审查规范。如果你的项目是 Java 后端,切换技术栈即可:
{
"aiReview.rules.techStack": "backend-java"
}
插件会根据技术栈选择从 rules/frontend/ 或 rules/backend/ 读取对应的审查规范。
飞书用户私信
除了群 Webhook,还可以通过飞书应用 API 向指定用户发送私信。需要先在飞书开放平台创建企业自建应用并开通 im:message:send_as_bot 权限。
{
"aiReview.feishu.appId": "cli_xxxx",
"aiReview.feishu.appSecret": "your-app-secret",
"aiReview.feishu.userIds": ["zhangsan@company.com", "lisi@company.com"]
}
直接填飞书用户的邮箱即可,插件会自动通过飞书 API 将邮箱转换为用户 ID 再发送。也兼容直接填 open*id(ou* 开头)或 user_id。群 Webhook 和用户私信可以同时配置,互不影响。
自定义规则
创建 JSON 文件,配置 aiReview.rules.customRulesPath 指向该文件:
[
{
"id": "tech-naming",
"name": "自定义命名规范",
"category": "tech-naming",
"priority": "A",
"description": "团队自定义命名规范",
"content": "你的具体规范内容..."
}
]
同 ID 的自定义规则会覆盖内置规则。
开发
# 安装依赖
npm install
# 编译
npm run compile
# 运行测试
npm test
# 打包 vsix
npx @vscode/vsce package --allow-missing-repository
按 F5 启动调试,会打开一个新的 VS Code 窗口加载扩展。可在 .vscode/launch.json 中配置 args 指定调试时打开的工作区路径。
License
MIT