пятница, 11 августа 2017 г.

Модификация сообщения к коммиту

Не знаю, как насчет остальных трекеров, но при интеграции гита и Redmine появляется возможность связывать коммиты с задачами в трекере. Обычно это работает следующим образом - вы указываете в тексте коммита некую последовательность символов, например, task-212, которая в дальнейшем переводится в ссылку на задачу.

Если Редмайна у вас нет или интеграция с ним не настроена, можно своими силами сделать нечто похожее. Для это нам понадобится гит-хук commit-msg.

Находим его в папке .git/hooks проекта, ставим права на исполнение и заносим в него следующий код:

#!/bin/bash

# Получаем текст коммита из файла `.git/COMMIT_EDITMSG`
INPUT_FILE=$(cat $1)

# Создаем шаблон урла для редмайна или прочего трекера
# Не забываем экранировать слеши, так как данный шаблон
# будет как есть подставлен в регулярное выражение
rePattern='https:\/\/redmine.somedomain.com\/issues\/'

# C помощью sed заменяем последовательность
# вида #ЦИФРЫ (например #212) на ссылку в трекер
# вида https://redmine.somedomain.com/issues/212
INPUT_FILE=$(sed -re "s/#([0-9]+)/${rePattern}\1/g" <<< "$INPUT_FILE")
# Перезаписываем файл `.git/COMMIT_EDITMSG` новым текстом
echo "$INPUT_FILE" > $1

exit 0


Ссылка на gist.

Комментариев нет:

Отправить комментарий