GitHub

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

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

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

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

— автоматически перемещать карточки при открытии или слиянии Pull Request;

— автоматически перемещать карточки на события Review: changes requested и approved;

— автоматически перемещать карточки на события deployment;

— автоматически перемещать карточки, указанные в описании к Pull Request;

Настройка

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

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

  1. В открывшемся окне перейдите в раздел GitHub. В настройках будет указан GitHub Secret и Webhook URL для вашей компании. Указанные параметры необходимо ввести в настройках репозитория на GitHub.

  2. Зайдите в GitHub. Раздел Settings → Webhooks → Add Webhooks.

  3. В открывшемся окне введите GitHub Secret и Webhook URL из Кайтена.
    В разделе Which events would you like to trigger this webhook выберите желаемые события.

Комментарии с ссылками на commit’ы в карточках

Установите Webhook согласно шагам выше.

Теперь, если в commit’е будет содержаться #XXX, где XXX — номер вашей карточки, то добавится комментарий со ссылкой на данный commit.
Чтобы комментарий появился в нескольких карточках - добавьте нужные номера карточек через запятую: #XXX,YYY,XXX
(без пробелов и дополнительных #)

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

Карточка может перемещаться автоматически: когда создается ветка, в названии которой есть ID карточки, когда открывается/вливается Pull Request, когда происходят события Review или когда происходит развертывание.

1. Настройте webhook как указано выше в «Настойке GitHub репозитория»;

2. Вернитесь в Кайтен → Настройки пространства → GitHub. Под описанием webhook есть раздел «Интеграции с репозиториями», там нажмите на кнопку «Создать»;

Название репозитория — это, например, kaiten в строчке https://github.com/kaiten-hq/kaiten;

Для событий branch createdнеобходимо указать колонку для перемещения.

Для остальных событий PR opened, PR merged, Review changes requested, Review approved необходимо, помимо колонки, указать ветку, на которую будет открыт Pull Request.

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

Перемещение нескольких карточек в одном Pull Request

Необходимо выполнить настройки из раздела Автоматические перемещения карточек.

Теперь, если вы укажете дополнительные карточки в специальном формате в описании к Pull Request, то они будут перемещаться в соответсвии с настройками для созданной ветки.

Специальный формат представляет собой ключевое слово и список ID карточек через запятую. Кроме ID, можно указать ссылку на карточку в полном hq.kaiten.ru/space/1/card/XXX или сокращенном формате /c/XXX.

Ключевые слова close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved

Например, если указать в описании к PR fixes: 1, 2, 3; resolved hq.kaiten.ru/space/1/4, /c/5, 6 , то переместятся карточки с ID от 1 до 6.

Перемещение карточек при развертывании

Необходимо выполнить настройки из раздела «Автоматическое перемещение карточек»

Дополнительно, для private-репозитория необходимо указать Personal Access Token.

Создание токена:

1. В правом верхнем углу любой страницы на GitHub кликните на вашу иконку портфолио, далее кликните Settings;

2. Слева, в сайдбаре, кликните Developer settings;

3. Слева, в сайдбаре, кликните Personal access tokens;

4. Кликните Generate new token;

5. Выберите уровень доступа repo;

6. Кликните Generate token;

7. Вставьте полученный токен в поле Personal Access Token интеграции.

Если владелец токена потеряет права доступа к репозиторию, то события развертывания не будут обрабатываться.

При успешном разворачивании на указанное окружение (Кайтен реагирует только на событие deployment_status со статусом success), анализируем все добавленные после предыдущего разворачивания коммиты в указанную ветку (поле «Ветка»). Находим коммиты, которые начинаются со слов Merge pull request и извлекаем из них id карточек. Далее перемещаем все найденные неархивные карточки в соответствующую колонку.

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

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

При создании ветки, например, fix-branch100, карточка переместится в колонку «Очередь» на доске Work.

При открытии PR на ветку development, карточка переместится в колонку In Progress на доске Work.

После прохождения Review в статусе approved, карточка переместится в колонку Approved на доске Work.

После слияния c веткой development, карточка переместится в колонку «Готово» на доске Work.

NEW

1. Новый action Draft PR opened для интеграции с GitHub;

2. Новая настройка для draft-pr;

3. Перевод из draft-pr в обычный обрабатываем как открытие PR.