2026-05-20
Зачем Depensee своя библиотека интеграций
Как trackerkit помогает подключать Jira, Яндекс Трекер и Asana к одной модели задач, проектов и связей.
- #интеграции
- #trackerkit
- #разработка
У Depensee есть простая продуктовая идея: показать проект как карту, где задачи становятся узлами, а связи между ними - ребрами. Но почти у каждой команды уже есть свой трекер: Jira, Яндекс Трекер, Asana или что-то еще. Значит, Depensee должен не заменять их с первого дня, а уметь аккуратно читать и нормализовать данные из разных систем.
Для этого мы вынесли интеграции в отдельную библиотеку - trackerkit.
Зачем отдельный слой
API трекеров похожи только на первый взгляд. В Jira есть issue, project, issue links и настраиваемая модель иерархии. В Яндекс Трекере задачи живут не в “проектах” в привычном смысле, а в очередях: именно очередь ближе всего к тому, что Depensee называет проектом. В Asana снова свой набор сущностей: workspaces, projects, tasks, dependencies, subtasks.
Если тащить все эти различия прямо в backend Depensee, продуктовая логика быстро превратится в набор if jira, if yandex, if asana. Поэтому trackerkit прячет детали провайдеров за одним контрактом.
Неочевидные различия
Самый показательный пример - связи между задачами.
В Jira связи почти полностью кастомизируются. У команды могут быть свои link types, свои inward/outward labels, отдельная настройка для blocks, relates или структурной связи вроде contains. Поэтому trackerkit поддерживает явную настройку маппинга Jira-связей.
В Яндекс Трекере модель жестче и прямее: есть нативные связи между задачами, включая зависимости и родительские отношения. Но там появляется другой нюанс - “проект” в API не равен тому проекту, который ожидаешь увидеть в продукте планирования. Для задач основной контейнер - очередь, и именно ее удобнее нормализовать как Project в общей модели.
Почему это важно
Depensee строится вокруг карты, а не вокруг конкретного трекера. trackerkit позволяет держать это разделение чистым: backend работает с задачами и связями в единой форме, а библиотека берет на себя перевод с языка конкретной системы.
Так проще добавлять новые трекеры, тестировать интеграции и не смешивать продуктовую модель Depensee с особенностями внешних API.
Сейчас trackerkit - ранняя библиотека, но именно на этом слое будет держаться MVP с импортом и синхронизацией задач из Jira и Яндекс Трекера. Код открыт на GitHub: github.com/depensee-dev/trackerkit.