Apa yang dimaksud dengan Git Hooks?
- Kait Sisi Klien: Kait yang dimulai dengan melakukan tindakan seperti komit kode, penggabungan, atau pemeriksaan. Hal ini sering kali berguna untuk menjalankan linting, pengujian, atau menjalankan pemformat kode.
- Kait Sisi Server: Hooks ini dipanggil oleh tindakan yang terjadi di repositori bersama, seperti push. Kita sering menggunakan hooks di sisi server untuk menegakkan kebijakan, misalnya, menolak komit yang tidak mengikuti konvensi penamaan.
sumber: compile7.org |
Kasus Penggunaan Umum untuk Git Hooks dalam Pengembangan Web
1. Pemeriksaan Kualitas Kode:
- Tambahkan hook pra-komit ke Lint/Format seperti ESLint atau Prettier. Ini menjamin bahwa hanya kode yang bebas serat dan diformat dengan baik yang didorong ke repositori.
- Contoh:
#!/bin/shnpx prettier --write .npx eslint .
2. Pengujian Otomatis:
- Sebagai contoh, kita dapat menggunakan pre-push hook untuk menjalankan pengujian otomatis yang akan memastikan tidak ada kode yang rusak yang didorong ke repo.
- Contoh:
#!/bin/sh
npm test
if [ $? -ne 0 ]; then
echo "Tests failed. Push aborted."
exit 1
fi
3. Pemeriksaan Ketergantungan:
- Menyiapkan hook penyiapan (post-merge atau post-checkout) untuk secara otomatis menjalankan instal npm saat berpindah cabang atau menarik pembaruan
- Contoh:
#!/bin/sh
npm install
4. Penandaan Versi:
- Kait pasca-komit dapat digunakan untuk secara otomatis menandai nomor versi atau membuat log perubahan dari pesan komit.
5. Menerapkan Pedoman Komit:
- Kait komit-msg juga dapat memeriksa apakah pesan komit mengikuti format atau catatan tertentu (misalnya, nomor tiket atau pesan komit semantik).
- Contoh:
#!/bin/sh
commit_regex='^\[JIRA-[0-9]+\] .+'
if ! grep -qE "$commit_regex" "$1"; then
echo "Commit message does not follow the required format."
exit 1
fi
Menyiapkan Git Hooks
Ini sederhana dengan kait Git:
- Arahkan ke folder. git/hooks di repo Anda.
- Tulis file hook yang sesuai (pra-komit, pra-push, dll.) atau perbarui.
- Buat skrip Anda di dalam berkas tersebut dan buat agar dapat dieksekusi dengan:
chmod +x <hook-file>
Perlu diingat bahwa hook Git tidak diberi versi secara default karena berada di direktori .git. Untuk berbagi hook di seluruh tim, pertimbangkan untuk menggunakan alat bantu seperti Husky, yang memungkinkan Anda mengelola hook sebagai bagian dari repositori Anda.
Apa Saja Praktik Terbaik untuk Git Hooks
- Hindari Logika yang Berat dalam Hooks: Hooks dimaksudkan untuk menjadi fungsi yang cepat dan ringan. Untuk operasi yang lebih berat, Anda harus menggunakan pipa CI/CD.
- Dokumentasikan Penggunaan Hook: Pastikan tim Anda mengetahui hook apa yang Anda gunakan dan apa fungsinya.
- Menguji Hooks tanpa henti: Jika tidak ditulis dengan benar, hooks dapat merusak alur kerja Anda, oleh karena itu ujilah sebanyak mungkin sebelum menerapkannya ke produksi.
- Gunakan Alat untuk Manajemen Hook: Pertimbangkan untuk menggunakan alat bantu seperti Husky dan Lefthook untuk mempermudah membuat, membagikan, dan mengelola hook.
Kesimpulan
Git hook adalah fitur yang kuat namun sering diabaikan yang dapat mengotomatiskan tugas-tugas yang membosankan dan menerapkan praktik terbaik dalam pengembangan web. Dengan mengintegrasikan Git hook ke dalam alur kerja Anda, Anda bisa memastikan kualitas kode yang konsisten, mengurangi upaya manual, dan mendorong proses pengembangan yang lebih efisien. Baik saat Anda melakukan linting code, menjalankan pengujian, atau mengelola dependensi, Git hook menyediakan cara yang mudah untuk mengotomatisasi dan meningkatkan pipeline pengembangan web Anda.
Kembali ke>>>> Menggunakan Git dalam Alur Kerja Pengembangan Web