添加了新README和主页图片,非常好!项目会更好看!

This commit is contained in:
张建平 2025-02-25 17:55:57 +08:00
parent 3daf5973d0
commit 3f8d33798e
8 changed files with 133 additions and 0 deletions

133
README.MD Normal file
View File

@ -0,0 +1,133 @@
# pr_manager
## 项目简介
该项目基于 Django 构建,主要实现一个 webhook 服务器,用于处理来自 Git 服务器的 webhook 事件并根据项目配置自动执行相应的指令如代码审核code review、代码描述describe、代码改进等。项目所有配置均可通过 Django admin 后台动态管理,包括 AI 服务器、Git 服务器及各项指令的配置,为项目提供灵活的扩展能力。
## 功能特性
- **Webhook 事件处理**:接收并解析 Git 服务器触发的 webhook 请求。
- **自动化指令执行**:根据配置自动触发代码审核、描述及代码改进等操作。
- **动态配置管理**:通过 Django admin 后台实时管理 AI 服务器、Git 服务器和项目配置。
- **模块化设计**:核心 webhook 处理逻辑集中在 pr 应用的 views.py 中,便于扩展与维护。
- **多服务集成**:支持与多种 Git 服务和 AI 服务对接,满足不同业务场景需求。
## 目录结构
项目主要目录说明如下:
```
pr_manager/
├── manage.py
├── Pipfile
├── Pipfile.lock
├── docker-compose.yaml
├── Dockerfile
├── start.sh
├── README.MD
├── apps/
│ ├── pr/
│ │ ├── views.py # 处理 webhook 事件的视图类
│ │ ├── urls.py
│ │ ├── models.py
│ │ └── admin.py
│ ├── public/
│ │ ├── views.py
│ │ └── admin.py
│ └── utils/
│ └── pr_agent/
│ ├── cli.py
│ ├── config_loader.py
│ ├── agent/
│ │ └── pr_agent.py
│ ├── algo/ # 涉及代码处理逻辑
│ ├── git_providers/ # 各 Git 服务实现
│ ├── servers/ # 不同服务器对应实现
│ └── settings/ # 项目与指令配置
├── pr_manager/
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│ └── asgi.py
└── templates/
```
(部分目录与文件略)
## 快速开始
### 开发环境设置
1. 确保已安装 Python 3.12 及以上版本。
2. 使用 pipenv 或 virtualenv 创建虚拟环境。例如:
```
pipenv install
```
3. 运行数据库迁移:
```
python manage.py migrate
```
4. 创建超级管理员账号:
```
python manage.py createsuperuser
```
### 启动项目
启动 Django 开发服务器:
```
python manage.py runserver
```
启动后,通过浏览器访问 [http://127.0.0.1:8000/](http://127.0.0.1:8000/) 即可查看项目效果。
### 生产部署
- 使用 Docker 部署,参照根目录中的 Dockerfile 与 docker-compose.yaml 文件。
- 生产环境可通过 `.env` 文件配置相关环境变量。
- 建议配置反向代理与 SSL 证书以保障安全性。
## Webhook 工作原理
1. 当 Git 服务器进行代码推送时,会触发 webhook 请求。
2. Django 中 pr 应用下的 views.py 接收到请求并解析事件数据。
3. 根据动态配置,判断是否需要执行代码审核、代码描述或代码改进等指令。
4. 执行结果会通过日志记录和 Django admin 后台进行展示。
## PR管理系统配置说明
![主页菜单](static/主页.png)
所有配置均通过 Django admin 后台管理,主要包括:
- **AI 服务器**:配置 AI 服务接入信息。
![AI 服务器](static/AI配置.png)
- **Git 服务器**:配置与各 Git 服务的连接及 webhook 信息。
![Git 服务器](static/Git服务配置.png)
![项目配置](static/项目配置.png)
- **指令设置**:配置在 webhook 触发时需要执行的各项指令(例如代码审核、描述与改进)。
配置更新后,系统会实时生效,无需重启服务。
## Gitlab配置示例
- **用户AccessToken** 配置Gitlab用户的AccessToken用于获取用户信息。
![用户AccessToken](static/gitlab_access.png)
- **项目Secret** 配置Gitlab项目的Secret用于验证请求的合法性。
![项目Secret](static/项目Secret.png)
- **Webhook配置** 配置Gitlab项目的Webhook用于处理Gitlab的推送事件。
![Webhook配置](static/Webhook配置.png)
## 默认账号及 Git 服务器支持
- 默认管理员账号eapil
- 默认密码Eapil!@345
当前支持的 Git 服务器包括:
- gitea
- gitlab
- github
## 日志与调试
- 日志记录采用 Django 内置日志系统,可根据 settings.py 进行配置。
- 开发环境下开启 Debug 模式,以便在浏览器中查看详细错误信息。

BIN
static/AI配置.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
static/Git服务配置.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
static/Webhook配置.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
static/gitlab_access.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
static/主页.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
static/项目Secret.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
static/项目配置.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB