这是一个基于AI的Git增量代码智能审查与测试用例生成系统,能够:
- 🔍 智能代码审查:分析代码变更,识别潜在问题
- 🧪 自动生成测试用例:根据代码变更自动生成单元测试和场景测试
- 🌐 支持多种Git平台:GitHub、GitLab等
- ⚙️ 内存任务队列:使用MockCelery模式
- 📧 多种通知方式:支持邮件、企业微信群机器人通知
- 🚀 性能优化:异步处理、连接池、内存缓存优化
- 🎯 跨平台支持:Windows、Linux、macOS一键启动
codeReview/
├── app/ # 后端应用
│ ├── __init__.py # Flask应用初始化
│ ├── routes.py # API路由
│ ├── tasks.py # Celery任务
│ ├── task_processor.py # 任务处理器
│ ├── task_state.py # 任务状态管理
│ ├── statistics.py # 统计功能
│ ├── models.py # 数据模型
│ ├── logger.py # 日志系统
│ ├── config_manager.py # 配置管理
│ ├── exceptions.py # 异常定义
│ └── utils/ # 工具模块
│ ├── git_api.py # Git API客户端
│ ├── llm_api.py # LLM API客户端
│ ├── async_llm_api.py # 异步LLM API
│ └── crypto.py # 加密工具
├── config/ # 配置文件
│ ├── systems.yaml # 系统配置
│ └── prompts.yaml # 提示词模板
├── static/ # 静态资源
│ ├── css/ # 样式文件
│ └── js/ # JavaScript文件
├── templates/ # 前端模板
│ └── index.html # 主页面
├── scripts/ # 启动脚本
│ ├── start.py # 跨平台Python启动脚本
│ └── start.sh # Linux/Mac Shell启动脚本
├── main.py # 主程序
├── requirements.txt # Python依赖
└── README.md # 项目说明
# 1. 复制环境变量模板
cp env.docker.example .env
# 2. 编辑.env文件,设置必要的环境变量
# 特别是DEEPSEEK_API_KEY
# 3. 运行Docker部署脚本
chmod +x docker-deploy.sh
./docker-deploy.shDocker部署特点:
- ✅ 一键部署,无需手动安装依赖
- ✅ 自动挂载配置文件、数据目录、日志目录
- ✅ 支持环境变量配置
- ✅ 包含健康检查和资源限制
- ✅ 支持数据持久化存储
# 安装依赖
pip install -r requirements.txt
# 设置环境变量
export DEEPSEEK_API_KEY='your-api-key'
# 启动应用
python scripts/start.py# 给脚本执行权限
chmod +x scripts/start.sh
# 运行启动脚本
./scripts/start.sh# 1. 安装依赖
pip install -r requirements.txt
# 2. 设置环境变量
export DEEPSEEK_API_KEY='your-api-key'
# 3. 可选:自定义端口
export PORT=8080
# 4. 启动应用
python main.py- 环境一致性:确保在不同环境下运行一致
- 快速部署:无需安装Python依赖,一键启动
- 数据持久化:配置文件、数据、日志自动挂载到宿主机
- 资源管理:内置资源限制和健康检查
- 易于维护:支持容器重启、更新等操作
# 确保已安装Docker和Docker Compose
docker --version
docker-compose --version# 复制环境变量模板
cp env.docker.example .env
# 编辑.env文件,设置必要的环境变量
nano .env # 或使用其他编辑器# 运行部署脚本
./docker-deploy.sh# 构建镜像
docker-compose build
# 启动服务
docker-compose up -d
# 查看状态
docker-compose ps| 宿主机目录 | 容器目录 | 说明 |
|---|---|---|
./config |
/app/config |
配置文件目录(只读) |
./data |
/app/data |
数据存储目录 |
./logs |
/app/logs |
日志文件目录 |
./cache |
/app/cache |
缓存文件目录 |
./.env |
/app/.env |
环境变量文件(只读) |
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 停止服务
docker-compose down
# 更新并重启服务
docker-compose pull && docker-compose up -d
# 进入容器
docker-compose exec codereview bash
# 查看资源使用情况
docker stats codereview-app-
容器启动失败
# 查看详细日志 docker-compose logs # 检查配置文件 docker-compose exec codereview ls -la /app/config/
-
端口冲突
# 修改docker-compose.yml中的端口映射 ports: - "8080:5001" # 改为其他端口
-
权限问题
# 检查目录权限 ls -la config/ data/ logs/ cache/ # 修复权限 chmod -R 755 config/ data/ logs/ cache/
DEEPSEEK_API_KEY: DeepSeek API密钥(必需)PORT: 服务器端口(可选,默认5001)HOST: 服务器主机(可选,默认0.0.0.0)SECRET_KEY: Flask密钥(可选,默认dev-secret-key)
支持邮件和企业微信群机器人通知。通知系统采用前后端分离的配置方式:
- 私密信息(如密码、Webhook URL)通过环境变量配置
- 公开配置(如收件人列表、开关状态)通过前端界面管理
export NOTIFICATION_EMAIL_SMTP_SERVER=smtp.gmail.com
export NOTIFICATION_EMAIL_SMTP_PORT=587
export NOTIFICATION_EMAIL_USERNAME=your-email@gmail.com
export NOTIFICATION_EMAIL_PASSWORD=your-app-password
export NOTIFICATION_EMAIL_USE_SSL=true
export NOTIFICATION_EMAIL_FROM_NAME="Code Review System"export NOTIFICATION_WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-key启动应用后,点击右上角的"通知配置"按钮可以:
- 启用/禁用邮件和企业微信通知
- 管理邮件收件人列表(添加/删除/展示)
- 设置企业微信@提醒用户
- 测试通知发送功能
注意:环境变量配置完成后需要重启应用才能生效。
- 编辑
config/systems.yaml,配置你的Git系统信息:systems: - id: "your-system-id" name: "你的系统名称" git_provider: "github" # 或 "gitlab" git_provider_url: "https://api.github.com" git_provider_token: "your-git-token" projects: - name: "你的项目名称" repo_url: "https://github.com/owner/repo"
python scripts/start.py特点:
- ✅ 无需安装额外依赖
- ✅ 任务在后台线程中执行
- ✅ 支持任务状态查询
- ✅ 完全兼容Celery API
项目采用统一的日志管理系统,提供专业级的日志记录功能:
- 自动日志轮转
- 多级别日志记录
- 任务专用日志器
- 性能监控
- 增量代码分析
- 潜在问题识别
- 代码质量评估
- 安全漏洞检测
- 单元测试生成
- 集成测试生成
- 边界条件测试
- 异常场景测试
- 多平台支持(GitHub、GitLab)
- 增量变更检测
- 分支管理
- 提交历史分析
- 任务完成/失败自动通知
- 支持邮件和企业微信群机器人
- 灵活的收件人配置
- 美观的HTML邮件模板
- HTTP连接池和重试机制
- 异步处理和并发控制
- 内存缓存和LRU缓存
- 优化的超时和连接配置
-
Python版本问题
- 确保Python版本 >= 3.8
- 使用
python3命令
-
依赖安装失败
- 检查网络连接
- 使用国内镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt
-
配置文件问题
- 确保
config/systems.yaml存在 - 检查YAML语法格式
- 确保
-
API密钥问题
- 设置正确的
DEEPSEEK_API_KEY - 检查API密钥是否有效
- 设置正确的
-
端口占用问题
- 使用
export PORT=8080指定其他端口 - 检查端口是否被其他服务占用
- 使用
- v1.0.0: 初始版本,支持基础代码审查功能
- v1.1.0: 添加测试用例生成功能
- v1.2.0: 支持多Git平台
- v1.3.0: 添加MockCelery模式,优化开发体验
- v1.4.0: 项目结构优化,文档整合,启动脚本改进
如果遇到问题,请:
- 查看日志文件获取详细错误信息
- 检查环境变量和配置文件
- 确保所有依赖已正确安装
- 参考文档的故障排除部分
欢迎提交Issue和Pull Request来改进项目!
本项目采用Apache 2.0 许可证。
