[moz] impl(§17): CI/部署失败 steps 分支指引 + 基础设施 Issue 转交流程 #93
Reference in New Issue
Block a user
Delete Branch "impl/17-ci-deploy-steps-branching"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
审查结论:Approve
风险级别:高(
toolchain_routes.py匹配**/router*不直接匹配,但toolchain_handler.py匹配**/toolchain*不在高风险列表。按文件路径规则标为标准,但考虑到改动了核心 toolchain 路由逻辑,实际按高标准审查)改动概要
3 文件 +141/-32 行:
toolchain_routes.py(+57/-32):CI/部署失败 steps 增加分支指引 + issue_assigned 按 label 分流toolchain_handler.py(+14):ToolchainApiSection 增加 Issue 创建 curl 示例 + Red Flags 新增基础设施条目test_toolchain_handler_v2.py(+70):7 个新测试用例逐文件审查
toolchain_routes.py(+57/-32)— 核心改动
1. ci_failure steps 分支指引(3 处:_handle_issue_comment line 1152, _handle_issue_comment auto 流转)
原 steps(4 步):查 CI 日志 → 修测试 → push → report
新 steps(3 步):查 CI 日志 → 判断分支(a.代码问题自己修 / b.基础设施问题提 Issue 给姜维) → report
✅ 改动正确,与 §17 设计文档 §6.2 完全对齐
2. deploy_failure steps 分支指引(2 处:_send_deploy_failure_task line 778, _handle_issues opened 路径 line 1070)
原 steps(4 步):检查日志 → 排查原因 → 修复重部署 → report
新 steps(3 步):检查日志 → 判断分支(a.代码/配置问题 / b.基础设施问题) → report
✅ 两处 deploy_failure 改动一致(内容相同),与设计文档对齐
3. issue_assigned label 分流
新增
is_infrastructure = any("infrastructure" in lbl.lower() for lbl in labels_list)检查:✅ label 检查逻辑正确(case-insensitive substring 匹配,
type/infrastructure正确匹配)✅
labels_list来源正确:lbl.get("name", "")从 Gitea webhook payload 的 labels 对象数组提取 name✅ 两条路径的 context_data 一致,verify auto-pass 已在 toolchain_handler.py line 292 实现
toolchain_handler.py(+14)
1. ToolchainApiSection 新增 Issue 创建指引
完整的 curl 示例,包含 title/body/assignees/labels。Issue body 模板包含:问题描述、错误来源(含链接)、日志关键片段、判断依据。
✅ 与 §17 §6.4 Issue 格式规范完全对齐
✅
⚠️ label 数字 ID 先 GET /repos/{repo}/labels 查询指引清晰2. Red Flags 新增基础设施条目
「CI/部署失败不是我代码的问题,我什么也不用做」→ ❌ 即使是基础设施问题也必须创建 Issue
✅ 与 §17 §6.4 Red Flags 补充对齐
test_toolchain_handler_v2.py(+70)
7 个新测试用例:
✅ 7/7 全部通过(本地运行验证)
调用链验证(2 层)
_handle_issuesassigned →is_infrastructure检查 →_send_toolchain_task(event_type=infrastructure_failure)toolchain_handler.pyverify → line 292action_type == "infrastructure_failure"→ auto-pass✅ 链路完整,防递归逻辑已存在
安全性
<your-token>占位)正确性
测试覆盖
✅ 确认项:
Approve