Web-hooks for Gitlab to integrate with Bitrix24 Self-hosted.
- если создается коммит без указания тега с номером задачи, в корп портале создается новая задача, создателем и исполнителем задачи назначается автор коммита, наблюдателем назначается руководитель автора;
- если создается коммит с указанием тега с номером задачи, то добавляется комментарий к данной задаче;
- если автор коммита не состоял в задаче, он становится соисполнителем задачи;
- поиск пользователя среди пользователей корп портала осуществляется по email пользователя, указанного в профиле GitLab, причем коммит может осуществляться по другому email (сертификату);
- если пользователь не будет найден в корп портале, комментарий к задаче будет создан от имени бота Марта;
- если не найдена задача с номером, указанным в коммите, будет создана новая задача (если найден пользователь);
- все коммиты дополнительно сохраняются в отдельном списке, чтобы можно было в дальнейшем удобно просмотреть всю историю с привязкой к задачам и пользователям корп портала;
- помимо привязки к пользователю в списке сохраняется имя и email автора коммита, так как под одной учеткой гита пользователь может работать с разными сертификатами с разных компьютеров;
- если в пуше несколько коммитов, будут обработаны все коммиты последовательно;
- тег с номером задачи может быть указан не только в коммите (хотя это наиболее частый и удобный вариант), но и названии или описании репозитория; в таком случае каждый раз при пуше в данную задачу будет добавляться соответствующий комментарий.
task<номер задачи>
Например: task822 task7744
Тег с номером задачи можно указывать:
- в тексте комментария к коммиту (предпочтительно);
- в названии или описании репозитория.
- создать список со следующими полями и кодами полей (для лога всех коммитов):
- NAME - id коммита
- COMMIT_URL - ссылка на коммит
- TASK_URL - ссылка на задачу
- AUTHOR_NAME - имя автора из коммита
- AUTHOR_EMAIL - мыло автора из коммита
- BRANCH - ветка в гите
- REPOSITORY - репа в гите
- PREVIEW_TEXT - коммент к коммиту
- залить файл куда-нибудь в папку корп портала (например, /hooks/commithandler.php
- указать значения констант в define
- добавить для каждого проекта в GitLab веб хуку на событие push, указать урл, где расположен данный скрипт (с ssl может не работать)
- проверить, что все корректно отрабатывает.
Please feel free to modify and use (GPLv2). Pull requests are strongly appreciated.