2626- 支持 Webhook 签名验证,确保请求安全
2727- 通过 OneBot 协议将推送信息转发到指定的 QQ 群
2828- 可配置监听的仓库和分支
29+ - 支持大小写不敏感的仓库名匹配
30+ - 支持用户名/* 通配符匹配所有仓库
2931- 格式化的推送通知消息,包含仓库、分支、推送者和最新提交信息
3032
3133## 安装
@@ -60,18 +62,34 @@ pip install -r requirements.txt
6062cp config.yaml.example config.yaml
6163```
6264
63- ## 配置
64-
65- 在 ` .env ` 文件中设置以下环境变量:
66-
67- | 变量名 | 说明 | 示例 |
68- | --------| ------| ------|
69- | ` WS_URL ` | OneBot WebSocket 连接地址 | ` ws://localhost:8080/ws ` |
70- | ` WS_ACCESS_TOKEN ` | OneBot 访问令牌 | ` your_token ` |
71- | ` GITHUB_WEBHOOK_SECRET ` | GitHub Webhook 密钥 | ` your_secret ` |
72- | ` GITHUB_REPO ` | 监听的仓库列表 | ` ["username/repo"] ` |
73- | ` GITHUB_BRANCH ` | 监听的分支列表 | ` ["main", "develop"] ` |
74- | ` QQ_GROUP ` | 通知的 QQ 群号列表 | ` [123456789] ` |
65+ ## 配置说明
66+
67+ 配置文件 ` config.yaml ` 的结构如下:
68+
69+ ``` yaml
70+ ENV : " production" # 环境变量,可选值为 "production" 或 "development"
71+ WS_URL : " ws://localhost:8080/ws" # OneBot WebSocket 连接地址
72+ WS_ACCESS_TOKEN : " your_token" # OneBot 访问令牌
73+
74+ GITHUB_WEBHOOK :
75+ - NAME : " github" # webhook 名称
76+ REPO : # 监听的仓库列表,支持用户名/* 匹配用户所有仓库
77+ - " username/repo"
78+ - " username/*"
79+ BRANCH : # 监听的分支列表
80+ - " main"
81+ - " develop"
82+ SECRET : " your_secret" # GitHub Webhook 密钥
83+ EVENTS : # 监听的事件类型
84+ - " push"
85+ - " pull_request"
86+ - " issues"
87+ - " issue_comment"
88+ - " release"
89+ ONEBOT : # 通知的 OneBot 目标列表
90+ - type : " group" # 目标类型,可选值为 "group" 或 "private"
91+ id : 123456789 # 目标 ID,群号或用户 ID
92+ ` ` `
7593
7694## 运行
7795
@@ -90,13 +108,14 @@ python app.py
901081 . 在 GitHub 仓库中前往 Settings -> Webhooks -> Add webhook
911092 . Payload URL 设置为 ` http://你的服务器地址:8000/github-webhook `
921103 . Content type 选择 ` application/json `
93- 4 . Secret 填写与 ` .env ` 中 ` GITHUB_WEBHOOK_SECRET ` 相同的值
111+ 4 . Secret 填写与配置文件中 ` SECRET ` 相同的值
941125 . 选择 "Just the push event" 或根据需要选择事件
951136 . 启用 webhook(勾选 "Active")
96114
97115## 项目结构
98116
99117- [ app.py] ( app.py ) : 主应用入口和 Web 服务器
118+ - [ hooks/github_webhook.py] ( hooks/github_webhook.py ) : GitHub Webhook 处理逻辑
100119- [ send_message.py] ( send_message.py ) : OneBot 消息发送客户端
101120- [ settings.py] ( settings.py ) : 配置加载和验证
102121- [ requirements.txt] ( requirements.txt ) : 项目依赖
@@ -107,3 +126,4 @@ python app.py
107126- Uvicorn: ASGI 服务器
108127- aiohttp: 异步 HTTP 客户端
109128- pydantic: 数据验证
129+ - PyYAML: YAML 配置文件解析
0 commit comments