Skip to content

wufei-png/AI-Codereview-Gitlab-Opencode

Repository files navigation

Push图片

Fork from https://github.com/sunmh207/AI-Codereview-Gitlab,but use opencode backend.

项目简介

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

功能

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

效果图:

MR图片

Note图片

Dashboard图片

原理

当用户在 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}

#OpenCode Agent Review配置(可选)
#开启后webhook收到PR/MR事件时会发送请求到opencode serve的API进行review
OPENCODE_ENABLED=0  # 0关闭,1开启
OPENCODE_API_URL=http://localhost:4096  # OpenCode Serve API地址
OPENCODE_AGENT_NAME=code-reviewer  # Agent名称
# 如果 OpenCode 服务器启用了认证,需要配置以下两项
# OPENCODE_SERVER_USERNAME=opencode
# OPENCODE_SERVER_PASSWORD=your-password

#LLM Review开关(设置为0则不通过内置LLM进行Code Review)
LLM_REVIEW_ENABLED=1  # 0关闭,1开启

2. 启动服务

docker-compose up -d

3. 验证部署

方案二:本地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:

备注

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

配置消息推送

1.配置钉钉推送

  • 在钉钉群中添加一个自定义机器人,获取 Webhook URL。
  • 更新 .env 中的配置:
    #钉钉配置
    DINGTALK_ENABLED=1  #0不发送钉钉消息,1发送钉钉消息
    DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=xxx #替换为你的Webhook URL
    

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

配置 OpenCode Agent Review

OpenCode Agent Review 是一个可选的代码审查功能,可以与内置的 LLM Review 功能并行使用或独立使用。

1. 启用 OpenCode Agent Review

  • 确保已部署 OpenCode Serve 服务(参考 OpenCode 官方文档),通常:opencode web --hostname 0.0.0.0 --port 4096
  • 更新 .env 中的配置:
    # OpenCode Agent Review配置
    OPENCODE_ENABLED=1  # 0关闭,1开启
    OPENCODE_API_URL=http://127.0.0.1:4096  # 替换为你的OpenCode Serve API地址
    OPENCODE_AGENT_NAME=code-reviewer  # 替换为你的Agent名称
    
    # 如果 OpenCode 服务器启用了认证,需要配置以下两项
    OPENCODE_SERVER_USERNAME=opencode
    OPENCODE_SERVER_PASSWORD=your-password
  • opencode示例配置

2. 功能说明

  • 当 webhook 收到 GitHub/GitLab/Gitea 的 PR/MR 事件时,如果 OPENCODE_ENABLED=1,系统会自动调用 OpenCode API 创建 session 并发送 review 请求
  • OpenCode Review 和内置 LLM Review 可以同时启用,两者互不影响
  • 如果只需要使用 OpenCode Review,可以设置 LLM_REVIEW_ENABLED=0 来关闭内置 LLM Review

常见问题

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

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

python -m biz.cmd.review

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

2.其它常见问题

参见 常见问题

🏆 Code Review Pro 版

功能更丰富的 AI Code Review 版本

体验站: https://demo.mzfuture.com

项目介绍与使用说明 Code Review Pro 版

快速启动命令

 curl -fsSL https://raw.githubusercontent.com/sunmh207/AI-Codereview-Gitlab/refs/heads/main/scripts/pro/install.sh | bash

多种统计图 多种统计图

成员提交分析 成员提交分析

Deep Review Deep Review

项目哨兵 项目哨兵

交流

若本项目对您有帮助,欢迎 Star ⭐️ 或 Fork。 有任何问题或建议,欢迎提交 Issue 或 PR。

也欢迎加微信/微信群,一起交流学习。

Star History

Star History Chart

About

Fork from https://github.com/sunmh207/AI-Codereview-Gitlab,but use **opencode backend**.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages