Last translated: 26 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

Deutsch | English | Español | français | 日本語 | 한국어 | Português | Русский | 中文

AI 代码审查助手

一个基于大语言模型(LLM)的自动化代码审查工具。通过 GitHub/GitLab Webhook 监听 PR/MR 变更事件,调用 AI 分析代码差异,并将审查意见自动发布到 PR/MR 评论区,同时支持多种通知渠道。

点击观看B站演示视频

由于 GitHub 平台限制,无法直接嵌入视频播放器。

核心功能

  • 跨平台支持: 无缝集成 GitHub 和 GitLab Webhook,实时监听 Pull Request / Merge Request 事件
  • 智能审查模式:
    • 精细审查 (/github_webhook, /gitlab_webhook): AI 对每个变更文件进行逐行分析,精准定位潜在问题。审查结果以结构化形式呈现(包含代码行定位、问题分类、严重等级、详细分析和改进建议),并拆分为多条独立评论
    • 概览审查 (/github_webhook_general, /gitlab_webhook_general): AI 对每个文件变更进行整体评估,生成 Markdown 格式的综合性审查意见
  • 自动化流程:
    • 自动发布 AI 审查意见(精细模式生成多条评论,概览模式每个文件生成一条)
    • 全文件审查完成后自动追加总结性评论
    • 未发现问题时自动发送友好提示
    • 异步处理机制确保 Webhook 快速响应
    • 基于 Redis 的 Commit SHA 去重机制
  • 灵活配置:
    • 环境变量管理基础配置
    • 提供 Web 管理面板 (/admin) 和配置 API (/config/*),支持:
      • GitHub/GitLab 仓库的 Webhook Secret 和 Access Token 管理
      • LLM 参数配置(API Key、Base URL、模型选择)
      • 通知渠道配置(企业微信机器人、自定义 Webhook)
      • 审查历史记录查询
    • 使用 Redis 持久化存储配置和审查结果
  • 通知体系:
    • 向企业微信和自定义 Webhook 推送审查摘要(含 PR/MR 链接、分支信息、审查概览)
    • Redis 存储审查结果(默认7天有效期),管理面板可视化查询,自动清理已关闭 PR/MR 记录
  • 部署方案: 支持 Docker 容器化部署或原生 Python 环境运行

🚀 快速入门

🐳 容器化快速部署

# 使用官方镜像
docker run -d -p 8088:8088 \
  -e ADMIN_API_KEY="your-key" \
  -e OPENAI_API_BASE_URL="https://api.openai.com/v1" \
  -e OPENAI_API_KEY="your-key" \
  -e OPENAI_MODEL="gpt-4o" \
  -e REDIS_HOST="your-redis-host" \
  -e REDIS_PASSWORD="your-redis-pwd"
  --name ai-code-review-helper \
  dingyufei/ai-code-review-helper:latest

📌 必填环境变量:

  • ADMIN_API_KEY - 管理后台鉴权密钥(默认值:change_this_unified_secret_key 请务必修改)
  • OPENAI_API_KEY - AI 服务认证密钥
  • REDIS_HOST - Redis 服务地址

配置指南

1. 关键环境变量

  • ADMIN_API_KEY: 必填。管理接口保护密钥,默认值change_this_unified_secret_key 必须修改
  • OPENAI_API_KEY: 必填。OpenAI API 访问密钥
  • OPENAI_MODEL: (默认: gpt-4o) 指定使用的 OpenAI 模型
  • OPENAI_API_BASE_URL: (可选) OpenAI API 基础地址,格式:http(s)://xxxx/v1 默认值:https://api.openai.com/v1
  • WECOM_BOT_WEBHOOK_URL: (可选) 企业微信机器人 Webhook 地址
  • REDIS_HOST: 必填。Redis 服务地址。未配置或连接失败将导致服务启动失败
  • REDIS_PORT: (默认: 6379) Redis 服务端口
  • REDIS_PASSWORD: (可选) Redis 认证密码
  • REDIS_DB: (默认: 0) Redis 数据库索引
  • REDIS_SSL_ENABLED: (默认: true) Redis SSL 连接开关。设为 false 禁用 SSL
  • (其他变量如 SERVER_HOST, SERVER_PORT, GITHUB_API_URL, GITLAB_INSTANCE_URL 等参考启动日志或源码)

2. 管理功能

  • 管理面板 (/admin): 提供可视化配置界面:
    • GitHub/GitLab 仓库的 Webhook Secret 和 Access Token 管理
    • 全局 LLM 参数配置(OpenAI API Key、Base URL、模型选择)
    • 通知渠道管理(企业微信机器人、自定义 Webhook)
    • 审查历史记录查询与管理
    • 所有操作需通过 ADMIN_API_KEY 认证
  • 配置 API: 提供 RESTful 接口 (/config/*) 支持编程式配置管理,需在请求头添加 X-Admin-API-Key 认证

配置持久化方案:

  • Redis (必需): 存储仓库配置、已处理 Commit SHA、审查结果(默认7天有效期,关闭/合并的 PR/MR 关联记录自动清理)。服务强依赖 Redis 运行
  • 环境变量: 主要用于加载全局配置(如 LLM 密钥、Redis 连接信息等)。运行时通过管理面板修改的配置会立即生效,但服务重启后会重新读取环境变量。建议通过环境变量管理需持久化的全局配置

使用流程

  1. 服务部署: 使用 Docker 或直接运行 Python 应用,确保配置必需环境变量(ADMIN_API_KEY, OPENAI_API_KEY, REDIS_HOST 等)
  2. 仓库配置: 通过管理面板 (/admin) 或 API 添加目标仓库,配置 Webhook Secret 和具备 PR/MR 评论权限的 Access Token
  3. Webhook 设置: 在 GitHub/GitLab 仓库设置中添加 Webhook:
    • Payload URL: 指向服务地址对应的 Webhook 端点(见下文)
    • Content type: application/json
    • Secret: 填写管理面板中配置的 Webhook Secret
    • Events: GitHub 选择 "Pull requests",GitLab 勾选 "Merge request events"
  4. 触发审查: 创建或更新 PR/MR 后,系统将自动执行代码审查

审查模式说明

  • 精细审查 (端点: /github_webhook, /gitlab_webhook):
    • AI 对每个文件变更进行细粒度分析,生成结构化审查意见(含具体代码行定位)
    • 每个问题作为独立评论发布(尽可能关联到具体代码行)
    • AI 需输出标准 JSON 格式结果,系统解析后转换为 PR/MR 评论
    • 推荐使用指令遵循能力强、JSON 输出稳定的模型(如 GPT-4 系列)。如遇评论异常,请检查日志中 LLM 原始输出是否符合 JSON 格式要求
  • 概览审查 (端点: /github_webhook_general, /gitlab_webhook_general):
    • AI 对文件变更进行整体评估,生成 Markdown 格式的综合性评论
    • 适用于需要宏观评估变更,或精细模式输出不稳定时使用

开发模式

# 1. 克隆仓库
git clone https://github.com/dingyufei615/ai-code-review-helper.git
cd ai-code-review-helper

# 2. 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 3. 安装依赖
pip install -r requirements.txt

# 4. 配置环境变量 (参考 .env.example 或 配置 部分)

# 5. 启动服务
python -m api.ai_code_review_helper

# 6. 运行测试 (可选)
python -m unittest discover tests

重要提示

  • 安全建议: 务必使用高强度 ADMIN_API_KEY,妥善保管各类 Token 和 Secret
  • 成本控制: 注意 LLM 服务的 API 调用费用
  • 日志排查: 服务运行时会在控制台输出详细日志,便于问题诊断
  • Redis 依赖: 服务正常运行必须依赖 Redis 存储服务

贡献指南

本项目 90% 代码由 Aider + Gemini 协作完成 欢迎提交 Pull Request 或 Issue 参与贡献