Manajer Git Hooks untuk Node.js, Ruby, Python dan banyak jenis proyek lainnya.
Dokumentasi
Baca Posting Pendahuluan
Dengan go (> = 1.23):
go install github.com/evilmartians/lefthook@latestDengan NPM :
npm install lefthook --save-devUntuk Ruby :
gem install lefthookUntuk Python :
pip install lefthookPanduan Instalasi dengan lebih banyak cara untuk menginstal Leftook: Apt, Brew, Winget, dan lainnya.
Konfigurasikan kait Anda, instal sekali dan lupakan: mengandalkan keajaiban di bawahnya.
# 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 .Memberi Anda lebih banyak kecepatan. dokumen
pre-push :
parallel : trueJika Anda menginginkan daftar Anda sendiri. Contoh khusus dan prebuilt.
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}Jika Anda ingin memfilter daftar file. Anda dapat menemukan lebih banyak contoh pola glob di sini.
pre-commit :
commands :
backend-linter :
glob : " *.rb " # glob filter
exclude : ' (^|/)(application|routes).rb$ ' # regexp filter
run : bundle exec rubocop --force-exclusion {all_files}Jika Anda ingin menjalankan perintah di jalur relatif
pre-commit :
commands :
backend-linter :
root : " api/ " # Careful to have only trailing slash
glob : " *.rb " # glob filter
run : bundle exec rubocop {all_files}Jika perintah Oneline tidak cukup, Anda dapat menjalankan file. dokumen
commit-msg :
scripts :
" template_checker " :
runner : bashJika Anda ingin mengontrol sekelompok perintah. dokumen
pre-push :
commands :
packages-audit :
tags :
- frontend
- linters
run : yarn lint
gems-audit :
tags :
- backend
- security
run : bundle auditJika Anda berada di lingkungan Docker. dokumen
pre-commit :
scripts :
" good_job.js " :
runner : docker run -it --rm <container_id_or_name> {cmd}Jika Anda seorang pengembang frontend/backend dan ingin melewatkan perintah yang tidak perlu atau mengganti sesuatu menjadi Docker. dokumen
# lefthook-local.yml
pre-push :
exclude_tags :
- frontend
commands :
packages-audit :
skip : trueJika Anda ingin menjalankan grup Hooks secara langsung.
$ lefthook run pre-commitJika Anda ingin menjalankan grup perintah tertentu secara langsung.
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 fixerAnda dapat mengontrol apa yang dicetak oleh Lefthook dengan opsi output.
output :
- execution
- failurePeriksa contoh