fix(ci): auto-approve轮询等待所有CI跑完再判断结果 #481

Merged
auto-approve-bot merged 1 commits from fix/auto-approve-polling-bug into develop 2026-07-17 18:29:47 +08:00
Owner

问题

auto-approve工作流轮询CI状态时,只要看到任何一个check是failure状态就直接exit 0退出。但此时新的CI可能还在pending运行中,旧的failure是上一次commit的残留状态,导致auto-approve不会等待新CI跑完自动审批。

修复

新增ANY_PENDING判断:

  • 还有check处于pending状态 → 继续等待
  • 所有check都到终态后 → 再判断是全部success(审批)还是有failure(退出)

影响范围

仅修改 .gitea/workflows/auto-approve.yml 轮询逻辑,不影响CI流水线本身。

## 问题 auto-approve工作流轮询CI状态时,只要看到任何一个check是failure状态就直接exit 0退出。但此时新的CI可能还在pending运行中,旧的failure是上一次commit的残留状态,导致auto-approve不会等待新CI跑完自动审批。 ## 修复 新增ANY_PENDING判断: - 还有check处于pending状态 → 继续等待 - 所有check都到终态后 → 再判断是全部success(审批)还是有failure(退出) ## 影响范围 仅修改 `.gitea/workflows/auto-approve.yml` 轮询逻辑,不影响CI流水线本身。
xiaoxia added 1 commit 2026-07-17 18:25:17 +08:00
fix(ci): auto-approve轮询等待所有CI跑完再判断结果
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
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 / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (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 / 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 Production (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 13s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 48s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m36s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m52s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 3m15s
AI Code Review / AI Code Review (pull_request) Successful in 4m1s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m28s
Auto Merge CI PRs / Auto Merge on CI Green + Approved (pull_request) Successful in 4m30s
3ca7a012cf
- 修复看到failure直接exit的bug
- 新增ANY_PENDING判断:有pending就继续等
- 所有check都到终态后再判断success/failure
auto-approve-bot approved these changes 2026-07-17 18:28:31 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。
Collaborator

代码审查结果 - PR #481

⚠️ 问题(0个需要修改)

💡 建议(2个可选)

  1. [.gitea/workflows/auto-approve.yml:81] 状态判断的完备性

    • 当前代码增加了对 pendingnull 状态的判断,这很好。但建议确认上游 CI 系统是否还会返回其他非成功状态(如 cancelledskippedaction_required)。如果 STATE 为这些值,当前逻辑会跳过 ANY_PENDINGANY_FAILED 的判断,直接进入末尾的 sleep 10。如果 ALL_SUCCESS 的逻辑不够严谨(例如仅在 failure 时置 false),可能会导致这些非成功状态被误判为成功从而触发自动审批。建议确保 ALL_SUCCESS 的判断逻辑覆盖了所有非预期状态。
  2. [.gitea/workflows/auto-approve.yml:81] 空值处理

    • 代码检查了 [ "$STATE" = "null" ],这通常适用于 API 返回 JSON 字符串 "null" 的情况。建议同时检查变量是否为空字符串 [ -z "$STATE" ],以防止因解析错误或字段缺失导致的空值被跳过,从而避免潜在的逻辑漏洞。

格式检查通过 | 逻辑审查通过 | 性能良好


🤖 由 AI 代码审查机器人自动生成 | 2026-07-17 18:29:20 | 模型:

## 代码审查结果 - PR #481 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(2个可选) 1. **[.gitea/workflows/auto-approve.yml:81] 状态判断的完备性** - 当前代码增加了对 `pending` 和 `null` 状态的判断,这很好。但建议确认上游 CI 系统是否还会返回其他非成功状态(如 `cancelled`、`skipped` 或 `action_required`)。如果 `STATE` 为这些值,当前逻辑会跳过 `ANY_PENDING` 和 `ANY_FAILED` 的判断,直接进入末尾的 `sleep 10`。如果 `ALL_SUCCESS` 的逻辑不够严谨(例如仅在 `failure` 时置 false),可能会导致这些非成功状态被误判为成功从而触发自动审批。建议确保 `ALL_SUCCESS` 的判断逻辑覆盖了所有非预期状态。 2. **[.gitea/workflows/auto-approve.yml:81] 空值处理** - 代码检查了 `[ "$STATE" = "null" ]`,这通常适用于 API 返回 JSON 字符串 "null" 的情况。建议同时检查变量是否为空字符串 `[ -z "$STATE" ]`,以防止因解析错误或字段缺失导致的空值被跳过,从而避免潜在的逻辑漏洞。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-17 18:29:20 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot merged commit ccc47e70fa into develop 2026-07-17 18:29:47 +08:00
auto-approve-bot deleted branch fix/auto-approve-polling-bug 2026-07-17 18:29:47 +08:00
Sign in to join this conversation.