# atomgit-pr-reviewer **Repository Path**: ai_application/atomgit-pr-reviewer ## Basic Information - **Project Name**: atomgit-pr-reviewer - **Description**: 基于 Golang 和 QWen Coder 的 AtomGit PR 代码审查机器人 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AtomGit PR 代码审查机器人 基于 Golang 和 QWen Coder 的自动化 PR 代码审查机器人,对接 AtomGit 代码托管平台。 ## 功能特性 - 🤖 自动接收 AtomGit Webhook 事件 - 🔍 智能筛选 PR 相关事件(opened, synchronized) - 🧠 调用 QWen Coder 大模型进行代码审查 - 💬 自动将审查结果发送到 PR 评论区 - 🎯 支持多种编程语言 - 🚫 智能过滤无意义的变更(格式化、配置文件等) ## 技术栈 - **语言**: Golang 1.22+ - **Web 框架**: Gin - **配置管理**: Viper - **日志**: Zap - **AI 模型**: QWen Coder API ## 项目结构 ``` atomgit-pr-reviewer/ ├── cmd/server/ # 应用入口 ├── internal/ │ ├── config/ # 配置管理 │ ├── webhook/ # Webhook 处理 │ ├── atomgit/ # AtomGit API 客户端 │ ├── reviewer/ # 代码审查模块 │ └── server/ # 服务器和路由 ├── pkg/logger/ # 日志工具 ├── configs/ # 配置文件 ├── Dockerfile # Docker 镜像 └── docker-compose.yml # 容器编排 ``` ## 快速开始 ### 前置要求 - Go 1.22+ - Docker & Docker Compose(可选) - AtomGit 账号和 Personal Access Token - QWen API Key ### 环境变量 创建 `.env` 文件: ```bash ATOMGIT_TOKEN=your_atomgit_token ATOMGIT_WEBHOOK_SECRET=your_webhook_secret QWEN_API_KEY=your_qwen_api_key ``` ### 本地运行 1. 克隆项目 ```bash git clone https://github.com/yourusername/atomgit-pr-reviewer.git cd atomgit-pr-reviewer ``` 2. 安装依赖 ```bash go mod download ``` 3. 配置文件 编辑 `configs/config.yaml`,根据需要调整配置。 4. 运行应用 ```bash export ATOMGIT_TOKEN="your_token" export QWEN_API_KEY="your_key" go run cmd/server/main.go ``` ### Docker 运行 1. 构建镜像 ```bash docker-compose build ``` 2. 启动服务 ```bash docker-compose up -d ``` 3. 查看日志 ```bash docker-compose logs -f ``` ## 配置说明 ### AtomGit Webhook 配置 1. 进入你的 AtomGit 仓库设置 2. 选择 "Webhooks" -> "添加 Webhook" 3. 配置如下: - **Payload URL**: `http://your-server:8080/webhook` - **Content type**: `application/json` - **Secret**: 与配置文件中的 `webhook_secret` 一致 - **事件**: 选择 "Pull requests" ### QWen API 配置 1. 访问 [阿里云 DashScope](https://dashscope.aliyun.com/) 2. 创建 API Key 3. 将 API Key 配置到环境变量或配置文件 ## API 端点 - `GET /` - API 信息 - `GET /health` - 健康检查 - `POST /webhook` - Webhook 接收端点 ## 开发指南 ### 添加新的审查规则 编辑 `internal/reviewer/analyzer.go`,在 `ReviewCode` 方法中添加自定义逻辑。 ### 自定义 Prompt 编辑 `internal/reviewer/qwen.go` 中的 `buildPrompt` 方法。 ### 添加新的编程语言支持 在 `internal/reviewer/qwen.go` 的 `detectLanguage` 函数中添加新的文件扩展名映射。 ## 测试 ### 单元测试 ```bash go test ./... ``` ### 手动测试 Webhook 使用 curl 模拟 Webhook 请求: ```bash curl -X POST http://localhost:8080/webhook \ -H "Content-Type: application/json" \ -d @test/webhook_payload.json ``` ## 部署 ### 使用 Docker ```bash docker-compose up -d ``` ### 使用 Systemd 创建 systemd 服务文件 `/etc/systemd/system/atomgit-pr-reviewer.service`: ```ini [Unit] Description=AtomGit PR Reviewer After=network.target [Service] Type=simple User=your-user WorkingDirectory=/path/to/atomgit-pr-reviewer Environment="ATOMGIT_TOKEN=your_token" Environment="QWEN_API_KEY=your_key" ExecStart=/path/to/atomgit-pr-reviewer/atomgit-pr-reviewer Restart=on-failure [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl daemon-reload sudo systemctl enable atomgit-pr-reviewer sudo systemctl start atomgit-pr-reviewer ``` ## 故障排查 ### 日志查看 - 本地运行:查看控制台输出 - Docker:`docker-compose logs -f` - Systemd:`journalctl -u atomgit-pr-reviewer -f` ### 常见问题 1. **Webhook 未触发** - 检查 Webhook URL 是否正确 - 检查服务器防火墙设置 - 查看 AtomGit Webhook 日志 2. **QWen API 调用失败** - 检查 API Key 是否正确 - 检查网络连接 - 查看 API 配额是否用尽 3. **评论未发送** - 检查 AtomGit Token 权限 - 查看应用日志 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 许可证 MIT License ## 联系方式 - 项目地址: https://github.com/yourusername/atomgit-pr-reviewer - 问题反馈: https://github.com/yourusername/atomgit-pr-reviewer/issues