Skip to content

qqpayne/gitlab-ytracker-integration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitlab YTracker integration

Сервис для интеграции между 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, или во вкладке "История" в задаче.

Можно было бы проставлять ссылки на МР в какое-то локальное поле в задаче, но тогда нужно заставлять всех создавать это поле плюс всё равно открытым остался бы вопрос, как оповещать Трекер о мердже МРа. Плюс встроенная интеграция от Яндекс Трекера сама неплохо проставляет ссылки.

Ну а альтернатива с тем, чтобы этот сервер сам перетаскивал задачи в целом ужасна, так как любые изменения в рабочих процессах приведут к изменению кода этого сервиса, а не к перенастройке автоматизаций на самом Яндекс Трекере. Вебхуки должны просто оповещать о произошедшем, принятие решений - только в рамках самого Трекера.

About

Интеграция между GitLab и Яндекс Трекером. Проставляет теги задачам, упомянутым в Merge Request

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors