Сервис для интеграции между GitLab и Яндекс Трекером. Проставляет теги задачам, упомянутым в Merge Request
Яндекс Трекер имеет свою собственную интеграцию с GitLab, которая проставляет ссылки на МРы как 'связь с внешним приложением'. Проблема в том, что к этим связям нельзя написать автоматизации - например, переносить задачу из "В работе" в "Ревью" после того как создается МР.
Простой сервис на FastAPI, который принимает вебхуки от GitLab с уведомлениями о мердж-реквестах и проставляет упомянутым в МРе задачам Трекера тэги mr-opened или mr-merged при открытии и слиянии МРа соответственно. На эти тэги легко написать автоматизацию.
Первым делом, нужно захостить этот сервис в любом удобном вам месте; назовем это место адрес_сервера. Оно должно быть доступно по сети для вашего GitLab и иметь доступ к Яндекс Трекеру.
Нужно создать новый Webhook в GitLab и указать ему URL
<адрес_сервера>/webhook?x_org_id=<идентификатор_организации>. Идентификатор организации можно найти по ссылке https://tracker.yandex.ru/admin/orgs.
В Secret token вставить токен OAuth полученный в соответствии с инструкцией Яндекса (начинается с y0__). Обратите внимание, что для интеграции от самого Яндекса нужно прописывать OAuth в начале Secret token, но для этого сервиса это не требуется.
В разделе Trigger выключить все опции, кроме Merge request events.
После этого можно протестировать хук, должен возвращаться HTTP 200.
Можно было бы писать комменты в МРах, но мне кажется это грязным. Комментарии должны быть содержательными, а не логгировать состояние связей задачи. Отследить создание МРа и его мердж можно отследить или в самом GitLab, или во вкладке "История" в задаче.
Можно было бы проставлять ссылки на МР в какое-то локальное поле в задаче, но тогда нужно заставлять всех создавать это поле плюс всё равно открытым остался бы вопрос, как оповещать Трекер о мердже МРа. Плюс встроенная интеграция от Яндекс Трекера сама неплохо проставляет ссылки.
Ну а альтернатива с тем, чтобы этот сервер сам перетаскивал задачи в целом ужасна, так как любые изменения в рабочих процессах приведут к изменению кода этого сервиса, а не к перенастройке автоматизаций на самом Яндекс Трекере. Вебхуки должны просто оповещать о произошедшем, принятие решений - только в рамках самого Трекера.