к вашему сведению, в 2019 году также есть такой вариант:
требуется этот пакет: "brainmaestro/composer-git-hooks"
и добавьте следующие строки в ваш composer.yaml
"extra": {
"hooks": {
"commit-msg": [
"regex=\"^([A-Z]{2,4}-[0-9]{1,4}|(no-ticket|NO-TICKET)):[\\s]*.{10,}\"",
"file=`cat $1`",
"if ! [[ $file =~ $regex ]]; then",
" echo \"ERROR - Commit message is wrong or too short. E.g. XXX-33: Description or no-ticket : Description\"",
" exit 1",
"fi"
],
"pre-commit": [
"git status --porcelain | grep -e '^ [AM]\\(.*\\).php$' | cut -c 3- | while read line; do",
"ROOT=`php -r \"echo __DIR__;\"`",
"bin/php-cs-fixer fix -nq --config=$ROOT/.php_cs \"$line\";",
"bin/phpcbf --standard=PSR2 --encoding=utf-8 -n -p \"$line\";",
"git add \"$line\";",
"done",
"echo committing on branch $(git rev-parse --abbrev-ref HEAD)"
]
}
}
Это пример, который работает для меня. Что он в основном делает, так это:
Каждый раз, когда вы запускаете «установку композитора» или «обновление композитора», проверяются хуки в .git/hooks. Если крючки уже на месте, ничего не происходит. Если они отсутствуют, то строки сверху разбираются на хуки с шебангом в начале. Затем они выполняются каждый раз, когда кто-то запускает хук.
Если у вас нет больших сценариев, это IMO лучшее решение, чем копирование сценариев.
Примечание: если вы измените строки в composer.json для хуков, вы должны сначала удалить соответствующий хук, прежде чем запускать «установку композитора», иначе ничего не изменится.
person
Calamity Jane
schedule
12.12.2019