{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Интеграция GitHub с Битрикс24 (с уходом от Jira): выгрузка коммитов в комментарии к задачам Битрикс24

Сегодня поговорим о разработке, системе контроля версий Git и интеграции GitHub с Битрикс24. В этой статье попробуем разобраться, почему важно сохранять историю изменений проекта, как выгрузка этих изменений в Битрикс24 помогает бизнесу и опишем настройку интеграции GitHub и CRM.

1. Как связать разработку и менеджмент с помощью интеграции GitHub?

К нам обратился заказчик — агентство полного цикла по разработке. Он очень активно использовал Jira для работы над проектами с настроенной двусторонней интеграцией Jira и GitHub, которая позволяла переходить прямо из GitHub в задачи Jira, а в комментарии к задачам выгружала ссылки на соответствующие коммиты. Заказчик принял решение мигрировать в Битрикс24, но соответствующего функционала в CRM не предусмотрено, поэтому он обратился к нам.

Давайте сначала разберемся, что такое "коммит". Начнем с того, что по стандартам отрасли в разработке принято использовать систему контроля версий - Git, и один из популярных сервисов для этого - GitHub. В нем разработчик создает репозиторий для проекта (хранилище файлов), далее в эти файлы вносятся и сохраняются изменения под конкретные задачи. Задокументированное изменение файлов в проекте - это и есть коммит

Важно здесь то, что при ошибке разработчика можно легко вернуться к предыдущей версии файла, откатив коммит. А сама система коммитов помогает понять сотруднику и команде, какие изменения и когда вносились в проект

Проблема тут в том, что GitHub — это инструмент для разработки. Он неудобен для менеджмента и отслеживания истории изменений. Иными словами, нет понимания, на какой стадии находится проект в конкретный промежуток времени. Это мешает, например, проджекту отчитаться о прогрессе владельцу проекта. К тому же, задачи по проекту ставятся в Бирикс24, а без связки GitHub с CRM разработчик запутается, какие коммиты к чему относятся. Поиск коммита, который привел к багам, непосредственно в GitHub займет больше времени, чем если бы искать его в конкретной задаче, над которой он вел работу.

Кейс про миграцию из Jira в Битрикс24 читайте здесь.

Логика работы интеграции следующая:

Менеджер ставит задачу в Битрикс24. Разработчик берет в работу задачу в Битрикс24, затем он создает ветку в репозитории, в названии которой указывается ID задачи. Так Пинкит распознает, какой коммит куда выгружать. Далее при добавлении коммита в GitHub он автоматически привязывается к комментарию в задаче.

Так можно отследить всю историю коммитов по задаче, не выходя из Битрикс24 и не авторизуясь в GitHub (а у менеджера может и вообще не быть там учетки).

Это техническое решение было реализовано в недельном спринте. Далее разберем базовые настройки интеграции.

2. Настройка интеграции GitHub и Битрикс24

2.1. На шаге 1 выбираем GitHub, действие — "Добавлен коммит", подключаем доступ. Важно обратить внимание, что под этим доступом были видны нужные репозитории в GitHub.

2.2. На шаге 2 настраиваем дополнительные инструменты (ищем задачу, к которой относится данный коммит).

2.3. На шаге 3 добавляем комментарий к задаче в Битрикс24:

Исходное условие у нас такое, что изначально создается задача в Битрикс24, а уже затем под нее создается ветка для коммитов. Таким образом, на шаге 3 нужно только обновлять задачу, а не создавать ее с нуля.

Рассматривался также и вариант о записи коммита в пользовательское поле задачи. Но так как их много, поле нужно было перезаписывать, что не отражало бы полной истории изменений. Поэтому этот вариант оказался нежизнеспособным.

Интеграция в обратную сторону тоже возможна: в каждый коммит можно передать ссылку на соответствующую задачу, чтобы разработчик мог перейти в задачу напрямую из GitHub и не искать ее вручную. Это функционал, аналогичный связке GitHub и Jira.

Интеграция не только облегчит взаимодействие как менеджера с командой, так и внутри команды разработчиков, но и уменьшит ручной труд на переключение между платформами и поиск нужного коммита.

Если вам интересно, добавить и протестировать интеграцию можно тут.

Алексей Окара, основатель Пинол и продакт-менеджер Пинкит
0
Комментарии
-3 комментариев
Раскрывать всегда