2.1 KiB
2.1 KiB
Dev Report: ORCH-6 — Multi-repo (фильтр проекта + маппинг repo per project)
Дата: 2026-06-02 Статус: IN PROGRESS
Задача
Plane-webhook ловит issue из любого проекта и льёт всё в default_repo=enduro-trails (хардкод). Нужно: реестр проектов (Plane project id → repo + prefix), фильтр webhook по проекту, resolve repo/prefix из маппинга, plane_sync в правильный проект.
ТЗ: tasks/orchestrator/DEV_TASK_ORCH6_MULTIREPO.md
Инфра
- Сервер slin@82.22.50.71, репо /home/slin/repos/orchestrator (remote admin/orchestrator)
- Контейнер orchestrator (port 8500)
- Ветка: feature/ORCH-6-multirepo (от feature/ORCH-2-worktree)
Сделано
- Task 0: прочитал ТЗ, аудит, весь релевантный код. Создал ветку.
- Task 1: src/projects.py — реестр + резолверы + config.projects_json
- Task 2: plane-webhook фильтр + resolve
- Task 3: plane_sync параметризован по project_id (обратно совместимо)
- Task 4: db.py prefix per project
- Task 5: gitea неизвестный repo → ignored
- Task 6: тесты + доки
- Task 7: деплой + проверка резолва/фильтра
Изменённые файлы
(заполняется по ходу)
Результат
(в конце)
Проблемы и решения
- ВАЖНО: существующие тесты в test_webhooks.py используют
"project": "proj-1"— это НЕ в реестре. После добавления фильтра задача не создастся → тесты сломаются. Решение: зарегистрировать proj-1 через ORCH_PROJECTS_JSON в env тестов (gitea-тесты используют repo enduro-trails — уже в дефолтном реестре, ок).
Следующий шаг
Task 1 — создать src/projects.py