2201f6d69670c325fb5ecabfc98b1266e898f933
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 的缺陷详情
- 一键「拒绝合并」或「同意合并」
快速开始
# 安装依赖
pip install -r requirements.txt
# 运行服务
python app.py
访问 http://localhost:5000 查看前端页面。
Docker 部署
1. 构建镜像
docker build -t dcr-by1jwyxk44.71826370.xyz/whlaoding/code-scan:latest .
2. 登录仓库
docker login dcr-by1jwyxk44.71826370.xyz
3. Push 到仓库
docker push 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
Languages
Python
64.8%
HTML
34%
Shell
0.9%
Dockerfile
0.3%