Cara mengotomatiskan pesan commit Git
(insight.infograb.net)*Saat menulis pesan commit git terasa merepotkan
- Pesan commit yang memakai emoji dan menyertakan nomor issue mudah dilacak dan enak dilihat
- But semakin panjang dan kompleks pesan commit, semakin tidak praktis untuk ditulis setiap kali dan semakin sering terjadi kesalahan
- Mencari emoji yang tepat setiap saat adalah pekerjaan yang melelahkan
*Memaksa format pesan commit git dengan Git Hooks
- Git Hooks adalah fitur yang menjalankan skrip yang kita tentukan saat terjadi event terkait Git
- Fitur ini dibagi menjadi server hook dan client hook
*Server hook: menggunakan fitur push rule Git
- Jika menaruh skrip yang memeriksa pesan commit pada hook pre-receive, push ke server dapat dicegah
- Di GitLab, fitur push rule dapat digunakan untuk memeriksa pesan commit dengan regular expression
- Jika mendeteksi pesan commit yang melanggar regular expression, push tersebut ditolak dan menimbulkan error
*Client hook: memeriksa lebih dulu sebelum push
- Sebelum commit benar-benar diselesaikan, kita bisa membuat skrip pada hook commit-msg untuk memeriksa pesan commit
- Jika ingin memodifikasi pesan commit, tulis skrip terkait pada hook prepare-commit-msg
*Metode otomatisasi pesan commit di Infograb
- Membuat sistem otomatisasi pesan commit menggunakan Husky dan Commitlint
- Husky adalah modul npm yang membantu pengelolaan Git Hooks. Husky membuat file hook berisi skrip di bawah direktori
.husky. Setelah itu, masukkan perintahnpx husky installagar skrip tersebut terdaftar di git - commitlint adalah alat untuk mengelola commit convention dengan mudah dan memeriksa pesan commit. Tulis commit convention yang ditetapkan tim dalam format JSON. Lalu gunakan perintah commitlint untuk memeriksa pesannya
- Mendefinisikan commit convention dalam format commitlint
- Berdasarkan kerangka dasar pesan commit, definisikan properti yang sesuai untuk tiap tim dalam file
commitlint.config.ts
- Mendaftarkan commitlint ke Husky
- Daftarkan perintah commitlint pada hook commit-msg. Letakkan skrip di file
.husky/commit-msg
- Menambahkan otomatisasi
- Mengotomatiskan pekerjaan seperti menambahkan emoji atau menyisipkan nomor issue
- Di tim produk Infograb, cukup memasukkan tipe (
feat,fix) untuk menambahkan emoji secara otomatis, mengubah huruf pertama tipe menjadi kapital secara otomatis, dan jika ada nomor issue di branch maka nomor issue itu otomatis ditambahkan ke footer - Skrip otomatisasi dapat diletakkan pada hook prepare-commit-msg
2 komentar
Juga bagus dipakai bersama commitizen.
Terima kasih atas alat yang bagus ini.