feat(qg): ORCH-045 — poll check_ci_green with retry to fix CI race #39
Reference in New Issue
Block a user
Delete Branch "feature/ORCH-045-ci-poll-retry"
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?
ORCH-045 — poll check_ci_green with retry (fix CI race)
Устраняет race condition в quality-gate
check_ci_green: раньше один опрос combined commit-status сразу после пуша developer-а ловил транзиентныйpending(1-3с) и задача застревала насмерть без повторного опроса (реальный кейс ORCH-017: опрос 17:58:54 → pending, CI дозеленел 17:58:55).Что сделано
src/qg/checks.py: single-shot → polling.success→ пропуск сразу;failure/error→ провал сразу (терминально);pending/unknown →time.sleep+ повторный опрос доci_poll_max_attempts; истечение → явный(False, "CI still pending after <T>s")(не молчаливый тупик); 404 как раньше; транзиентнаяhttpx.HTTPErrorлогируется и ретраится в бюджете. Сигнатура и реестрQG_CHECKSне менялись.src/config.py: новые настройкиORCH_CI_POLL_MAX_ATTEMPTS(12),ORCH_CI_POLL_INTERVAL_S(10) — ~2 мин ожидания pending.tests/test_qg.py::TestCheckCIGreen: success-1st / pending→success / failure-no-retry / pending-exhausts-attempts / 404 (time.sleep замокан). 62 passed вtests/test_qg.py.docs/architecture/adr/adr-0004-ci-poll-retry.md+ индекс README + CHANGELOG.check_tests_passed/_parse_tests_verdict(ORCH-47) НЕ тронуты. Мерж — на ревью оператору.