跳转至

常见问题解答 (FAQ)

本文档收集了 Code Review GPT Gitlab 项目使用过程中的常见问题和解决方案。

📦 安装与部署

Q1: Docker 容器启动失败怎么办?

解决方案

请按以下步骤排查:

  1. 检查 Docker 和 Docker Compose 版本

    docker --version
    docker compose version
    
    确保 Docker 20.10+ 和 Docker Compose v2 已安装。

  2. 查看容器日志

    docker compose logs backend
    docker compose logs frontend
    

  3. 检查端口占用

    # 检查端口是否被占用
    lsof -i :3000  # 前端端口
    lsof -i :8000  # 后端端口
    lsof -i :6379  # Redis 端口
    

  4. 重新构建并启动

    docker compose down
    docker compose up -d --build
    

Q2: 如何配置环境变量?

配置步骤

项目使用 .env 文件管理环境变量:

  1. 复制示例文件:

    cp .env.example .env
    

  2. 编辑 .env 文件,配置必要的变量:

  3. VITE_API_BASE_URL: 前端 API 基础地址
  4. VITE_DEV_PROXY_TARGET: 开发环境代理目标
  5. 其他必要的配置项

  6. 重启服务使配置生效:

    docker compose restart
    

🔧 配置问题

Q3: 如何配置 GitLab Webhook?

配置步骤

配置步骤如下:

  1. 获取 Webhook URL
  2. 格式:http://your-domain.com/api/webhook/gitlab/
  3. 注意:URL 必须以 /api/webhook/gitlab/ 结尾

  4. 在 GitLab 项目中配置 Webhook

  5. 进入项目设置 → Webhooks
  6. 填写 Webhook URL
  7. 选择触发事件:Merge Request eventsPush events
  8. 保存配置

  9. 在系统中启用项目审查

  10. 登录系统管理界面
  11. 进入项目列表
  12. 找到对应项目,启用代码审查功能

🚀 使用问题

Q4: 代码审查没有自动触发怎么办?

排查步骤

请检查以下几点:

  1. 检查项目是否启用审查
  2. 确认项目列表中的 review_enabled 状态为启用
  3. 确认 auto_review_on_mr 选项已开启

  4. 检查 Webhook 配置

  5. 确认 GitLab Webhook URL 配置正确
  6. 确认 Webhook 事件已正确选择
  7. 查看 Webhook 日志,确认请求是否到达

  8. 检查 Webhook 事件规则

  9. 确认项目已启用对应的 Webhook 事件规则
  10. 查看 Webhook Logs 确认事件是否被正确识别

  11. 查看系统日志

    docker compose logs -f backend
    

Q5: 代码审查结果没有发送通知?

排查步骤

排查步骤:

  1. 检查通知渠道配置
  2. 确认通知渠道已创建且状态为激活
  3. 确认项目已关联通知渠道
  4. 检查通知渠道的配置信息是否正确

  5. 检查审查状态

  6. 查看审查记录,确认审查状态为 completed
  7. 检查 notification_sent 字段状态
  8. 查看 notification_result 字段中的错误信息

  9. 测试通知渠道

  10. 在管理后台手动测试通知渠道
  11. 检查网络连接和 API 密钥是否有效

Q6: 如何查看代码审查历史记录?

查看方式

有多种方式查看:

  1. 通过前端界面
  2. 登录系统前端界面
  3. 进入"审查记录"页面
  4. 可以按项目、时间范围等条件筛选

  5. 通过管理后台

  6. 访问 http://localhost:8000/admin/
  7. 进入 Merge Request Reviews 菜单
  8. 查看所有审查记录

  9. 查看详细日志

  10. 进入"日志"页面查看详细的处理日志
  11. 可以查看 Webhook 接收、LLM 调用、通知发送等各个环节的日志

🔍 故障排除

Q7: Webhook 请求被拒绝或返回 403/401?

可能的原因

可能的原因:

  1. 检查 Webhook Secret Token
  2. 如果配置了 Secret Token,确保系统端也配置了相同的 Token

  3. 检查 GitLab Token 权限

  4. 确认 GitLab Token 有足够的权限访问项目
  5. 确认 Token 未过期

  6. 检查防火墙和网络

  7. 确认服务器可以访问 GitLab
  8. 确认 GitLab 可以访问 Webhook URL

  9. 查看请求日志

  10. 在 Webhook Logs 中查看详细的请求头和错误信息

Q8: 系统运行缓慢或超时?

优化建议

优化建议:

  1. 检查资源使用

    docker stats
    

  2. 优化 LLM 调用

  3. 使用更快的模型
  4. 减少审查的文件数量
  5. 配置合理的超时时间

  6. 数据库优化

  7. 定期清理旧的日志记录
  8. 为常用查询字段添加索引

  9. 增加资源

  10. 增加容器内存限制
  11. 使用更强大的服务器

📚 其他问题

Q9: 如何升级到新版本?

升级步骤

升级步骤:

  1. 备份当前数据

    # 备份数据库和配置
    cp backend/db.sqlite3 backend/db.sqlite3.backup
    cp .env .env.backup
    

  2. 拉取最新代码

    git pull origin main
    

  3. 更新依赖

    docker compose down
    docker compose build --no-cache
    docker compose up -d
    

  4. 执行数据库迁移

    docker compose exec backend python manage.py migrate
    

Q10: 支持哪些编程语言?

语言支持说明

理论上支持所有编程语言,因为:

  • 系统使用 LLM 进行代码审查,LLM 本身支持多种编程语言
  • 不依赖特定的语法分析器
  • 审查质量取决于 LLM 模型的能力

建议

建议: - 主流语言(Python、JavaScript、Java、Go 等)审查效果较好 - 对于特殊语言,可能需要定制 Prompt 以获得更好效果

Q11: 如何贡献代码或报告问题?

欢迎贡献

欢迎贡献:

  1. 报告问题
  2. 在 GitHub Issues 中提交问题
  3. 提供详细的错误信息和复现步骤

  4. 提交代码

  5. Fork 项目
  6. 创建功能分支
  7. 提交 Pull Request

  8. 联系维护者

  9. Email: mixuxin@163.com
  10. 微信: isxuxin

💡 提示

如果以上问题都无法解决您的问题,请:

  1. 查看项目 GitHub Issues
  2. 查看详细的系统日志
  3. 联系项目维护者获取帮助

祝您使用愉快! 🎉