SuperAPI AI 工具集

AI-Codereview-Gitlab

AI-Codereview-Gitlab 是一个基于大模型的 GitLab 自动代码审查工具,帮助开发团队在代码合并或提交时快速进行智能化审查,提升代码质量和开发效率。它兼容 DeepSeek、ZhipuAI、OpenAI、Anthropic、通义千问和 Ollama 等多种模型,可将审查结果推送到钉钉、企业微信或飞书,并支持基于 GitLab、GitHub、Gitea Commit 记录自动生成日报。工具提供可视化 Dashboard 展示审查记录和项目、开发者统计,支持 Docker 和本地 Python 环境部署。可选 Agentic Review 模式允许 LLM 在本地克隆的代码库中自主探索,产出更全面的审查结果。

访问官网

工具介绍

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

用途

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

主要能力

  • 多模型支持:兼容 DeepSeek、ZhipuAI、OpenAI、Anthropic、通义千问和 Ollama,可自由选择。
  • 消息即时推送:审查结果一键直达钉钉、企业微信或飞书。
  • 自动化日报生成:基于 GitLab、GitHub、Gitea Commit 记录,自动整理每日开发进展。
  • 可视化 Dashboard:集中展示所有 Code Review 记录,提供项目统计、开发者统计。
  • Review Style 可选:提供专业型、讽刺型、绅士型、幽默型四种风格。
  • Agentic Review 模式(可选):LLM 拥有工具调用能力(read_file / 沙箱 run_command),可在本地克隆的代码库内自主探索,产出更全面的 review 结果。shell 默认仅允许读类命令(ls / cat / grep / find / git log 等),具备沙箱、路径越界检查、30s 超时三重防护。任意阶段失败(clone / fetch / LLM / 工具调用)自动降级回 diff_only,保证至少返回与原版一致的 review。

使用方式

Docker 部署

配置 conf/.env 文件中的关键参数后,主服务访问 http://your-server-ip:5001 显示 "The code review server is running." 表示启动成功;Dashboard 访问 http://your-server-ip:5002 可看到审查日志页面。

本地 Python 环境部署

使用 Python 环境(建议虚拟环境 venv,Python 版本 3.10+)安装项目依赖,配置文件同 Docker 方案中的 .env。

配置 GitLab Webhook

  • 方法一:在 GitLab 个人设置中创建 Personal Access Token。
  • 方法二:在 GitLab 项目设置中创建 Project Access Token。 在 GitLab 项目设置中配置 Webhook:
  • URL:http://{your-server-ip}:5001/review/webhook
  • Trigger Events:勾选 Push Events 和 Merge Request Events(不要勾选其它 Event)
  • Secret Token:上面配置的 Access Token(可选)

系统优先使用 .env 文件中的 GITLAB_ACCESS_TOKEN;如果未配置,则使用 Webhook 传递的 Secret Token。需确保 GitLab 能够访问本系统,内网环境受限时建议部署在外网服务器。

消息推送配置

以钉钉为例,在钉钉群中添加自定义机器人获取 Webhook URL,更新 .env 中的配置:

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

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

Agentic Review Mode(可选)

通过 REVIEW_STRATEGY 环境变量切换:

  • diff_only(默认):仅对 diff 做 review,行为与原版完全一致。
  • agentic:LLM 拥有工具调用能力(read_file / 沙箱 shell),可在本地克隆的代码库内自主探索,产出更全面的 review 结果。

agentic 模式会按需在 REPO_CACHE_DIR 下克隆/更新目标项目(约 10MB~2GB/项目)。任意阶段失败(clone / fetch / LLM / 工具调用异常)都会自动降级回 diff_only。额外开销:内存单次 session 峰值约 500MB;Token 单次 review 平均 5k-50k tokens(diff_only 的 3-10 倍);时延 30s~5min/review。shell 工具有沙箱(命令白名单+黑名单+路径越界检查+30s 超时),默认只允许读类命令;如需放开请通过 AGENT_SHELL_ALLOWLIST / AGENT_SHELL_BLOCKLIST 调整。

适用场景

适用于使用 GitLab 进行代码托管、希望引入 AI 辅助 Code Review 的开发团队,尤其适合需要将审查结果推送到钉钉/企业微信/飞书进行协作、并自动生成开发日报的场景。也适合希望自托管部署、对数据有控制需求的团队。

限制

  • 依赖第三方大模型,审查效果受所选模型能力影响。
  • Agentic 模式增加内存、Token 消耗和时延。
  • 内网环境受限时需部署在外网服务器。
  • 其他具体限制或收费信息暂未提供。