feat(ci): P2-2 ChatOps集成 - 飞书机器人对接Gitea Actions #533

Merged
auto-approve-bot merged 1 commits from ci/chatops-integration into develop 2026-07-18 18:42:36 +08:00
Owner

概述

P2-2 ChatOps 集成第一版 - 飞书机器人对接 Gitea Actions,纯 CI 工具链扩展,不动业务代码。

工单: #448

新增内容

目录结构

scripts/ci/chatops/
├── __init__.py          # 包定义
├── config.py            # 配置管理(全部走环境变量)
├── gitea_client.py      # Gitea API 统一封装
├── feishu_notify.py     # 飞书通知模块(核心)
├── ci_query.py          # CI 状态查询
├── ci_trigger.py        # CI 重跑触发
└── webhook_server.py    # FastAPI webhook 接收服务

3个核心模块

  • ci_query.py - 查询CI状态(分支/PR/失败详情)
  • ci_trigger.py - 触发重跑(rerun失败job/整个workflow/取消)
  • feishu_notify.py - CI事件飞书通知

通知规则(最高频使用场景)

  • main/develop分支CI失败 → 飞书告警卡片(含失败摘要+一键重跑)
  • 分支从失败恢复 → 绿色恢复通知(含故障时长)
  • E2E测试失败 → 单独摘要通知
  • 连续失败不重复告警(状态缓存去重)

飞书交互命令(已实现)

  • /ci status [branch] - 查询分支CI状态
  • /ci rerun <run-id> - 重跑失败jobs
  • /ci rerun latest [branch] - 重跑最近一次失败的run
  • /ci help - 帮助

设计原则

  • 配置化:token、webhook地址全部走环境变量,不硬编码
  • 无强依赖:Gitea API用urllib实现,无需额外安装包
  • FastAPI为可选依赖:不装也能用CLI和模块调用
  • 通知失败不阻断主流程
  • black + ruff 全绿,与现有ci脚本风格一致

验证

  • black 格式化通过
  • ruff 检查通过
  • 模块导入 + 状态缓存逻辑冒烟测试通过
  • Gitea API 实际调用测试通过

后续迭代

  • Phase 2: 飞书应用机器人(代替webhook机器人,支持更丰富交互)
  • Phase 3: 部署到构建服务器 + Gitea webhook 配置
## 概述 P2-2 ChatOps 集成第一版 - 飞书机器人对接 Gitea Actions,纯 CI 工具链扩展,不动业务代码。 工单: #448 ## 新增内容 ### 目录结构 ``` scripts/ci/chatops/ ├── __init__.py # 包定义 ├── config.py # 配置管理(全部走环境变量) ├── gitea_client.py # Gitea API 统一封装 ├── feishu_notify.py # 飞书通知模块(核心) ├── ci_query.py # CI 状态查询 ├── ci_trigger.py # CI 重跑触发 └── webhook_server.py # FastAPI webhook 接收服务 ``` ### 3个核心模块 - **ci_query.py** - 查询CI状态(分支/PR/失败详情) - **ci_trigger.py** - 触发重跑(rerun失败job/整个workflow/取消) - **feishu_notify.py** - CI事件飞书通知 ### 通知规则(最高频使用场景) - ✅ main/develop分支CI失败 → 飞书告警卡片(含失败摘要+一键重跑) - ✅ 分支从失败恢复 → 绿色恢复通知(含故障时长) - ✅ E2E测试失败 → 单独摘要通知 - ✅ 连续失败不重复告警(状态缓存去重) ### 飞书交互命令(已实现) - `/ci status [branch]` - 查询分支CI状态 - `/ci rerun <run-id>` - 重跑失败jobs - `/ci rerun latest [branch]` - 重跑最近一次失败的run - `/ci help` - 帮助 ### 设计原则 - 配置化:token、webhook地址全部走环境变量,不硬编码 - 无强依赖:Gitea API用urllib实现,无需额外安装包 - FastAPI为可选依赖:不装也能用CLI和模块调用 - 通知失败不阻断主流程 - black + ruff 全绿,与现有ci脚本风格一致 ## 验证 - ✅ black 格式化通过 - ✅ ruff 检查通过 - ✅ 模块导入 + 状态缓存逻辑冒烟测试通过 - ✅ Gitea API 实际调用测试通过 ## 后续迭代 - Phase 2: 飞书应用机器人(代替webhook机器人,支持更丰富交互) - Phase 3: 部署到构建服务器 + Gitea webhook 配置
xiaoxia added 1 commit 2026-07-18 18:38:39 +08:00
feat(ci): P2-2 ChatOps集成 - 飞书机器人对接Gitea Actions
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 15s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 16s
AI Code Review / AI Code Review (pull_request) Failing after 23s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 49s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m55s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m52s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 3m17s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m31s
Auto Merge CI PRs / Auto Merge on CI Green + Approved (pull_request) Successful in 3m56s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 20s
55347f962c
新增 scripts/ci/chatops/ 目录,Python实现,纯工具链扩展不动业务代码。

3个核心模块:
- ci_query.py    - 查询CI状态(分支/PR/失败详情)
- ci_trigger.py  - 触发重跑(rerun失败job/整个workflow/取消)
- feishu_notify.py - CI事件飞书通知(失败/恢复/E2E摘要)

配套基础设施:
- config.py      - 配置化,所有token/webhook走环境变量
- gitea_client.py - Gitea API统一封装(urllib实现,无第三方依赖)
- webhook_server.py - FastAPI webhook接收服务(可选依赖)

通知规则(最高频使用场景):
- main/develop分支CI失败 → 飞书告警卡片(含失败摘要+一键重跑)
- 分支从失败恢复 → 绿色恢复通知(含故障时长)
- E2E测试失败 → 单独摘要通知
- 连续失败不重复告警(状态缓存去重)

飞书交互命令(第一版已实现解析+执行):
- /ci status [branch]   - 查询分支CI状态
- /ci rerun <run-id>    - 重跑失败jobs
- /ci rerun latest [branch] - 重跑最近一次失败的run
- /ci help              - 帮助

black+ruff全绿,与现有ci脚本风格一致。
auto-approve-bot approved these changes 2026-07-18 18:41:57 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-18 18:41:57 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit a117158168 into develop 2026-07-18 18:42:36 +08:00
auto-approve-bot deleted branch ci/chatops-integration 2026-07-18 18:42:36 +08:00

🗑️ 预览环境已清理

PR #533 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #533 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.