基于docker的AI-Codereview-Gitlab部署实战教程

 更新时间:2025年05月07日 09:21:24   作者:一点空白  
AI-Codereview-Gitlab是一个基于大模型的自动化代码审查工具,帮助开发团队在代码合并或提交时,快速进行智能化的审查(Code Review),提升代码质量和开发效率,这篇文章主要介绍了基于docker的AI-Codereview-Gitlab部署实战 ,需要的朋友可以参考下

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

主要功能

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

工作原理

当用户在 GitLab 上提交代码(如 Merge Request 或 Push 操作)时,GitLab 将自动触发 webhook事件,调用本系统的接口。系统随后通过第三方大模型对代码进行审查,并将审查结果直接反馈到对应的 Merge Request 或 Commit 的Note 中,便于团队查看和处理。

以上均为官方描述,下面进行实战部署操作。

部署实战

官方给了两种部署方案,分别是Docker部署和本地Python环境部署,我们采用的是第一种,并且根据实战操作对部分内容进行了修改。

1. 前期环境准备

操作系统:centos7

Docker版本:24.0.0

Docker-Compose版本:v2.28.0

git版本:1.8.3.1

  • Docker国内镜像源设置:

    vim /etc/docker/daemon.json

    将daemon.json改为如下内容:

    { 
         "registry-mirrors": ["https://registry.docker-cn.com","https://pee6w651.mirror.aliyuncs.com"],
         "live-restore": true
    }

    保存成功后,运行如下命令进行重新加载:

    systemctl daemon-reload
    systemctl restart docker

2.获取源码

实战命令(由于访问GitHub经常超时或者时间较长):

cd /opt
git clone https://gitcode.com/gh_mirrors/ai/AI-Codereview-Gitlab.git
cd AI-Codereview-Gitlab

官方命令:

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

3. 配置文件

获取源码后,在AI-Codereview-Gitlab目录下,创建配置文件,执行如下命令:

cp conf/.env.dist conf/.env
vim conf/.env

编辑 conf/.env 文件,配置以下关键参数:

大模型供应商配置参数,此处采用本地ollama部署的Deepseek:32B的大模型,因此修改如下参数部分:

#大模型供应商配置,支持 deepseek, openai,zhipuai,qwen 和 ollama
LLM_PROVIDER=ollama
...
#OllaMA settings; 注意: 如果使用 Docker 部署,127.0.0.1 指向的是容器内部的地址。请将其替换为实际的 Ollama服务器IP地址。
OLLAMA_API_BASE_URL=http://127.0.0.1:11434
OLLAMA_API_MODEL=deepseek-r1:32b
...

Gitlab配置,由于本地GitLab端口不是默认80,因此修改如下参数部分:

#Gitlab配置
GITLAB_URL=http://192.168.1.111:9080/ #部分老版本Gitlab webhook不传递URL,需要开启此配置,示例:https://gitlab.example.com
#GITLAB_ACCESS_TOKEN={YOUR_GITLAB_ACCESS_TOKEN} #系统会优先使用此GITLAB_ACCESS_TOKEN,如果未配置,则使用Webhook 传递的Secret Token

同时还需要修改api.py文件内容,修改内容如下:

将
def handle_github_webhook(event_type, data):
    # 获取GitHub配置
    github_token = os.getenv('GITHUB_ACCESS_TOKEN') or request.headers.get('X-GitHub-Token')
...
改为:
def handle_github_webhook(event_type, data):
    # 获取GitHub配置
    github_token = os.getenv('GITHUB_ACCESS_TOKEN')
...
  • 推送配置,由于本次没有设置企微或钉钉推送,因此未进行相关配置,有需求根据env中的提示进行配置。

4. 镜像修改

官方配置的镜像源部分位于境外,导致部署过程中下载较慢或者网络异常,因此需要修改docker-compose.yml和Dockerfile中的部分参数,具体如下:

  • 修改docker-compose.yml中的image参数:

修改Dockerfile中Python 基础镜像和依赖源参数:

# 使用官方的 Python 基础镜像改为swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.10-slim国内
FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.10-slim AS base
...
# 安装依赖加上国内源
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/

修改完成后进行保存。

5. 启动服务

docker-compose up -d

6. 验证部署

7. 配置 GitLab Webhook

创建Access Token

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

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

注:创建的Access Token需要复制后单独保存,否则无法再次获取。

配置 Webhook

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

备注

  • Token使用优先级
    - 系统优先使用 .env 文件中的 GITLAB_ACCESS_TOKEN。
    - 如果 .env 文件中没有配置 GITLAB_ACCESS_TOKEN,则使用 Webhook 传递的Secret Token。
  • 网络访问要求
    - 请确保 GitLab 能够访问本系统。
    - 若内网环境受限,建议将系统部署在外网服务器上。

8. 配置消息推送

配置钉钉推送

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

更新 .env 中的配置:

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

企业微信和飞书推送配置类似。

最终效果

到此这篇关于基于docker的AI-Codereview-Gitlab部署实战教程的文章就介绍到这了,更多相关docker AI-Codereview-Gitlab部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何删除docker-register镜像及none无效镜像详解

    如何删除docker-register镜像及none无效镜像详解

    这篇文章主要给大家介绍了关于如何删除docker-register镜像及none无效镜像的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • 教你使用docker安装elasticsearch和head插件的方法

    教你使用docker安装elasticsearch和head插件的方法

    这篇文章主要介绍了docker安装elasticsearch和head插件,安装时需要下载镜像和修改系统参数,本文分流程给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Docker Desktop常见的几种启动失败问题解决方法

    Docker Desktop常见的几种启动失败问题解决方法

    使用Docker Desktop 可以很方便的启用 Kubernetes,下面这篇文章主要给大家介绍了关于Docker Desktop常见的几种启动失败问题解决方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 解决docker数据文件过大导致根磁盘满的问题

    解决docker数据文件过大导致根磁盘满的问题

    本篇文章主要介绍了解决docker数据文件过大导致根磁盘满的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • docker安装redis挂载容器卷同时开启持久化

    docker安装redis挂载容器卷同时开启持久化

    本文主要介绍了docker安装redis挂载容器卷同时开启持久化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Docker使用Swarm组建集群的方法

    Docker使用Swarm组建集群的方法

    Docker 使用 Swarm 可以很方便的在多个主机上创建容器集群,并且容器之间可以跨主机网络通信。这篇文章主要介绍了Docker使用Swarm组建集群,需要的朋友可以参考下
    2017-11-11
  • IntelliJ IDEA中Docker使用方式

    IntelliJ IDEA中Docker使用方式

    本文介绍了如何在IntelliJ IDEA中使用Docker插件进行Docker的配置和使用,包括下载插件、启动Docker守护进程、配置Docker注册表、构建Docker镜像以及发布镜像加载容器配置
    2024-11-11
  • SpringBoot打包成Docker镜像的项目实践

    SpringBoot打包成Docker镜像的项目实践

    Spring Boot和Docker,可以方便地将应用程序部署到不同的环境中,本文主要介绍了SpringBoot打包成Docker镜像的项目实践,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Docker使用、容器迁移的方案详解

    Docker使用、容器迁移的方案详解

    Docker 是一个开源的容器化平台,用于打包、部署和运行应用程序及其依赖环境,本文给大家介绍Docker使用、容器迁移的方案,感兴趣的朋友一起看看吧
    2025-04-04
  • docker-compose如何实现滚动更新

    docker-compose如何实现滚动更新

    这篇文章主要介绍了docker-compose如何实现滚动更新方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论