25 poin oleh ironlung 2023-06-14 | 2 komentar | Bagikan ke WhatsApp

*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 perintah npx husky install agar 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
  1. Mendefinisikan commit convention dalam format commitlint
  • Berdasarkan kerangka dasar pesan commit, definisikan properti yang sesuai untuk tiap tim dalam file commitlint.config.ts
  1. Mendaftarkan commitlint ke Husky
  • Daftarkan perintah commitlint pada hook commit-msg. Letakkan skrip di file .husky/commit-msg
  1. 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

 
yangeok 2023-06-20

Juga bagus dipakai bersama commitizen.

 
roxie 2023-06-24

Terima kasih atas alat yang bagus ini.