GitLab Code Review

🔍 AI 自动审查代码,整点推送报告

定时自动审查 GitLab 代码提交,AI 深度分析安全漏洞、性能隐患与代码质量,整点推送审查报告,提升团队协作效率。

收藏
4.5k
安装
1.3k
版本
1.0.3
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

GitLab Code Review 是一款面向开发团队的自动化代码审查工具,通过定时监控 GitLab 仓库新提交,触发 AI 驱动的多维度代码分析,并自动推送审查报告至指定渠道。

配置流程

用户通过对话触发配置向导,依次提供 GitLab URL、项目路径(group/project 格式)、目标分支及 Personal Access Token(需 read_api 权限)。系统自动生成环境变量文件并注入定时任务至 HEARTBEAT.md,实现整点自动执行。

定时执行机制

Heartbeat 系统在整点前后 10 分钟窗口触发检查:
1. 调用 fetch_commits.py 抓取未审查提交

2. 生成 pending_review_*.json 待审队列

3. AI 执行安全、性能、质量、可测试性四维深度审查

4. 输出完整 Markdown 报告至 memory/ 目录

5. 推送简化版报告至用户对话或指定群聊

审查维度

  • 安全性:SQL 注入、XSS、CSRF、敏感信息泄露、权限校验
  • 性能:N+1 查询、循环内数据库操作、内存泄漏、缓存策略
  • 代码质量:命名规范、注释完整性、错误处理、重复代码
  • 可测试性:依赖注入、单一职责、测试覆盖评估

显著优点

1. 零侵入集成:无需修改现有 CI/CD 流程,通过 GitLab API 只读拉取数据
2. 多维度专家级审查:超越传统 lint 工具,提供安全漏洞与架构设计层面的深度分析

3. 异步非阻塞:整点批量处理,不占用开发实时工作流

4. 可扩展推送:支持个人对话与多群聊并行通知,适配不同团队规模

潜在局限

1. Token 权限敏感:需 read_api 权限,若 Token 泄露可能导致代码库信息暴露
2. 定时延迟性:整点触发机制意味着问题代码最长可能延迟 1 小时才被检出

3. AI 审查成本:每次新提交均触发 LLM 调用,高频提交场景下 token 消耗显著

4. 单分支限制:当前版本仅支持单一分支监控,多分支项目需多次配置

5. 状态文件依赖gitlab_review_state.json 本地维护,多实例部署时可能产生状态不一致

适合人群

  • 采用 GitLab 托管代码的中小技术团队(10-100 人)
  • 缺乏专职代码审查人员或审查流程不规范的敏捷团队
  • 追求自动化质量门禁但尚未部署 SonarQube 等重型平台的团队
  • 需要异步、非侵入式代码审查补充的成熟工程团队

常规风险

| 风险类型 | 具体表现 | 缓解措施 |
|---------|---------|---------|
| 凭证泄露 | `.env` 文件中的 Personal Access Token 被意外提交或权限过大 | 使用 GitLab Project Access Token 替代 Personal Token,最小权限原则,定期轮换 |
| 数据残留 | `pending_review_*.json` 未及时清理导致敏感代码片段本地留存 | 审查完成后强制删除临时文件,配置磁盘加密 |
| API 限流 | 高频触发导致 GitLab API 请求被限流或封禁 | 增加指数退避重试机制,合理设置检查间隔 |
| 误判误报 | AI 对业务上下文理解不足产生无效警报 | 建立团队级审查规则白名单,人工复核高优先级问题 |
| 供应链攻击 | `fetch_commits.py` 依赖的 `requests`、`python-dotenv` 包被投毒 | 锁定依赖版本,使用私有 PyPI 镜像,SBOM 审计 |

GitLab Code Review 内容

scripts文件夹
手动下载zip · 4.9 kB
fetch_commits.pytext/plain
请选择文件