GitLab

Интеграция GitLab с Кайтен позволяет:

— получить в комментариях к карточке Кайтен сообщения, которые содержат ссылки на commit’ы, относящиеся к данной карточке;

— автоматически создавать ссылки на Кайтен карточки в каждом коммите в GitLab

— автоматически перемещать карточки в выбранную колонку, если создается ветка в репозитории GitLab;

— автоматически перемещать карточки в выбранную колонку, если относящаяся к карточке ветка вливается в указанную ветку репозитория;

Настройка

Настойка GitLab репозитория

1. Откройте меню. В разделе «Пространства» наведите курсор на пространство, события которого вы хотите интегрировать в календарь. Нажмите на три точки справа от названия пространства, затем в выпадающем меню «Настройки пространства»

  1. В открывшемся окне перейдите в раздел GitLab.
    В настройках будет указан GitLab Secret и Webhook URL для вашей компании.
    В разделе «Интеграции с репозиториями» нажмите кнопку «Создать интеграцию».

  1. В открывшемся окне введите:

  • Название интеграции в свободном формате

  • Название репозитория — slug. Это, например, awesome-project в строчке https://gitlab.com/koshkarik/awesome-project

Обратите внимание, в названии проекта/репозитория (slug) учитывается регистр. Если в URL репозитория GitLab его slug использует заглавные буквы (Awesome-Project), то в таком же виде нужно указать название репозитория.

Обратите внимание, в случае если у вас self hosted GitLab, вы все также должны указывать только название репозитория, а не полный url!
Для примера https://koshkarik.gitlab.yandexcloud.net/koshkarik/test указывайте — test

  • Префикс

    С помощью кастомного префикса в Кайтене автоматически будет создаваться комментарий со ссылкой на коммит в GitLab.

    Задайте префикс и используйте данный префикс в коммит-сообщениях. Например, для префикса KAITEN коммит сообщение может быть следующим bug fix KAITEN-157834. (Также есть возможность указать несколько карточек через запятую и без пробела #XXXXX,YYYYY)

    В форму Настройки интеграции добавлена возможность включить галочку «Добавлять коммиты используя только кастомный префикс» и указать пространства, для которых данный префикс будет применяться.

Настройка интеграции в GitLab

  • В GitLab в меню выберете Settings → Webhooks.

  • Введите ваш Webhook URL и Gitlab Secret.

  • Нажмите кнопку Add webhook.

Убедитесь что отмечен флажок Push events и Merge requests events в секции Trigger.

Автоматические перемещения карточек

Карточка может перемещаться автоматически:

— когда создается ветка, в названии которой есть ID карточки

— когда ветка, в названии которой есть ID карточки, мержится в указанную ветку

Выберете доску / колонку в которые будет автоматически передвигаться карточка в зависимости от события

Теперь, если вы создадите ветку в вашем проекте с названием, например, branch-XXXX, где XXXX — id вашей карточки, то карточка переместиться в колонку, которая указана для события branch created. Как называть ветку — неважно, главное, чтобы там был ID карточки.

Обратите внимание, событие перемещения срабатывает только для одной карточки. То есть если в названии присутствует несколько ID карточек, событие сработает только для первой

Ссылки на карточки Kaiten в GitLab

Если настроить Кайтен как внешний issue tracker в GitLab, то при наличии в коммитах id карточки, GitLab будет делать такие id ссылками на карточки в Кайтене.

Данный функционал предоставляет GitLab: https://docs.gitlab.com/ee/user/project/integrations/custom_issue_tracker.html

Для настройки внешнего трекера перейдите в интеграции и выберите пункт «Custom issue tracker».

Далее добавьте ссылки на Кайтен (на изображении ниже вместо your_domain введите ваш домен Кайтена).

После сохранения данных настроек GitLab будет подставлять в коммитах вместо id карточек ссылки на карточки в Кайтене.

Обратите внимание, данный функционал реализуется на стороне GitLab и не зависит от Кайтена. На момент написания данной статьи не преобразовывались id карточек вместе с решеткой (т.е. #123456), а только ABC-123456.

Пример настроек интеграции

На примере карточки с ID 100:

  • При создании ветки, например, fix-branch-100, карточка переместится в колонку GitLab Tests / Очередь;

  • После слияния c веткой master, карточка переместится в колонку GitLab Tests / Готово

Проверка корректности интеграции

Добавление комментариев к карточке на основе коммит-сообщений.

  1. По умолчанию для добавления комментариев по коммитам используется префикс по умолчанию # (пример коммит-сообщения: bug fix #12345)

  2. В форме Настройки интеграции есть возможность указать кастомный префикс и при необходимости включить галочку «Добавлять коммиты используя только кастомный префикс», указав пространства, для которых данный префикс будет применяться.

    • Если нет никаких интеграций — сработает #.

    • Если есть интеграция с префиксом и без галочки — сработает префикс и # на всех пространствах.

    • Если есть интеграция с префиксом и галочкой на конкретном пространстве — сработает префикс только на этом пространстве, а # на всех остальных пространствах. И если карточка расположена и на пространстве к которому применена интеграция, и на другом пространстве, то # для нее сработает.

    • Если есть интеграция с префиксом и галочкой на конкретном пространстве — сработает префикс только на этом пространстве, а # на всех остальных пространствах. И если карточка расположена и на пространстве к которому применена интеграция, и на другом пространстве, то # для нее сработает.

    • Если есть интеграция с префиксом и галочкой и указаны все пространства —сработает только данный префикс для всех пространств, а # будет исключена.

    • Если есть интеграция с префиксом и галочкой и указаны все пространства, но есть и интеграция с префиксом без галочки - то сработает оба префикса и # для всех пространств.

  1. Префикс в коммит-сообщении должен полностью соответствовать префиксу из настроек (раскладка, регистр букв)

  1. Полное удаление настроек для репозитория сбрасывает настройку префикса. Теперь для создания комментариев следует использовать # в коммит-сообщении

  1. В интерфейсе GitLab должны быть включены Push Events в настройках (Settings → Webhooks → Интеграция с Кайтен по url. Например, https://hq.kaiten.ru/gitlabwh)