2026-03-11 12:30:45 +08:00
2026-03-13 11:26:01 +08:00
2026-03-13 17:32:23 +08:00
2026-03-13 18:00:22 +08:00
2026-03-13 16:04:20 +08:00
2026-03-10 11:18:39 +08:00
2026-03-13 17:32:23 +08:00
2026-03-13 17:32:23 +08:00
2026-03-13 11:26:01 +08:00
2026-03-13 16:04:20 +08:00
2026-03-13 16:04:20 +08:00
2026-03-13 16:49:13 +08:00
2026-03-11 21:16:47 +08:00
2026-03-13 16:04:20 +08:00
2026-03-13 18:00:27 +08:00
2026-03-13 16:04:20 +08:00
2026-03-11 21:16:47 +08:00

AI 代码质量扫描系统

自动化代码质量扫描工具,监听 PR 事件,自动扫描代码缺陷并提供合并决策支持。

工作流程

┌──────────┐    1. 创建 PR    ┌────────────┐
│  Gitea   │ ───────────────► │   Webhook  │
└──────────┘                  │   Server   │
                              └─────┬──────┘
                                    │ 2. 拉取代码、扫描、存库
                                    ▼
                              ┌────────────┐
                              │  SQLite    │
                              │  Database  │
                              └────────────┘
                                    │ 3. 前端查询
                                    ▼
                              ┌────────────┐
                              │  前端页面   │
                              └────────────┘

三个核心功能

1. PR 创建

  • Gitea 仓库创建 PR 时自动触发扫描
  • 支持事件:openedreopenedsynchronize

2. 后端处理

  • 拉取 PR 对应的代码
  • 执行代码扫描Python/JavaScript/TypeScript
  • AI 智能审查代码缺陷
  • 扫描结果存入 SQLite 数据库

3. 前端功能

  • 查询所有 PR 及扫描状态
  • 查看每个 PR 的缺陷详情
  • 一键「拒绝合并」或「同意合并」

快速开始

# 安装依赖
pip install -r requirements.txt

# 运行服务
python app.py

访问 http://localhost:5000 查看前端页面。

Docker 部署

1. 构建镜像

docker buildx build --load --push -t dcr-by1jwyxk44.71826370.xyz/whlaoding/code-scan:latest .

2. 登录仓库

docker login dcr-by1jwyxk44.71826370.xyz

3. Push 到仓库

docker run -d --name code-scan -p 5000:5000  dcr-by1jwyxk44.71826370.xyz/whlaoding/code-scan:latest

4. 使用 docker compose 启动

# 启动服务
docker compose up -d

# 查看日志
docker compose logs -f

# 停止服务
docker compose down

配置

配置文件 config.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"
Description
No description provided
Readme 299 KiB
Languages
Python 64.8%
HTML 34%
Shell 0.9%
Dockerfile 0.3%