# 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) ## Сделано - [x] 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