2.9 KiB
2.9 KiB
Dev Report: ORCH-6 multi-repo — додел хвоста (tests/docs/commit/deploy)
Дата: 2026-06-02 Статус: DONE
Задача
Добить ORCH-6 (функционал был написан ~75%): тесты, доки, коммиты, push, PR, пересборка, финальные проверки. НЕ включать Plane-webhook.
Сделано
- tests/test_projects.py (16 тестов) — резолверы + парсинг ORCH_PROJECTS_JSON
- tests/test_plane_webhook.py (4 теста, TestClient, launcher замокан) — фильтр + resolve repo + независимые префиксы
- Прогон всех тестов в контейнере: 57 passed, 9 pre-existing fail (не трогал)
- docs/ARCHITECTURE.md — секция реестра проектов / multi-repo
- README.md — ORCH_PROJECTS_JSON в таблице конфига + «Как добавить проект»
- docs/BUGFIXES_2026-06-03.md — ORCH-6 + ссылка на INCIDENT_2026-06-02
- 7 коммитов (Conventional Commits), push в feature/ORCH-6-multirepo
- PR #2 создан (Gitea API)
- docker compose up -d --build → health ok
- Финальный resolve-тест в контейнере: OK
- Plane-webhook НЕ трогал (остаётся is_active=false)
Изменённые файлы
- tests/test_projects.py (новый, 16 тестов)
- tests/test_plane_webhook.py (новый, 4 теста)
- docs/ARCHITECTURE.md, README.md, docs/BUGFIXES_2026-06-03.md
Результат
- Тесты новые: 20 passed (16+4). Полный прогон: 57 passed, 9 pre-existing (signature 401/TypeError в test_webhooks.py — не мои).
- Resolve в живом контейнере:
RESOLVE OK: orchestrator enduro-trails | known: 2 - Фильтр (unknown project → ignored, нет task/branch/agent) подтверждён через TestClient.
- PR: admin/orchestrator#2
- Health: {"status":"ok","service":"orchestrator"}
Проблемы и решения
- Webhook-тесты сначала падали 401 (signature secret вшит в runtime env, не сбрасывается через os.environ из-за порядка импорта settings) → замокал verify_plane_signature в фикстуре.
- test_prefixes падал только в полном прогоне (settings.db_path резолвится один раз при импорте; конфликт DB-пути с test_webhooks) → monkeypatch settings.db_path на изолированную БД в фикстуре.
- Gitea token из .env извлёкся обрезанным (28 вместо 40) → взял из
docker exec printenv ORCH_GITEA_TOKEN.
Следующий шаг
Стрим: ревью PR #2 → включить Plane-webhook (UPDATE webhooks SET is_active=true WHERE id='93f0c342...').