# AI 代码质量扫描系统 自动化代码质量扫描工具,监听 PR 事件,自动扫描代码缺陷并提供合并决策支持。 ## 工作流程 ``` ┌──────────┐ 1. 创建 PR ┌────────────┐ │ Gitea │ ───────────────► │ Webhook │ └──────────┘ │ Server │ └─────┬──────┘ │ 2. 拉取代码、扫描、存库 ▼ ┌────────────┐ │ SQLite │ │ Database │ └────────────┘ │ 3. 前端查询 ▼ ┌────────────┐ │ 前端页面 │ └────────────┘ ``` ## 三个核心功能 ### 1. PR 创建 - Gitea 仓库创建 PR 时自动触发扫描 - 支持事件:`opened`、`reopened`、`synchronize` ### 2. 后端处理 - 拉取 PR 对应的代码 - 执行代码扫描(Python/JavaScript/TypeScript) - AI 智能审查代码缺陷 - 扫描结果存入 SQLite 数据库 ### 3. 前端功能 - 查询所有 PR 及扫描状态 - 查看每个 PR 的缺陷详情 - 一键「拒绝合并」或「同意合并」 ## 快速开始 ```bash # 安装依赖 pip install -r requirements.txt # 运行服务 python app.py ``` 访问 http://localhost:5000 查看前端页面。 ## Docker 部署 ### 1. 构建镜像 ```bash docker build -t dcr-by1jwyxk44.71826370.xyz/whlaoding/code-scan:latest . ``` ### 2. 登录仓库 ```bash docker login dcr-by1jwyxk44.71826370.xyz ``` ### 3. Push 到仓库 ```bash docker push dcr-by1jwyxk44.71826370.xyz/whlaoding/code-scan:latest ``` ### 4. 使用 docker compose 启动 ```bash # 启动服务 docker compose up -d # 查看日志 docker compose logs -f # 停止服务 docker compose down ``` ## 配置 配置文件 `config.yaml`: ```yaml server: host: "0.0.0.0" port: 5000 gitea: base_url: "https://code.deep-pilot.chat" webhook_secret: "xxx" api_token: "xxx" ai: provider: "api" model: "qwen3.5-plus" api_url: "https://dashscope.aliyuncs.com/compatible-mode/v1" api_key: "sk-xxx" ```