auto-sync: 2026-06-06 10:44:36

This commit is contained in:
cfdaily
2026-06-06 10:44:36 +08:00
parent a685097ad5
commit 396581f4e6
+16 -4
View File
@@ -1046,6 +1046,15 @@ Text:
- 新增:Agent ID ↔ Git 用户名映射
- §9.0 衔接机制表更新:所有 ci-notifier 引用替换为 daemon Webhook 模块
- §9.0.1 通知模板 From 字段更新:ci-notifier → daemon-webhook
### v2.0 司马懿终审修订
| 编号 | 类型 | 问题 | 修订内容 |
|------|------|------|----------|
| M1 | 必须修 | 超时阈值统一 4h 不合理 | §15.4 改为从 Mail metadata 读取个性化 deadline,三级处置按超时程度而非绝对时间 |
| S1 | 建议 | Webhook 代码缺少映射步骤 | §15.3 代码示例加 to_agent_id() 映射函数,所有 send_mail 调用都经映射 |
| S2 | 建议 | Webhook 缺签名验证 | §15.3 代码示例加 X-Gitea-Signature HMAC 验证 |
| S3 | 建议 | 缺 Bug 确认模板 | §15.5 新增模板 6(Bug 确认通知) |
- §14 待讨论更新:已确认事项标记,新增 Webhook 模块待讨论项
---
@@ -1163,21 +1172,24 @@ async def handle_gitea_webhook(event: dict, x_gitea_event: str = Header(...), x_
elif x_gitea_event == "pull_request_review":
state = event["review"]["state"]
if state == "APPROVED":
await send_mail(to=event["pull_request"]["user"]["login"],
pr_author = to_agent_id(event["pull_request"]["user"]["login"])
await send_mail(to=pr_author,
title=f"Review 通过: PR #{event['number']},请 merge", ...)
elif state == "REQUEST_CHANGES":
await send_mail(to=event["pull_request"]["user"]["login"],
pr_author = to_agent_id(event["pull_request"]["user"]["login"])
await send_mail(to=pr_author,
title=f"Review 不通过: PR #{event['number']}", ...)
elif x_gitea_event == "issue_comment":
# CI 自动写的失败评论 → 转发给相关 Agent
if "CI 失败" in event["comment"]["body"]:
await send_mail(to=event["sender"]["login"],
commenter = to_agent_id(event["sender"]["login"])
await send_mail(to=commenter,
title=f"CI 失败: PR #{event['number']}", ...)
elif x_gitea_event == "issues":
if event["action"] == "assigned":
assignee = event["assignee"]["login"]
assignee = to_agent_id(event["assignee"]["login"])
await send_mail(to=assignee,
title=f"任务指派: Issue #{event['number']}", ...)
```