学习webhook与coze实现ai code review

AI代码审查工具

github github.com/zhangjiadi2...

测试可使用内网穿透工具将本地服务暴露到公网, 然后配置对应webhook. 日志目前只保留发送请求的message以及ai审查报告 .

ai建议使用coze, 直接使用gpt相关接口, 暂时每次都得携带大量文本 .

项目概述

这是一个基于Node.js开发的智能代码审查工具(demo)

核心特性

🚀 多AI服务支持

  • 硅基流动AI: 基于深度学习的代码分析引擎
  • Coze智能体: 专业的代码审查AI助手
  • 动态切换: 支持运行时切换不同的AI服务

🔗 无缝集成

  • GitHub Webhook: 自动监听代码推送事件
  • 实时处理: 提交后立即触发审查流程
  • 零配置部署: 简单的环境变量配置即可运行

📊 智能分析

  • 代码质量评估: 全面分析代码结构、性能和安全性
  • 最佳实践建议: 基于行业标准提供改进建议
  • 多语言支持: 支持JavaScript、Python、Java等主流编程语言

💾 结果持久化

  • 本地存储: 审查结果自动保存为结构化文本文件
  • 历史追踪: 完整的审查历史记录
  • 便于查阅: 清晰的文件命名和内容格式

技术架构

系统架构图

arduino 复制代码
GitHub Repository
       ↓ (Webhook)
   Express Server
       ↓
   Webhook Handler
       ↓
   GitHub Service ←→ AI Service Factory
       ↓                    ↓
   Diff Analysis      [SiliconFlow | Coze]
       ↓                    ↓
   File Storage ←── Review Results

核心组件

1. Web服务层 (src/index.js)
  • 基于Express.js的HTTP服务器
  • 提供健康检查、日志查看等管理接口
  • 优雅的错误处理和请求日志
2. Webhook处理器 (src/routes/webhook.js)
  • GitHub事件监听和处理
  • 提交数据解析和验证
  • 异步任务调度
3. GitHub服务 (src/services/github.js)
  • GitHub API集成
  • 代码差异获取
  • 智能文件过滤(仅处理代码文件)
4. AI服务工厂 (src/services/ai/)
  • 基础抽象类 (base.js): 定义AI服务通用接口
  • 硅基流动服务 (siliconflow.js): 集成硅基流动AI API
  • Coze服务 (coze.js): 集成Coze智能体平台
  • 服务工厂 (index.js): 动态服务选择和管理

工作流程

1. 代码提交触发

sequenceDiagram Developer->>GitHub: git push GitHub->>AI Review Tool: Webhook Event AI Review Tool->>GitHub API: Get Commit Diff GitHub API-->>AI Review Tool: Return Diff Data

2. AI分析处理

sequenceDiagram AI Review Tool->>AI Service: Send Code Diff AI Service->>AI Provider: API Request AI Provider-->>AI Service: Analysis Result AI Service-->>AI Review Tool: Formatted Review

3. 结果存储

sequenceDiagram AI Review Tool->>File System: Save Review AI Review Tool->>Logs: Record Process AI Review Tool-->>GitHub: Response OK

安装与配置

环境要求

  • Node.js 14.0+
  • npm 6.0+

快速开始

  1. 克隆项目
bash 复制代码
git clone <repository-url>
cd ai-code-review
  1. 安装依赖
bash 复制代码
npm install
  1. 环境配置
bash 复制代码
cp .env.example .env
# 编辑.env文件,配置必要的API密钥
  1. 启动服务
bash 复制代码
# 开发模式
npm run dev

# 生产模式
npm start

配置说明

基础配置
env 复制代码
# 服务端口
PORT=3000

# 环境类型
NODE_ENV=development
GitHub集成
env 复制代码
# GitHub访问令牌(可选,用于私有仓库)
GITHUB_TOKEN_AI=your_github_token
AI服务配置
env 复制代码
# 当前使用的AI服务类型
AI_SERVICE_TYPE=coze

# 硅基流动AI配置
SILICONFLOW_API_KEY=your_siliconflow_key
SILICONFLOW_MODEL=deepseek-chat

# Coze智能体配置
COZE_API_URL=https://api.coze.cn/v3/chat
COZE_API_KEY=your_coze_key
COZE_BOT_ID=your_bot_id

使用指南

GitHub Webhook配置

  1. 进入GitHub仓库设置页面
  2. 选择"Webhooks" → "Add webhook"
  3. 配置参数:
    • Payload URL : http://your-domain.com/webhook/github
    • Content type : application/json
    • Events: 选择"Just the push event"
  4. 保存配置

审查结果查看

审查结果自动保存在reviews/目录下,文件命名格式:

css 复制代码
review_[service]_[commit_id]_[timestamp].txt

示例文件内容:

markdown 复制代码
代码审查报告 (coze)
==========================================

提交ID: abc123def456
提交信息: 修复用户登录bug
作者: 张三
审查时间: 2024-01-01T10:00:00.000Z

详细建议:
------------------------------------------

1. 安全性建议:
   - 建议在密码验证前添加输入验证
   - 考虑使用bcrypt进行密码哈希

2. 性能优化:
   - 数据库查询可以添加索引优化
   - 建议使用连接池管理数据库连接

3. 代码规范:
   - 变量命名建议使用驼峰命名法
   - 建议添加必要的错误处理

项目结构

bash 复制代码
ai-code-review/
├── src/                          # 源代码目录
│   ├── index.js                  # 应用入口文件
│   ├── routes/                   # 路由处理
│   │   ├── webhook.js           # Webhook事件处理
│   │   ├── debug.js             # 调试接口
│   │   └── logs.js              # 日志查看接口
│   ├── services/                # 核心服务
│   │   ├── ai/                  # AI服务模块
│   │   │   ├── base.js          # AI服务基类
│   │   │   ├── index.js         # 服务工厂
│   │   │   ├── siliconflow.js   # 硅基流动AI服务
│   │   │   └── coze.js          # Coze智能体服务
│   │   ├── github.js            # GitHub API服务
│   │   └── logger.js            # 日志服务
│   ├── middleware/              # 中间件(预留)
│   ├── utils/                   # 工具函数(预留)
│   └── public/                  # 静态资源
├── reviews/                     # 审查结果存储
├── messages/                    # AI请求消息存储
├── logs/                        # 系统日志
├── test/                        # 测试文件
├── package.json                 # 项目配置
├── .env                         # 环境变量
└── README.md                    # 项目说明

开发特性

代码质量保障

  • ESLint: 代码风格检查
  • 错误处理: 完善的异常捕获机制
  • 日志系统: 详细的操作日志记录

扩展性设计

  • 插件化架构: 易于添加新的AI服务
  • 配置驱动: 通过环境变量灵活配置
  • 模块化设计: 清晰的代码组织结构

性能优化

  • 异步处理: 非阻塞的事件处理
  • 智能过滤: 仅处理代码文件,忽略配置和资源文件
  • 错误恢复: 优雅的错误处理,避免服务中断

最佳实践

安全建议

  • 使用HTTPS部署生产环境
  • 定期轮换API密钥
  • 限制GitHub Token权限范围
  • 配置防火墙规则

性能优化

  • 定期清理历史文件
  • 监控API调用频率
  • 配置适当的超时时间
  • 使用负载均衡(高并发场景)
相关推荐
大模型服务器厂商1 小时前
京东AI投资版图扩张:具身智能与GPU服务器重构科研新范式
服务器·人工智能·重构
Albert_Lsk2 小时前
【2025/07/21】GitHub 今日热门项目
人工智能·开源·github·开源协议
心情好的小球藻2 小时前
OpenCV 零基础到项目实战 | DAY 1:图像基础与核心操作
人工智能·opencv·计算机视觉
WXX_s4 小时前
【OpenCV篇】OpenCV——01day.图像基础
人工智能·opencv·计算机视觉
c7695 小时前
【文献笔记】ARS: Automatic Routing Solver with Large Language Models
人工智能·笔记·语言模型·自然语言处理·llm·论文笔记·cvrp
柏峰电子5 小时前
光伏电站气象监测系统:为清洁能源高效发电保驾护航
大数据·人工智能
后端小张5 小时前
智谱AI图生视频:从批处理到多线程优化
开发语言·人工智能·ai·langchain·音视频
零一数创5 小时前
智慧能源驱动数字孪生重介选煤新模式探索
人工智能·ue5·能源·数字孪生·ue·零一数创
叫我:松哥6 小时前
基于python django深度学习的中文文本检测+识别,可以前端上传图片和后台管理图片
图像处理·人工智能·后端·python·深度学习·数据挖掘·django
程序员岳焱6 小时前
从 0 到 1:Spring Boot 与 Spring AI 打造智能客服系统(基于DeepSeek)
人工智能·后端·deepseek