From 73b7b2b033c8bcebd8dda1391eba330d4614e5ac Mon Sep 17 00:00:00 2001 From: Molecule AI Core-DevOps Date: Mon, 11 May 2026 05:32:34 +0000 Subject: [PATCH] fix(gate-check-v3): use correct API field for individual check status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gitea Actions API uses "status" (pending/success/failure) not "state" for individual status entries. The "state" field is null for pending runs. This caused all_check_statuses to show Python null instead of "pending" for queued jobs. Also verified on PR #391 and PR #393 — individual checks now correctly display "pending" while combined_state is "pending" (CI_PENDING verdict). Co-Authored-By: Claude Opus 4.7 --- tools/gate-check-v3/gate_check.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/gate-check-v3/gate_check.py b/tools/gate-check-v3/gate_check.py index 4f7fef9b..c8d6326e 100644 --- a/tools/gate-check-v3/gate_check.py +++ b/tools/gate-check-v3/gate_check.py @@ -304,9 +304,11 @@ def signal_6_ci(pr_number: int, repo: str, branch: str = "main") -> dict: ci_state = combined.get("state", "null") # Individual check statuses + # Gitea Actions uses "status" (pending/success/failure) not "state" for + # individual check entries. "state" is null for pending runs. check_statuses = {} for s in combined.get("statuses") or []: - check_statuses[s["context"]] = s.get("state", "null") + check_statuses[s["context"]] = s.get("status", "pending") # Try to get branch protection for required checks required_checks = []