Хук гита для автоматизации добавления номера задачи заданного формата в коммит. (полезно, когда ветки выглядят в духе feature/<номер задачи>-<вспомогательный суффикс> или issue-<номер задачи>/<вспомогательный суффикс>)
Скрипт сначала получает имя ветки. Затем из имени ветки получает основной шаблон для дальнейшей работы (например, попадающий под формат issue-\d+).
Далее в основном шаблоне происходит поиск и получение подстроки, указанного формата, которая будет подставляться уже в сообщение коммита.
Дальше проверяем:
- Не получилось ли у нас пустое значение для вставки в сообщение коммита
- Нет ли уже подобных вставок (для корректной обработки случая --amend и
git commit -m '<message>')
Если проходят все условия, то в начало коммита проставляется номер задачи заданного формата.
По умолчанию в скрипте установлены следующие переменные для работы:
GIT_PREPARE_COMMIT_OUT_FORMAT- выходной формат сообщения в коммит. По умолчанию[#__value__], где__value__- плейсхолдер, который будет заменен данными из имени веткиGIT_PREPARE_COMMIT_REGEXP_BRANCH_TEMPLATE- основной шаблон наименования, который надо найти в имени ветки. По умолчаниюissue-\d+GIT_PREPARE_COMMIT_REGEXP_FOR_SEARCH- регулярка для поиска необходимой подстроки в основном шаблоне. По умолчанию\d+
Параметры можно кастомизировать, задав их в своем файле конфигурации пользователя: ~/.config/prepare.config.
Например, внести следующую запись:
GIT_PREPARE_COMMIT_OUT_FORMAT="[issue #__value__]"В свой репозиторий необходимо скопировать приведенный выше код в файл .git/hooks/prepare-commit-msg и дать ему права на выполнение:
$ cd <repository-dir>
$ vim .git/hooks/prepare-commit-msg
<вставка кода>
$ chmod 755 .git/hooks/prepare-commit-msgДалее при каждом коммите в начало сообщения будет подставляться номер задачи в формате [#задача]
Написан скрипт для автоматической установки данного хука