GitLab AI 代码审查工具

用 Go 写了一个 GitLab AI 代码审查工具(大模型调用实践)

最近在学习大模型 API 调用,想找一个既实用又不复杂的场景练手。正好平时用 GitLab 做代码评审,每次盯着 diff 逐行看总觉得有些机械化的工作可以交给 AI。于是动手写了一个自动 Review 工具,顺便把调用 OpenAI API 的完整流程跑一遍。

📦 项目地址
👉 GitReviewAI https://github.com/yuhua2000/GitReviewAI

一、GitReviewAI:一个 GitLab 自动代码审查工具

🧠 是干嘛的?

一句话:
用 AI 自动审查 GitLab MR 的代码变更,并把意见贴到评论区。

提交 MR 后,它会自动:

  • 接收 GitLab Webhook 通知
  • 获取代码 diff
  • 调用 OpenAI 分析代码
  • 生成 Review 意见贴回 MR

⚙️ 核心思路:AI + Webhook 闭环

流程不复杂,关键是把这个闭环跑通:

1
MR 触发 → GitLab Webhook → 解析 diff → 调用 OpenAI → 生成意见 → 通过 GitLab API 贴评论

具体就是:

  • GitLab 发来 webhook 事件
  • 提取 diff 内容,控制 token 长度
  • 构造 Prompt,调用 GPT 分析
  • 把结果写回 MR 评论区

二、做了哪些东西?

1️⃣ Webhook 处理

  • 接收 GitLab MR 事件
  • 校验 Secret Token
  • 提取 diff 和文件变更信息
  • 过滤不需要审查的文件(如 lock 文件)

2️⃣ Prompt 设计(关键)

  • 设计 System Prompt:告诉 GPT 它是资深代码审查员
  • 约束输出维度:安全、性能、可读性、逻辑错误
  • 控制输出格式,方便展示

3️⃣ OpenAI 调用封装

  • 超时控制 + 重试机制
  • 错误日志记录
  • Token 用量统计

4️⃣ 评论回写

  • 通过 GitLab API 将审查意见贴到对应 MR
  • 支持多条意见批量提交

三、技术实现

  • Go
  • openai-go
  • GitLab Webhook + API
  • YAML 配置驱动
  • Docker 多阶段构建

四、这个项目解决什么问题?

一个很现实的问题:
小团队没精力每个 MR 都仔细 Review,但直接跳过又容易出问题。

这个工具的目标是:

  • 帮你做第一轮“机械审查”
  • 把明显问题(空指针、SQL 注入、死循环等)先筛出来
  • 不追求 100% 准确,但要好用、省时间

五、一些实际使用场景

1️⃣ 小团队提效

人少事多,MR 经常没人看。GitReviewAI 先过一遍,人工再重点看 AI 标记的地方。

2️⃣ 新手代码把关

实习生或新人提交的代码,AI 先扫一遍常见坑,带新人更省心。

3️⃣ 学习大模型调用

代码量不大,核心逻辑清晰,适合想学习如何在业务里集成 OpenAI 的同学。

六、当前状态

学习项目性质:

  • ✅ Webhook 处理跑通
  • ✅ OpenAI 调用跑通
  • ✅ MR 评论回写跑通
  • ✅ Docker 部署支持
  • 🚧 Prompt 持续优化中

七、为什么做这个?

主要还是出于学习目的,在实践中回答一个问题:
如何把大模型 API 调用嵌入到真实工作流中?

→ GitReviewAI
把“代码审查”这件事,用 AI + Webhook 的模式跑通一个完整闭环。

整体来说,更多是:
在动手过程中理解大模型调用和业务整合,而不是做一个完整产品。

八、总结

这个项目不复杂,但对我来说主要价值是:
把“Webhook 接收 → 调用 AI → 结果回写”这个链路完整跑通。

同时也验证了一点:

  • Prompt 设计直接决定输出质量
  • 大模型应用的关键不只是调 API,而是怎么把它嵌入业务流

📌 最后
这个项目更像是:
学习大模型 API 调用的实验项目。

如果你在折腾:

  • Go + OpenAI
  • GitLab 集成
  • 代码审查自动化
  • Webhook 处理

可以拿去参考或者改着玩。