Ein Git Hooks Manager für Node.js, Ruby, Python und viele andere Arten von Projekten.
Dokumentation
Lesen Sie den Einführungsbeitrag
Mit Go (> = 1,23):
go install github.com/evilmartians/lefthook@latestMit NPM :
npm install lefthook --save-devFür Ruby :
gem install lefthookFür Python :
pip install lefthookInstallationshandbuch mit mehr Möglichkeiten zur Installation von Lfthook: APT, Brew, Winget und andere.
Konfigurieren Sie Ihre Haken, installieren Sie sie einmal und vergessen Sie sie: Verlassen Sie sich auf die Magie darunter.
# 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 -Konfigurationsoptionen.Gibt Ihnen mehr Geschwindigkeit. Dokumente
pre-push :
parallel : trueWenn Sie Ihre eigene Liste wollen. Benutzerdefinierte und vorgebaute Beispiele.
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}Wenn Sie die Liste von Dateien filtern möchten. Hier finden Sie weitere Beispiele für Glob -Muster.
pre-commit :
commands :
backend-linter :
glob : " *.rb " # glob filter
exclude : ' (^|/)(application|routes).rb$ ' # regexp filter
run : bundle exec rubocop --force-exclusion {all_files}Wenn Sie die Befehle auf einem relativen Pfad ausführen möchten
pre-commit :
commands :
backend-linter :
root : " api/ " # Careful to have only trailing slash
glob : " *.rb " # glob filter
run : bundle exec rubocop {all_files}Wenn die Befehle von Oneline nicht ausreichen, können Sie Dateien ausführen. Dokumente
commit-msg :
scripts :
" template_checker " :
runner : bashWenn Sie eine Gruppe von Befehlen steuern möchten. Dokumente
pre-push :
commands :
packages-audit :
tags :
- frontend
- linters
run : yarn lint
gems-audit :
tags :
- backend
- security
run : bundle auditWenn Sie sich in der Docker -Umgebung befinden. Dokumente
pre-commit :
scripts :
" good_job.js " :
runner : docker run -it --rm <container_id_or_name> {cmd}Wenn Sie einen Frontend-/Backend -Entwickler haben und unnötige Befehle überspringen oder etwas in Docker überschreiben möchten. Dokumente
# lefthook-local.yml
pre-push :
exclude_tags :
- frontend
commands :
packages-audit :
skip : trueWenn Sie die Hooks -Gruppe direkt ausführen möchten.
$ lefthook run pre-commitWenn Sie eine bestimmte Gruppe von Befehlen direkt ausführen möchten.
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 fixerSie können steuern, welche Lfthook -Option mit Ausgangsoption druckt.
output :
- execution
- failureBeispiele überprüfen