Git Hooks Manager สำหรับ 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คู่มือการติดตั้ง พร้อมวิธีการติดตั้ง 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หากคุณต้องการรายการของคุณเอง ตัวอย่างที่กำหนดเองและ 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}หากคุณต้องการกรองรายการไฟล์ คุณสามารถหาตัวอย่างรูปแบบลูกโลกได้ที่นี่
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}หากคุณเป็นนักพัฒนาส่วนหน้า/แบ็กเอนด์และต้องการข้ามคำสั่งที่ไม่จำเป็นหรือแทนที่บางสิ่งบางอย่างลงใน Docker เอกสาร
# lefthook-local.yml
pre-push :
exclude_tags :
- frontend
commands :
packages-audit :
skip : trueหากคุณต้องการเรียกใช้กลุ่ม Hooks โดยตรง
$ 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ตรวจสอบตัวอย่าง