Интеграция с GitLab
Отображение в задаче
- Вкладка "GitLab" - будет отображать следующие данные из gitLab:
- Issues в которых была упомянута задача METEOR с соответствующим статусом (Открыто, Закрыто).
- Merge Requests (MR), связанные с задачей, включая их статусы (Открыт, Объединено, Закрыт). MR и задачи связаны в соотношении n:m, поэтому задача может быть связана с несколькими MR, а MR — с несколькими задачами;
- Текущее состояние выполнения Pipline для Merge Request (Created, Running, Waiting, Failed, Pending, Canceled, Skipped, Manual, Scheduled, Success).
.png&w=3840&q=75)
- Вкладка "История" - будет отображать изменения по MR и Issues (комментарии, обновления статусов):
.png&w=3840&q=75)
Настройка интеграции
Необходимо настроить METEOR и GitLab, чтобы интеграция заработала.
METEOR
-
Создайте специальную роль, в которой будут как минимум два права:
- "Просмотр задач";
- "Добавление комментариев".
(Администрирование -> Пользователи и права -> Роли -> Конкретная роль -> раздел "Задачи")
.png&w=3840&q=75)
-
Создайте пользователя для интеграции
- назначьте ему созданную роль;
- добавьте этого пользователя во все проекты, где нужна интеграция с GitLab.
(Администрирование -> Пользователи и права -> Пользователи)
%20(1)%20(1)%20(2).png&w=3840&q=75)
- Сгенерируйте API-токен для этого пользователя (он понадобится вам на стороне GitLab). Для генерации токена необходимо:
- войдите в систему под учётной записью нового пользователя.
- перейдите в Профиль (нажмите на аватарку в правом верхнем углу и выберите Профиль).
- далее "Токены доступа".
- нажмите на кнопку "+ Токен API".
Вы должны знать!
Важно! Обязательно скопируйте сгенерированный токен и надёжно сохраните его. Токен нельзя будет посмотреть позже!
- Активируйте модуль GitLab в настройках проекта (Настройки проекта -> Модули).
- Выдайте права на просмотр вкладки "GitLab" нужным ролям:
- "Показывать содержимое GitLab".
GitLab
-
Добавьте Webhook в каждом репозитории:
- перейдите в Настройки -> Webhook;
- нажмите "Добавить новый webhook".
Нужно настроить URL-адрес, который указывает на конечную точку (Endpoint) webhook GitLab на вашем сервере METEOR (/op/webhooks/gitlab).
Вам понадобится Токен API, который ранее получили в METEOR. Добавьте его в URL в качестве простого параметра GET с именем key. В итоге URL должен выглядеть примерно так:
https://mycompany.u-meteor.ru/op/webhooks/gitlab?key=4221687468163843
- Примечание: для событий, которые должны запускать webhook, выберите следующие:
- Push-события (все ветви);
- Комментарии;
- Issues;
- Merge Requests;
- Pipline.
Вы должны знать!
Примечание: если вы находитесь в локальной сети, вам может потребоваться разрешить запросы к локальной сети в вашем экземпляре GitLab.
- Мы рекомендуем вам включить проверку SSL перед добавлением webhook.
Теперь интеграция настроена с обеих сторон, и вы можете её использовать!
Использование интеграции с GitLab
Создание Merge Requests (MR)
-
Создайте ветку.
- В задаче в METEOR во вкладке GitLab нажмите кнопку "Git-сниппеты", скопируйте имя ветки, нажав соответствующую кнопку:
- Откройте GitLab и создайте ветку, введя имя которое скопировали из задачи:

Таким образом, все ветки будут иметь общий шаблон, а поскольку в названии ветки указан идентификатор задачи, будет легко увидеть связь между MR и задачей, просмотрев список Merge Requests в GitLab.
-
Добавьте коммит с автоматически сгенерированным описанием.
- Используйте поле "Описание коммита" из меню «Git-сниппеты» на вкладке "GitLab":
- Создайте коммит в gitlab, вставив скопированное описание коммита:
- После внесения изменений вы можете создать MR. Заголовок и комментарий со ссылкой на соответствующую задачу METEOR будут заполнены автоматически, в случае если в ветке есть только один коммит:

- Из-за ограничения в один коммит или если есть необходимость создавать ветку как можно раньше, в меню «Git-сниппеты» можно создать пустой коммит. По кнопке «Создать ветку с пустым коммитом», который создаст ветку и добавит в неё пустой коммит с помощью одной команды.
.png&w=3840&q=75)
Связь Merge Requests (MR) с задачами METEOR
Для того, чтобы связать MR с задачей METEOR, в описании MR или в комментарии должна быть:
- ссылка на задачу, ранее скопированная из METEOR;
- или укажите «МТ#ID», где ID - это идентификатор задачи METEOR, в описании. Например, MT#50. Данные о MR подтянутся в METEOR и будут отображаться на вкладке "GitLab".
GitLab будет использовать сообщение первого коммита в качестве описания MR (при условии, что коммит только один)
Вы должны знать!
Обратите внимание, что «МТ#ID» чувствителен к регистру. «мт#ID» - не будет работать.
Вы должны знать!
Используйте в MR «РР#» вместо «МТ#», чтобы синхронизировать MR без комментариев.
Если вы хотите опубликовать только один комментарий из закрытого МР (имеет упоминание «РР#»), вы можете использовать «МТ#» непосредственно в этом комментарии. Таким образом, только этот конкретный комментарий будет опубликован в METEOR, а остальные комментарии останутся закрытыми.
.png&w=3840&q=75)
Описание ветки можно изменить до создания Merge Request, что позволяет дополнительно описать изменения. В описание Merge Request также можно включить ссылки на дополнительные задачи METEOR.
В GitLab MR будет выглядеть следующим образом.
Нажмите на "Создать MR":

Если статус MR изменится, это соответствующим образом отразится в задаче METEOR. Пожалуйста, ознакомьтесь с примером ниже.
.png&w=3840&q=75)
Текущее состояние выполнения Pipline для MR в METEOR отображается справа:
.png&w=3840&q=75)
Проблемы со ссылками
Интеграция METEOR с GitLab позволяет связывать задачи GitLab напрямую с задачами METEOR.
Изначально, если Issues и Merge Requests ещё не было, вы увидите следующее сообщение на вкладке GitLab.
.png&w=3840&q=75)
Вы можете создать новую задачу в GitLab или отредактировать уже существующую, введя код МТ#ID в заголовок или описание задачи. После сохранения изменений или создания задачи в GitLab, она будет отображаться на вкладке "GitLab" в METEOR.