Um gerente de ganchos Git para Node.JS, Ruby, Python e muitos outros tipos de projetos.
Documentação
Leia o post de introdução
Com go (> = 1,23):
go install github.com/evilmartians/lefthook@latestCom npm :
npm install lefthook --save-devPara Ruby :
gem install lefthookPara Python :
pip install lefthookGuia de instalação com mais maneiras de instalar o Lefthook: Apt, Brew, Winget e outras.
Configure seus ganchos, instale -os uma vez e esqueça: confie na magia por baixo.
# 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 .Dá mais velocidade. documentos
pre-push :
parallel : trueSe você quiser sua própria lista. Exemplos personalizados e pré -construídos.
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}Se você deseja filtrar a lista de arquivos. Você pode encontrar mais exemplos de padrão global aqui.
pre-commit :
commands :
backend-linter :
glob : " *.rb " # glob filter
exclude : ' (^|/)(application|routes).rb$ ' # regexp filter
run : bundle exec rubocop --force-exclusion {all_files}Se você deseja executar os comandos em um caminho relativo
pre-commit :
commands :
backend-linter :
root : " api/ " # Careful to have only trailing slash
glob : " *.rb " # glob filter
run : bundle exec rubocop {all_files}Se os comandos online não forem suficientes, você poderá executar arquivos. documentos
commit-msg :
scripts :
" template_checker " :
runner : bashSe você deseja controlar um grupo de comandos. documentos
pre-push :
commands :
packages-audit :
tags :
- frontend
- linters
run : yarn lint
gems-audit :
tags :
- backend
- security
run : bundle auditSe você estiver no ambiente do Docker. documentos
pre-commit :
scripts :
" good_job.js " :
runner : docker run -it --rm <container_id_or_name> {cmd}Se você é um desenvolvedor de front -end/back -end e deseja pular comandos desnecessários ou substituir algo no Docker. documentos
# lefthook-local.yml
pre-push :
exclude_tags :
- frontend
commands :
packages-audit :
skip : trueSe você deseja executar o grupo de ganchos diretamente.
$ lefthook run pre-commitSe você deseja executar o grupo específico de comandos diretamente.
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 fixerVocê pode controlar o que o Lefthook impressa com a opção de saída.
output :
- execution
- failureVerifique exemplos