Интеграция 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-адресом.
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберитеВиртуальная машина
. -
В блоке Образ загрузочного диска в поле Поиск продукта введите
Gitlab
и выберите публичный образ GitLab. -
В блоке Расположение выберите зону доступности, в которой будет находиться ВМ. Если вы не знаете, какая зона доступности вам нужна, оставьте выбранную по умолчанию.
-
В блоке Вычислительные ресурсы перейдите на вкладку
Своя конфигурация
и укажите необходимую платформу, количество vCPU и объем RAM:- Платформа —
Intel Ice Lake
. - vCPU —
4
. - Гарантированная доля vCPU —
100%
. - RAM —
8 ГБ
.
- Платформа —
-
В блоке Сетевые настройки:
- В поле Подсеть выберите сеть и подсеть, к которым нужно подключить ВМ. Если нужной сети или подсети еще нет, создайте их.
- В поле Публичный адрес оставьте значение
Автоматически
, чтобы назначить ВМ случайный внешний IP-адрес из пула Yandex Cloud, или выберите статический адрес из списка, если вы зарезервировали его заранее.
-
В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:
- В поле Логин введите имя пользователя. Не используйте имя
root
или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте командуsudo
. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
- Нажмите кнопку Добавить ключ.
- Задайте имя SSH-ключа.
- Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
- Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации.
Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя создаваемой виртуальной машины.
- В поле Логин введите имя пользователя. Не используйте имя
-
В блоке Общая информация задайте имя ВМ:
ci-tutorial-gitlab
. -
Нажмите кнопку Создать ВМ.
Создание ВМ может занять несколько минут. Когда ВМ перейдет в статус 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-адрес для ВМ, освободите и удалите его.