Un gestionnaire de crochets GIT pour Node.js, Ruby, Python et de nombreux autres types de projets.
Documentation
Lire le post d'introduction
Avec go (> = 1,23):
go install github.com/evilmartians/lefthook@latestAvec NPM :
npm install lefthook --save-devPour Ruby :
gem install lefthookPour Python :
pip install lefthookGuide d'installation avec plus de façons d'installer Lefthook: APT, Brew, Winget et autres.
Configurez vos crochets, installez-les une fois et oubliez-le: comptez sur la magie en dessous.
# 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 .Vous donne plus de vitesse. docs
pre-push :
parallel : trueSi vous voulez votre propre liste. Exemples personnalisés et prédéfinis.
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}Si vous souhaitez filtrer la liste des fichiers. Vous pourriez trouver plus d'exemples de modèles glob ici.
pre-commit :
commands :
backend-linter :
glob : " *.rb " # glob filter
exclude : ' (^|/)(application|routes).rb$ ' # regexp filter
run : bundle exec rubocop --force-exclusion {all_files}Si vous souhaitez exécuter les commandes dans un chemin relatif
pre-commit :
commands :
backend-linter :
root : " api/ " # Careful to have only trailing slash
glob : " *.rb " # glob filter
run : bundle exec rubocop {all_files}Si les commandes ONELINE ne suffisent pas, vous pouvez exécuter des fichiers. docs
commit-msg :
scripts :
" template_checker " :
runner : bashSi vous souhaitez contrôler un groupe de commandes. docs
pre-push :
commands :
packages-audit :
tags :
- frontend
- linters
run : yarn lint
gems-audit :
tags :
- backend
- security
run : bundle auditSi vous êtes dans l'environnement Docker. docs
pre-commit :
scripts :
" good_job.js " :
runner : docker run -it --rm <container_id_or_name> {cmd}Si vous vous développez un développeur frontend / backend et souhaitez sauter des commandes inutiles ou remplacer quelque chose dans Docker. docs
# lefthook-local.yml
pre-push :
exclude_tags :
- frontend
commands :
packages-audit :
skip : trueSi vous souhaitez exécuter directement le groupe Hooks.
$ lefthook run pre-commitSi vous souhaitez exécuter directement un groupe de commandes spécifiques.
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 fixerVous pouvez contrôler ce que Lefthook imprime avec une option de sortie.
output :
- execution
- failureVérifier les exemples