Интеграция GitLab с Yandex Tracker
В задачах Tracker можно автоматически добавлять ссылки на мерж-реквесты
Дополнительно можно включить автоматическое создание комментариев в задаче с информацией о мерж-реквестах. Автоматическое комментирование доступно только для Managed Service for GitLab.
Чтобы настроить интеграцию с GitLab в Tracker:
- Подключите Yandex Tracker.
- Создайте инстанс GitLab.
- (Опционально) Создайте проект GitLab.
- Создайте хук для интеграции.
- Протестируйте хук.
- Проверьте результат.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Подключите Yandex Tracker
Подключите Tracker к вашей организации Yandex Cloud.
Создайте инстанс GitLab
Создайте инстанс Managed Service for GitLab или виртуальную машину с образом GitLab.
Создайте инстанс Managed Service for GitLab согласно инструкции.
Запустите GitLab на ВМ с публичным IP-адресом.
- На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберите Виртуальная машина. - В поле Имя введите имя ВМ:
ci-tutorial-gitlab
. - Выберите зону доступности, в которой будет находиться ВМ.
- В блоке Образ загрузочного диска перейдите на вкладку Marketplace и нажмите кнопку Показать все продукты Marketplace. В открывшемся окне выберите образ GitLab и нажмите кнопку Использовать.
- В блоке Вычислительные ресурсы укажите следующую конфигурацию:
- vCPU —
4
. - Гарантированная доля vCPU —
100%
. - RAM —
8 ГБ
.
- vCPU —
- В блоке Сетевые настройки:
-
Выберите, к какой подсети подключить ВМ. Если нужной сети или подсети нет, создайте их с помощью кнопок Создать сеть и Создать подсеть.
Важно
Технические ограничения Yandex Cloud временно не позволяют выбрать подсеть с диапазоном адресов
192.168.0.0/24
. -
В поле Публичный адрес выберите
Автоматически
.
-
- В блоке Доступ укажите данные для доступа на ВМ:
-
В поле Логин введите имя пользователя.
Внимание
Не используйте логин
root
или другие имена, зарезервированные операционной системой. Для выполнения операций, требующих прав суперпользователя, используйте командуsudo
. -
В поле SSH-ключ вставьте содержимое файла открытого ключа. Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел о подключении к ВМ по SSH.
-
- Нажмите кнопку Создать ВМ.
Создание ВМ может занять несколько минут. Когда ВМ перейдет в статус RUNNING
и запустится GitLab, настройте его.
(Опционально) Создайте проект GitLab
Чтобы настроить интеграцию для отдельного проекта GitLab, создайте его.
-
Авторизуйтесь в веб-интерфейсе инстанса Managed Service for GitLab.
-
Нажмите кнопку Create a project.
-
Нажмите кнопку Create blank project.
-
Заполните поля:
- Project name — укажите имя проекта.
- Project URL — выберите пользователя-администратора в поле рядом с FQDN инстанса Managed Service for GitLab.
Остальные поля оставьте без изменений.
-
Нажмите кнопку Create project.
-
На странице сервиса Yandex Compute Cloud выберите созданную ВМ и скопируйте ее публичный IP-адрес.
-
Подключитесь к ВМ по протоколу SSH.
-
Получите пароль администратора GitLab с помощью команды ВМ:
sudo cat /etc/gitlab/initial_root_password
-
Скопируйте пароль из строки
Password
(исключая пробелы) в буфер обмена или отдельный файл. -
Откройте в браузере ссылку
http://<публичный_IP-адрес_ВМ>
. Откроется веб-интерфейс GitLab. -
Войдите в систему с учетной записью администратора:
- Username or email —
root
. - Password — пароль, скопированный ранее.
Если вы не можете войти, сбросьте пароль учетной записи администратора
. - Username or email —
-
Повторно войдите в систему с учетной записью администратора, используя новый пароль.
-
Выберите Create a project.
-
Укажите имя проекта.
-
Нажмите кнопку Create project.
Создайте хук для интеграции
Чтобы привязывать мерж-реквесты из GitLab к задачам в Tracker, создайте хук:
- Если у вас еще нет OAuth-токена для работы с Tracker API, получите его.
- Проверьте наличие доступа к API с помощью запроса информации о текущем пользователе.
- Откройте инстанс GitLab и перейдите к настройкам хука:
- Для включения интеграции на весь инстанс GitLab (требуются права администратора GitLab):
- В панели слева нажмите на раскрывающийся список Your work и выберите пункт Admin Area.
- Перейдите в раздел System Hooks.
- Для включения интеграции на отдельный проект:
- Перейдите в необходимый проект.
- В панели слева нажмите кнопку Settings и выберите пункт Webhooks.
- Для включения интеграции на весь инстанс GitLab (требуются права администратора GitLab):
- Укажите параметры хука:
-
URL —
https://api.tracker.yandex.net/v2/system/gitlab/receive?comments=true&<тип_организации>=<идентификатор_организации>
.Где:
-
comments=true
— включает автоматическое создание комментариев в задаче со ссылкой и информацией о мерж-реквестах. Отключите, если комментирование не нужно. Параметр доступен только для Managed Service for GitLab. -
<тип_организации>
— может принимать следующие значения:x_cloud_org_id
— если тип вашей организации Yandex Cloud Organization.x_org_id
— если тип вашей организации или Яндекс 360 для бизнеса, или одновременно Яндекс 360 для бизнеса и Yandex Cloud Organization.
-
<идентификатор_организации>
— идентификатор организации на странице организаций Tracker .
-
-
Secret token — OAuth-токен робота, от имени которого будут добавляться связи, в формате
OAuth <содержимое_токена>
.
Например:OAuth y1_AQAD-qJScAAAEKEQbBNnChvfBIqR_yEQl_HMO0********
. -
В блоке Trigger выключите все опции, кроме Merge request events.
-
В блоке SSL verification включите опцию Enable SSL verification.
-
- Нажмите кнопку Add system hook (Add webhook для отдельного проекта).
На странице появится блок System Hooks (Project Hooks для отдельного проекта), в котором отобразится созданный хук и его параметры.
Протестируйте хук
- В блоке System Hooks (Project Hooks для отдельного проекта) нажмите кнопку Test.
- В раскрывающемся списке выберите пункт Merge request events.
Тестовый запрос должен вернуть ответ Hook executed successfully: HTTP 204
. Если тестовый запрос возвращает ошибку, значит параметры хука указаны неверно.
Проверьте результат
-
Создайте задачу в Tracker.
-
Создайте мерж-реквест
в GitLab и укажите в его названии или описании ключ задачи. -
Убедитесь, что в задаче Tracker в разделе Связи с внешними приложениями появилась ссылка на мерж-реквест из GitLab.
Если вы использовали Managed Service for GitLab и включили автоматическое комментирование при создании хука, то в задаче появится комментарий со ссылкой на мерж-реквест и информацией о нем.
Удалите созданные ресурсы
Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:
- Удалите инстанс Managed Service for GitLab или созданную ВМ с образом GitLab.
- Если вы зарезервировали публичный статический IP-адрес для ВМ, освободите и удалите его.