您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center 汽车系统工程   模型库  
会员   
   
AI辅助企业网络安全&治理
6月11-12日 北京+线上
基于模型的数据治理与数据中台
6月16-17日 北京+线上
Spec Driven Development 工程化实践
6月12-13日 北京+线上
     
   
 订阅
AI-Codereview-GitLab:用大模型一键提升代码质量的自动审查利器
 
作者:小小工匠
  36   次浏览      1 次
 2026-5-30
 
编辑推荐:
本文以开源项目 AI-Codereview-Gitlab为例,剖析如何使用大模型 、Webhook和可视化Dashboard,实现高效、智能的GitLab自动代码审查,希望对你的学习有帮助。
本文来自于CSDN,由火龙果软件Alice编辑推荐。

概述

随着大语言模型(LLM )和智能开发工具的兴起,越来越多团队开始寻求代码审查自动化方案。本文以开源项目 AI-Codereview-Gitlab为例,剖析如何使用大模型 、Webhook和可视化Dashboard,实现高效、智能的GitLab自动代码审查。

开源地址

项目简介

本项目是一个基于大模型的自动化代码审查工具,帮助开发团队在代码合并或提交时,快速进行智能化的审查(Code Review),提升代码质量和开发效率。

功能

  • 🚀 多模型支持
    • 兼容 DeepSeek、ZhipuAI、OpenAI、通义千问 和 Ollama,想用哪个就用哪个。
  • 📢 消息即时推送
    • 审查结果一键直达 钉钉、企业微信 或 飞书,代码问题无处可藏!
  • 📅 自动化日报生成
    • 基于 GitLab & GitHub Commit 记录,自动整理每日开发进展,谁在摸鱼、谁在卷,一目了然 😼。
  • 📊 可视化 Dashboard
    • 集中展示所有 Code Review 记录,项目统计、开发者统计,数据说话,甩锅无门!
  • 🎭 Review Style 任你选
    • 专业型 🤵:严谨细致,正式专业。
    • 讽刺型 😈:毒舌吐槽,专治不服(“这代码是用脚写的吗?”)
    • 绅士型 🌸:温柔建议,如沐春风(“或许这里可以再优化一下呢~”)
    • 幽默型 🤪:搞笑点评,快乐改码(“这段 if-else 比我的相亲经历还曲折!”)

效果图:

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ad5d426818e04b9593b7dab8439da787.png)

原理

当用户在 GitLab 上提交代码(如 Merge Request 或 Push 操作)时,GitLab 将自动触发 webhook

事件,调用本系统的接口。系统随后通过第三方大模型对代码进行审查,并将审查结果直接反馈到对应的 Merge Request 或 Commit 的

Note 中,便于团队查看和处理。

部署

方案一:Docker 部署

1. 准备环境文件

克隆项目仓库:

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}

2. 启动服务

docker-compose up -d

3. 验证部署

  • 主服务验证:
    • 访问 http://your-server-ip:5001
    • 显示 “The code review server is running.” 说明服务启动成功。
  • Dashboard 验证:
    • 访问 http://your-server-ip:5002
    • 看到一个审查日志页面,说明 Dashboard 启动成功。

方案二:本地Python环境部署

1. 获取源码

git clone https://github.com/sunmh207/AI-Codereview-Gitlab.git
cd AI-Codereview-Gitlab

2. 安装依赖

使用 Python 环境(建议使用虚拟环境 venv)安装项目依赖(Python 版本:3.10+):

pip install -r requirements.txt

3. 配置环境变量

同 Docker 部署方案中的.env 文件配置。

4. 启动服务

启动API服务:

python api.py

启动Dashboard服务:

streamlit run ui.py --server.port=5002 --server.address=0.0.0.0

配置 GitLab Webhook

1. 创建Access Token

方法一:在 GitLab 个人设置中,创建一个 Personal Access Token。

方法二:在 GitLab 项目设置中,创建Project Access Token

2. 配置 Webhook

在 GitLab 项目设置中,配置 Webhook:

URL:http://your-server-ip:5001/review/webhook

Trigger Events:勾选 Push Events 和 Merge Request Events (不要勾选其它Event)

Secret Token:上面配置的 Access Token(可选)

备注

1.Token使用优先级

  • 系统优先使用 .env 文件中的 GITLAB_ACCESS_TOKEN。
  • 如果 .env 文件中没有配置 GITLAB_ACCESS_TOKEN,则使用 Webhook 传递的Secret Token。

2.网络访问要求

  • 请确保 GitLab 能够访问本系统。
  • 若内网环境受限,建议将系统部署在外网服务器上。

配置消息推送

配置钉钉推送

在钉钉群中添加一个自定义机器人,获取 Webhook URL。

更新 .env 中的配置:

#钉钉配置
DINGTALK_ENABLED=1  #0不发送钉钉消息,1发送钉钉消息
DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=xxx #替换为你的Webhook URL

企业微信和飞书推送配置类似,具体参见 常见问题

其它

1.如何对整个代码库进行Review?

可以通过命令行工具对整个代码库进行审查。当前功能仍在不断完善中,欢迎试用并反馈宝贵意见!具体操作如下:

python -m biz.cmd.review

运行后,请按照命令行中的提示进行操作即可。

常见问题

Docker 容器部署时,更新 .env 文件后不生效

可能原因

Docker 的文件映射机制是将宿主机的文件复制到容器内,因此宿主机文件的更新不会自动同步到容器内。

解决方案

删除现有容器:

docker rm -f <container_name>

重新创建并启动容器:

docker-compose up -d

或参考说明文档启动容器。

GitLab 配置 Webhooks 时提示 “Invalid url given”

可能原因

GitLab 默认禁止 Webhooks 访问本地网络地址。

解决方案

1.进入 GitLab 管理区域:Admin Area → Settings → Network。

2.在 Outbound requests 部分,勾选 Allow requests to the local network from webhooks and integrations。

3.保存。

如何让不同项目的消息发送到不同的群?

解决方案

在项目的 .env 文件中,配置不同项目的群机器人的 Webhook 地址。

以 DingTalk 为例,配置如下:

DINGTALK_ENABLED=1
#项目A的群机器人的Webhook地址
DINGTALK_WEBHOOK_URL_PROJECT_A=https://oapi.dingtalk.com/robot/send?access_token={access_token_of_project_a}
#项目B的群机器人的Webhook地址
DINGTALK_WEBHOOK_URL_PROJECT_B=https://oapi.dingtalk.com/robot/send?access_token={access_token_of_project_b}
#保留默认WEBHOOK_URL,发送日报或者其它项目将使用此URL
DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token={access_token}

飞书和企业微信的配置方式类似。

如何让不同的Gitlab服务器的消息发送到不同的群?

在项目的 .env 文件中,配置不同Gitlab服务器的群机器人的 Webhook 地址。

以 DingTalk 为例,配置如下:

DINGTALK_ENABLED=1
# Gitlab服务器A(http://192.168.30.164)的群机器人的Webhook地址
DINGTALK_WEBHOOK_192_168_30_164=https://oapi.dingtalk.com/robot/send?access_token={access_token_of_gitlab_server_a}
# Gitlab服务器B(http://example.gitlab.com)的群机器人的Webhook地址
DINGTALK_WEBHOOK_example_gitlab_com=https://oapi.dingtalk.com/robot/send?access_token={access_token_of_gitlab_server_b}

飞书和企业微信的配置方式类似。

优先级: 优先根据仓库名称匹配webhook地址,其次根据Gitlab服务器地址匹配webhook地址,如果都没有匹配到,则最后使用默认服务器地址

docker 容器部署时,连接Ollama 失败

可能原因

配置127.0.0.1:11434连接Ollama。由于docker容器的网络模式为bridge,容器内的127.0.0.1并不是宿主机的127.0.0.1,所以连接失败。

解决方案

在.env文件中修改OLLAMA_API_BASE_URL为宿主机的IP地址或外网IP地址。同时要配置Ollama服务绑定到宿主机的IP地址(或0.0.0.0)。

OLLAMA_API_BASE_URL=http://127.0.0.1:11434  # 错误
OLLAMA_API_BASE_URL=http://{宿主机/外网IP地址}:11434  # 正确

如何使用Redis Queue队列?

操作步骤

1.开发调试模式下,启动容器:

docker compose -f docker-compose.rq.yml up -d

2.生产模式下,启动容器:

docker compose -f docker-compose.prod.yml up -d

特别说明:

在 .env 文件中配置 WORKER_QUEUE,其值为 GitLab 域名,并将域名中的点(.)替换为下划线(_)。如果域名为 gitlab.test.cn,则配置为:

WORKER_QUEUE=gitlab_test_cn

如何配置企业微信和飞书消息推送?

1.配置企业微信推送

在企业微信群中添加一个自定义机器人,获取 Webhook URL。

更新 .env 中的配置:

#企业微信配置
WECOM_ENABLED=1  #0不发送企业微信消息,1发送企业微信消息
WECOM_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx  #替换为你的Webhook URL

2.配置飞书推送

在飞书群中添加一个自定义机器人,获取 Webhook URL。

更新 .env 中的配置:

#飞书配置
FEISHU_ENABLED=1
FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx #替换为你的Webhook URL

是否支持对 GitHub 代码库的 Review?

是的,支持。 需完成以下配置:

1.配置Github Webhook

  • 进入你的 GitHub 仓库 → Settings → Webhooks → Add webhook。
    • Payload URL: http://your-server-ip:5001/review/webhook(替换为你的服务器地址)
    • Content type选择application/json
    • 在 Which events would you like to trigger this webhook? 中选择 Just the push event(或按需勾选其他事件)
    • 点击 Add webhook 完成配置。

2.生成 GitHub Personal Access Token

  • 进入 GitHub 个人设置 → Developer settings → Personal access tokens → Generate new token。
  • 选择 Fine-grained tokens 或 tokens (classic) 都可以
  • 点击 Create new token
  • Repository access根据需要选择
  • Permissions需要选择Commit statuses、Contents、Discussions、Issues、Metadata和Pull requests
  • 点击 Generate token 完成配置。

3.配置.env文件

在.env文件中,配置GITHUB_ACCESS_TOKEN:

GITHUB_ACCESS_TOKEN=your-access-token  #替换为你的Access Token

同类项目

https://github.com/mimo-x/Code-Review-GPT-Gitlab

结语

AI-Codereview-GitLab项目以开放、易用、多样化为特色,无论你是刚入门还是团队骨干,都能从自动代码审查中收获更高效、更可靠的软件开发体验。欢迎试用、扩展并参与交流,让开发不再重复“人工低效”,开启智能代码治理新纪元!

   
36   次浏览       1 次
相关文章

DevOps转型融入到企业文化
DevOps 能力模型、演进及案例剖析
基于 DevOps 理念的私有 PaaS 平台实践
微软开发团队的DevOps实践启示
相关文档

DevOps驱动应用运维变革与创新
运维管理规划
如何实现企业应用部署自动化
运维自动化实践之路
相关课程

自动化运维工具(基于DevOps)
互联网运维与DevOps
MySQL性能优化及运维培训
IT系统运维管理

最新活动计划
AI辅助企业网络安全与治理 6-11[北京]
基于模型的数据治理 6-16[北京]
Spec 驱动开发(SDD)实战 6-12[北京]
具身智能技能与实践 6-11[厦门]
AI智能体开发技术实践 6-24[上海]
AI辅助软件测试方法与实践 6-26[在线]
 
 
最新文章
DevOps 道法术器,立体化实施框架
DevOps 中高效测试基础架构的最佳实践
DevOps 在公司项目中的实践落地
如何基于 Kubernetes 构建完整的 DevOps 流水线
阿里云Kubernetes实战
最新课程
DevOps体系实践、工具与平台
基于Kubernetes的DevOps实践
互联网运维与DevOps
基于Kubernetes构建企业容器云
企业级DevOps工作体系与平台
更多...   
成功案例
北京 DevOps体系实践、工具与平台
神龙汽车 DevOps体系实践、工具与平台
中国移动通信 网络规划与管理
某航空公司 IT规划与企业架构
某金融公司 IT服务管理(ITIL V3)
更多...