Skip to content

DavertTanz/prepare-commit-msg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

prepare-commit-msg

Описание

Хук гита для автоматизации добавления номера задачи заданного формата в коммит. (полезно, когда ветки выглядят в духе feature/<номер задачи>-<вспомогательный суффикс> или issue-<номер задачи>/<вспомогательный суффикс>)

Принцип работы

Скрипт сначала получает имя ветки. Затем из имени ветки получает основной шаблон для дальнейшей работы (например, попадающий под формат issue-\d+).

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

Дальше проверяем:

  1. Не получилось ли у нас пустое значение для вставки в сообщение коммита
  2. Нет ли уже подобных вставок (для корректной обработки случая --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

Далее при каждом коммите в начало сообщения будет подставляться номер задачи в формате [#задача]

Автоматическая установка

Написан скрипт для автоматической установки данного хука

About

Custom git-hook 'prepare-commit-msg'

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages