Менеджер Git Hooks для Node.js, Ruby, Python и многих других типов проектов.
Документация
Прочитайте вводное сообщение
С Go (> = 1,23):
go install github.com/evilmartians/lefthook@latestС NPM :
npm install lefthook --save-devДля Руби :
gem install lefthookДля Python :
pip install lefthookРуководство по установке с большим количеством способов установить левша: APT, BREW, WINGET и другие.
Настройте свои крючки, установите их один раз и забудьте об этом: полагаться на магию внизу.
# Configure your hooks
vim lefthook.yml
# Install them to the git project
lefthook install
# Enjoy your work with git
git add -A && git commit -m ' ... ' lefthook.yml .Дает вам больше скорости. док
pre-push :
parallel : trueЕсли вы хотите свой собственный список. Пользовательские и предварительные примеры.
pre-commit :
commands :
frontend-linter :
run : yarn eslint {staged_files}
backend-linter :
run : bundle exec rubocop --force-exclusion {all_files}
frontend-style :
files : git diff --name-only HEAD @{push}
run : yarn stylelint {files}Если вы хотите отфильтровать список файлов. Вы могли бы найти больше примеров шаблона глобуса здесь.
pre-commit :
commands :
backend-linter :
glob : " *.rb " # glob filter
exclude : ' (^|/)(application|routes).rb$ ' # regexp filter
run : bundle exec rubocop --force-exclusion {all_files}Если вы хотите выполнить команды в относительном пути
pre-commit :
commands :
backend-linter :
root : " api/ " # Careful to have only trailing slash
glob : " *.rb " # glob filter
run : bundle exec rubocop {all_files}Если команд Oneline недостаточно, вы можете выполнить файлы. док
commit-msg :
scripts :
" template_checker " :
runner : bashЕсли вы хотите контролировать группу команд. док
pre-push :
commands :
packages-audit :
tags :
- frontend
- linters
run : yarn lint
gems-audit :
tags :
- backend
- security
run : bundle auditЕсли вы находитесь в среде Docker. док
pre-commit :
scripts :
" good_job.js " :
runner : docker run -it --rm <container_id_or_name> {cmd}Если вы являетесь разработчиком Frontend/Backend и хотите пропустить ненужные команды или переопределить что -то в Docker. док
# lefthook-local.yml
pre-push :
exclude_tags :
- frontend
commands :
packages-audit :
skip : trueЕсли вы хотите запустить группу крючков напрямую.
$ lefthook run pre-commitЕсли вы хотите запустить определенную группу команд напрямую.
fixer :
commands :
ruby-fixer :
run : bundle exec rubocop --force-exclusion --safe-auto-correct {staged_files}
js-fixer :
run : yarn eslint --fix {staged_files} $ lefthook run fixerВы можете контролировать то, что напечатает Lefthook с опцией вывода.
output :
- execution
- failureПроверьте примеры