[bugfix] 修复对于gitea webhook签名的检查失败问题

This commit is contained in:
jeffusion
2025-03-14 11:50:17 +08:00
parent e488ebc492
commit 0d09a951b2
5 changed files with 84 additions and 34 deletions

View File

@@ -71,17 +71,28 @@
**Pull Request审查webhook**:
- URL: `http://your-server:3000/webhook/gitea/pull_request`
- 内容类型: `application/json`
- 秘钥: 设置为与WEBHOOK_SECRET相同的值
- 秘钥: 设置为与`WEBHOOK_SECRET`环境变量相同的值
- 触发事件: 选择"Pull Request"
**提交状态审查webhook**:
- URL: `http://your-server:3000/webhook/gitea/status`
- 内容类型: `application/json`
- 秘钥: 设置为与WEBHOOK_SECRET相同的值
- 秘钥: 设置为与`WEBHOOK_SECRET`环境变量相同的值
- 触发事件: 选择"Status"
> 注意: 老端点 `/webhook/gitea` 仍然支持Pull Request审查但仅作向后兼容使用。
### Webhook签名验证
为确保请求安全系统使用Gitea的Webhook签名验证机制
1. 设置环境变量`WEBHOOK_SECRET`为一个安全的随机字符串
2. 在Gitea的Webhook配置中使用相同的字符串作为"秘钥"
3. 每次请求时,系统会验证请求头中的`X-Gitea-Signature`
4. 如果签名验证失败,请求会被拒绝处理
验证方法使用SHA-256哈希算法在处理高负载的情况下这能防止恶意请求并保证请求来源的真实性。
## 功能说明
### PR代码审查