一、需求现状
代码审查一直是项目开发的一个重要环节,但是要花费大量时间,我们希望能够使用工具来缩短这个环节的时间,给开发人员减负。业务团队也对我们提出了这方面的需求,
之前的sonarqube已经不能满足各业务团队的需求,尤其是对历史项目的审查。大量的项目审查带来巨大的工作量。在ai模型和mcp服务蓬勃发展的今天,代码审查也可以借助ai的力量。
在代码审查时我们关注代码的逻辑性错误、代码健壮性、安全性、性能等几个维度,在工具使用时关注文档、是否免费、能不能私有化部署、审查效率怎样。针对业务和开发的需求,我做了一些调研。
二、调研
对代码的审查分为开发即时审查和代码变更审查(平台类审查)。开发即时审查主要调研了代码编辑器的插件,cursor的mcp服务插件和vscode的插件,这些插件可根据开发者自己的需求来进行评审。市面上平台类审查工具具有ai能力的审查工具包括CodeRabbit、Snyk,包括SonarQube有可以接入ai能力。
| 维度 | CodeRabbit | SonarQube | DeepCode/Snyk Code |
|---|---|---|---|
| 核心优势 | PR 实时交互、AI 建议 | 多语言支持、深度静态分析 | 安全漏洞检测、语义级 AI |
| GitLab集成 | ✅ 直接 Merge Request 集成 | ✅ CI/CD 流水线集成 | ✅ CI/CD 或插件集成 |
| AI 能力 | 高(对话式 LLM) | 低(规则引擎为主) | 中高(语义分析+ML) |
| 数据隐私 | 云端服务 | 支持本地部署 | 云端/企业版本地部署 |
| 成本 | 中(按用户/仓库) | 低(社区版)到高(企业版) | 中高(安全专项) |
| 最佳适用场景 | 敏捷团队的 PR 交互审查 | 严格规范的长期项目维护 | 安全敏感的现代应用开发 |
synk的只有企业版才可以私有化部署,且它是偏重于安全方面的;CodeRabbit是云服务,不能私有化部署;而SonarQube侧重于代码的规范和规则,ai能力不足,不能最大限度使用ai的能力。而且ai定制能力受限,只能使用官方集成的,不能针对自己的项目做prompt定制。
所以上面的都不能满足现有的需求,因此我又调研别的工具,找到一个开源的工具 AI-Codereview-Gitlab。
三、编辑器插件
1. cursor
直接使用 @vibesnipe/code-review-mcp mcp服务插件。
添加mcp配置


项目根目录增加
.cursor/rules/project.mdc文件,内容:
## Slash Commands |
其他更多属性配置,可以看:https://www.npmjs.com/package/@vibesnipe/code-review-mcp
- 使用方式:可输入
/review-head。

如果你是python开发者也可以使用 https://github.com/mehmetakinn/gitlab-mcp-code-review
2. vscode
cursor需要20美元的月费,vscode上的免费插件也有不错的效果,我推荐 DeepSeek R1和 腾讯云代码助手 CodeBuddy。 这2个插件都是免费的。
在添加并启用插件后,在相应的页面或组件直接右键可以看到相关的评审功能。

腾讯的代码助手可以在函数顶部添加相关功能按钮,可快速使用。
为方便使用,可以参考cursor的布局,将这2个插件移动到右侧。
虽然在功能ai模型上vscode的免费插件比不上cursor,但是在代码开发方面来说,可以应对绝大部分的开发场景。
四、AI-Codereview-Gitlab
这是一个开源的aicr工具,AI-Codereview-Gitlab 是一个基于大模型的自动化代码审查工具,帮助开发团队在代码合并或提交时,快速进行智能化的审查(Code Review),提升代码质量和开发效率。
1. 私有化部署
我们通过官方的Docker 部署方式来部署的:
- 准备环境文件
- 克隆项目仓库
git clone https://github.com/sunmh207/AI-Codereview-Gitlab.git
cd AI-Codereview-Gitlab- 创建配置文件
cp conf/.env.dist conf/.env
- 编辑conf/.env文件
#大模型供应商配置,支持 zhipuai , openai , deepseek 和 ollama
LLM_PROVIDER=deepseek
#DeepSeek
DEEPSEEK_API_KEY={YOUR_DEEPSEEK_API_KEY}
#支持review的文件类型(未配置的文件类型不会被审查)
SUPPORTED_EXTENSIONS=.java,.py,.php,.yml,.vue,.go,.c,.cpp,.h,.js,.css,.md,.sql
#钉钉消息推送: 0不发送钉钉消息,1发送钉钉消息
DINGTALK_ENABLED=0
DINGTALK_WEBHOOK_URL={YOUR_WDINGTALK_WEBHOOK_URL}
#Gitlab配置
GITLAB_ACCESS_TOKEN={YOUR_GITLAB_ACCESS_TOKEN} - 启动服务
docker-compose up -d
- 验证
- 主服务验证:
- 访问 http://your-server-ip:5001
- 显示 “The code review server is running.” 说明服务启动成功。
- Dashboard 验证:
- 访问 http://your-server-ip:5002
- 看到一个审查日志页面,说明 Dashboard 启动成功。
- 主服务验证:
2. 配置gitlab webhook
- 创建Access Token
- 方法一:在 GitLab 个人设置中,创建一个 Personal Access Token
- 方法二:在 GitLab 项目设置中,创建Project Access Token

- 配置webhook
在 GitLab 项目设置中,配置 Webhook:- URL:http://your-server-ip:5001/review/webhook
- Trigger Events:勾选 Push Events 和 Merge Request Events (不要勾选其它Event)
- Secret Token:上面配置的 Access Token(可选)

请确保gitlab网络环境和本系统互通。
3. push触发事件

在配置好webhook后可以点击测试按钮 Test看下网络是否畅通。
4. 查看审查报告

代码push后会在提交note下增加审查报告。
5. 查看审查日志

这个集合了日志和面板统计,也可以进行简单的筛选。从score列查看评分,针对性对代码进行优化。
消息通知可以配置钉钉、飞书和企业微信,具体流程可参考官方文档。
局限性:现在对项目整个仓库的评审没有前端页面的配置项,暂且只能用作者给出的指令: python -m biz.cmd.review
五、结语
对于普通的项目,vscode的即时审查插件(deepseek和codebuddy)和开源工具(AI-Codereview-Gitlab)就可以零预算来对项目进行审查。
我自己负责的几个项目都按着这个方案做代码审查,效果还是不错的。审查报告会找出不合理的代码片段并给出建议,对不易发现的性能和安全漏洞及时发现并解决。