fix(webhooks): dispatch new QGs; stop false Gitea CI alerts (S-1)

- plane._try_advance_stage handles check_tests_local + check_reviewer_verdict
- gitea.handle_ci_status: failure -> debug log only (CI not authoritative)
This commit is contained in:
Dev Agent
2026-06-02 20:12:29 +03:00
parent 0924783be3
commit b585701c62
2 changed files with 7 additions and 4 deletions

View File

@@ -194,8 +194,11 @@ async def handle_ci_status(payload: dict):
notify_qg_failure(task_id, current_stage, "check_ci_green", reason)
elif state == "failure":
logger.warning(f"Task {task_id}: CI failed on branch '{branch}'")
notify_error(task_id, f"CI failed on branch '{branch}'")
# S-1: Gitea CI is NOT the authoritative gate anymore (the orchestrator runs
# tests locally via check_tests_local). Gitea CI is often unconfigured, so a
# "failure"/empty status here is not actionable. Log only, do not alert.
logger.debug(f"Task {task_id}: Gitea CI state='failure' on branch '{branch}' "
f"(non-authoritative, suppressed — local tests are the gate)")
async def handle_pr(payload: dict):

View File

@@ -303,9 +303,9 @@ async def _try_advance_stage(
return
# Determine args based on QG function
if qg_name in ("check_analysis_approved", "check_analysis_complete", "check_architecture_done", "check_tests_passed"):
if qg_name in ("check_analysis_approved", "check_analysis_complete", "check_architecture_done", "check_tests_passed", "check_reviewer_verdict"):
passed, reason = qg_func(repo, work_item_id)
elif qg_name == "check_ci_green":
elif qg_name in ("check_ci_green", "check_tests_local"):
passed, reason = qg_func(repo, branch)
elif qg_name == "check_review_approved":
# Find PR number by branch via Gitea API