# prhelp **Repository Path**: guslegend/prhelp ## Basic Information - **Project Name**: prhelp - **Description**: prhelp,七牛云XEngineer训练营项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-29 - **Last Updated**: 2026-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PRHelp PRHelp 是一个面向团队 Pull Request 审查流程的协作平台。它把 GitHub App 接入、仓库同步、规则配置、知识库、AI Review、任务追踪、PR 评论回写、质量看板和审计日志集中到一个管理后台里,目标是让团队可以用统一标准持续审查 PR。 v1.0(个人版视频地址):https://www.bilibili.com/video/BV1ChVM6cEJy/?vd_source=e31d3793626fa46d41fce586942b829f; v2.0(团队版视频地址):https://www.bilibili.com/video/BV1KpVQ64E1q/?vd_source=e31d3793626fa46d41fce586942b829f (视频过长可跳跃性观看,前面是我对这个项目的演进过程和出发点) ![1780241848200](README.assets/1780241848200.png) 当前仓库采用前后端一体的单仓库结构,包含: - `frontend/`:Vue 3 管理后台 - `backend/`:Spring Boot 后端服务 - `docker/`:Nginx、PostgreSQL 等部署辅助文件 - `scripts/`:服务器部署、回滚、备份和恢复脚本 - `docs/`:启动、部署、验收、架构和测试说明 ## 核心流程 1. 在系统设置中完成管理员、工作区、模型 Provider、GitHub App 配置。 2. 安装 GitHub App,并同步可用仓库到当前工作区。 3. 在仓库管理、规则中心、Review 知识中维护团队审查规则和项目上下文。 4. 在 PR 分析页输入 GitHub PR 地址,或通过 GitHub Webhook 自动触发分析。 5. 系统创建任务,执行预检、Diff 拉取、规则命中、AI 审查和结构化报告生成。 6. 在任务详情页查看报告、风险与问题、变更文件、流程日志和评论回写状态。 7. 需要时把审查结果回写到 GitHub PR 评论,并在质量看板和审计日志中追踪结果。 ## 功能页面 | 页面 | 路径 | 说明 | | --- | --- | --- | | 初始化 | `/setup` | 首次启动时创建管理员和默认工作区 | | 登录 | `/login` | 使用邮箱或用户名登录系统 | | PR 分析 | `/analysis` | 输入 PR URL,执行预检、发起分析、查看近期任务 | | 任务中心 | `/tasks` | 按状态、仓库、关键字查看分析任务 | | 任务详情 | `/tasks/:id` | 查看结构化 Review 报告、Diff、流程日志、AI 总结和 PR 回写 | | 仓库管理 | `/repositories` | 同步 GitHub App 安装仓库,绑定工作区仓库 | | 规则中心 | `/rules` | 维护规则资产、规则配置和项目上下文 | | 规则评测 | `/rule-bench` | 管理评测用例并验证规则效果 | | Review 知识 | `/knowledge` | 维护团队 Review 标准和项目特殊约定 | | 质量看板 | `/quality` | 查看规则命中、风险洞察、误报降噪和历史趋势 | | 工作区 | `/workspaces` | 管理工作区、成员、邀请和仓库绑定 | | 审计日志 | `/audit-logs` | 查看用户操作、系统事件和后端分页审计记录 | | 健康检查 | `/health` | 查看服务、队列、Webhook、模型和投递状态 | | 系统设置 | `/settings` | 配置 GitHub App、模型 Provider、Slot 和基础系统参数 | ## 技术栈 | 层级 | 技术 | | --- | --- | | 前端 | Vue 3、TypeScript、Vite、Vue Router、Axios、Tailwind CSS | | 后端 | Java 21、Spring Boot 3、Spring Validation、Spring Data Redis | | 数据 | PostgreSQL、Flyway、MyBatis-Plus、Redis | | 部署 | Docker Compose、Nginx | | 外部集成 | GitHub API、GitHub App、OpenAI Compatible LLM Provider | ## 本地快速启动 ### 1. 准备环境变量 ```bash cp .env.example .env ``` PowerShell: ```powershell Copy-Item .env.example .env ``` 常用配置项: ```env COMPOSE_PROJECT_NAME=prhelp HTTP_PORT=80 FRONTEND_PORT=5173 BACKEND_PORT=7070 FRONTEND_BASE_URL=http://localhost:5173 DB_NAME=prhelp DB_USERNAME=prhelp DB_PASSWORD=请改成强密码 GITHUB_USER_AGENT=prhelp ``` ### 2. Docker Compose 启动 ```bash docker compose up -d --build ``` 启动后访问: - 前端:`http://localhost:5173` - 后端健康检查:`http://localhost:7070/api/v1/health/ping` 首次启动建议进入 `/setup` 完成管理员和默认工作区初始化。 ### 3. 本地开发模式 ```bash docker compose up -d postgres redis cd backend mvn spring-boot:run cd ../frontend npm install npm run dev ``` 更完整的启动说明见:[docs/startup.md](docs/startup.md)。 ## 服务器部署 项目内置部署脚本,适合在 Linux 云服务器上使用 Docker Compose 部署。 首次赋权: ```bash chmod +x scripts/deploy/prhelp-deploy.sh chmod +x scripts/db/postgres-backup.sh chmod +x scripts/db/postgres-restore.sh ``` 常用命令: ```bash # 首次部署 bash scripts/deploy/prhelp-deploy.sh bootstrap origin/master # 更新到最新 master bash scripts/deploy/prhelp-deploy.sh deploy origin/master # 回滚到上一个成功版本 bash scripts/deploy/prhelp-deploy.sh rollback # 查看当前部署状态 bash scripts/deploy/prhelp-deploy.sh status ``` 部署脚本会优先使用共享环境文件,正式服务器建议维护在: ```text /opt/prhelp/shared/.env ``` 如果当前项目部署在 `/root/prhelp`,也可以按实际服务器目录维护: ```text /root/prhelp/shared/.env ``` 服务器部署细节见:[docs/company-server-deployment.md](docs/company-server-deployment.md) 和 [docs/cloud-server-zero-to-one-deployment.md](docs/cloud-server-zero-to-one-deployment.md)。 ## GitHub App 与 Webhook 测试 没有正式 HTTPS 域名时,可以用 ngrok 或其他公网隧道临时暴露 gateway: ```bash ngrok http 80 ``` GitHub App 建议配置: ```text Setup URL: https://你的公网域名/api/v1/integration/github-app/callback Webhook URL: https://你的公网域名/api/v1/integration/github-app/webhook ``` 同时确认: - GitHub App 已启用 Webhook。 - Webhook Secret 与系统设置页保存的一致。 - GitHub App 已订阅 `Pull request` 事件。 - GitHub App 已安装到需要测试的组织或仓库。 - 系统内已经同步并绑定对应仓库。 如果 PR 分析能跑完但 GitHub 评论没有回写,优先检查任务详情里的“PR 回写”阶段、后端日志、GitHub App 权限,以及当前仓库是否来自 GitHub App 安装仓库。 ## 数据库备份与恢复 ```bash # 生成自定义格式备份 bash scripts/db/postgres-backup.sh # 恢复指定备份,脚本会先停后端,再恢复数据库,再拉起后端 bash scripts/db/postgres-restore.sh /opt/prhelp/backups/postgres/prhelp-20260530-210000.dump --yes ``` 默认行为: - 备份目录:`/opt/prhelp/backups/postgres` - 备份格式:`pg_dump --format=custom` - 自动生成 `sha256` 校验文件 - 按 `PRHELP_BACKUP_RETENTION_DAYS` 清理过期备份 ## 仓库结构 ```text prhelp/ |-- backend/ # Spring Boot 后端 |-- frontend/ # Vue 3 前端 |-- docker/ # Nginx 与 PostgreSQL 初始化辅助文件 |-- docs/ # 项目文档、架构说明、部署与验收说明 |-- scripts/ # 部署、备份恢复等运维脚本 |-- .env.example # 环境变量模板 `-- docker-compose.yml # 本地启动与服务器部署入口 ```