Overcommit

Menggunakan Overcommit untuk Menjaga Kualitas Kode dan Konsistensi Commit Message

Agustinus Adven Christo

Agustinus Adven Christo

3 mins·5 Jun 2026·5
Overcommit

Saat mengembangkan aplikasi secara tim, saya menemukan bahwa beberapa masalah sederhana sering muncul berulang kali. Beberapa commit tidak mengikuti format yang telah disepakati, pemeriksaan coding style terkadang terlewat, dan beberapa temuan sederhana masih muncul saat proses code review. Meskipun masalah tersebut tidak selalu berdampak besar, akumulasi kesalahan kecil dapat mengurangi efisiensi pengembangan.

Untuk mengatasi hal tersebut, saya mengimplementasikan Overcommit sebagai Git Hook Manager pada proyek yang saya kerjakan.

Apa Itu Overcommit?

Overcommit adalah tool yang membantu menjalankan Git Hooks secara otomatis. Dengan Overcommit, berbagai pemeriksaan dapat dijalankan sebelum commit dibuat sehingga pelanggaran standar proyek dapat terdeteksi lebih awal. Pada implementasi ini, saya menggunakan Overcommit untuk:

  1. Menjalankan RuboCop sebelum commit.

  2. Menjalankan Brakeman untuk pemeriksaan keamanan aplikasi Rails.

  3. Memvalidasi format commit message agar sesuai standar tim.

Dengan pendekatan ini, proses validasi tidak lagi bergantung pada kebiasaan masing-masing developer karena dijalankan secara otomatis setiap kali commit dilakukan.

Implementasi

Langkah pertama adalah menginstal Overcommit dan memasangnya pada repository Git:

  1. Gem install overcommit

  2. Overcommit --install

  3. Membuat dan melakukan konfigurasi pada file .overcommit.yml

  4. Overcommit --sign

Konfigurasi tersebut memastikan bahwa setiap commit akan melalui pemeriksaan kualitas kode dan validasi format commit message.

Cara Kerja

Ketika developer menjalankan perintah: git commit -m "abc"

Overcommit akan menjalankan seluruh hook yang telah dikonfigurasi. Jika format commit message tidak sesuai atau ditemukan pelanggaran pada kode, proses commit akan dibatalkan dan pesan kesalahan akan ditampilkan pada terminal. Sebaliknya, commit akan diterima apabila seluruh pemeriksaan berhasil dilewati.

Contoh commit yang sesuai standar: git commit -m "[Tes] changes 2 files"

Dengan mekanisme ini, standar proyek dapat diterapkan secara konsisten tanpa perlu pemeriksaan manual setiap saat.

Hasil yang Diperoleh

  • Kerapihan kode menjadi lebih konsisten karena RuboCop selalu dijalankan sebelum commit.

  • Potensi masalah keamanan dapat dideteksi lebih awal melalui Brakeman.

  • Hasil commit message menjadi lebih terstruktur dan mudah ditelusuri.

  • Reviewer dapat lebih fokus pada logika bisnis dibandingkan masalah format.

Hal yang Perlu Diperhatikan

Overcommit berjalan di sisi developer (client-side), sehingga masih dapat dilewati menggunakan opsi: git commit --no-verify

Karena itu, menurut saya Overcommit sebaiknya digunakan sebagai lapisan validasi awal dan tetap dikombinasikan dengan proses pemeriksaan pada pipeline CI/CD agar aturan yang diterapkan tidak dapat dilewati begitu saja.

Kesimpulan

Implementasi Overcommit memberikan peningkatan yang cukup signifikan terhadap kualitas proses pengembangan. Dengan mengotomatisasi pemeriksaan menggunakan RuboCop, Brakeman, dan validasi commit message, berbagai kesalahan dapat dicegah sebelum masuk ke repository.

Meskipun konfigurasi awal membutuhkan sedikit usaha, manfaat yang diperoleh dalam menjaga konsistensi kode dan mengurangi beban code review membuat Overcommit menjadi salah satu tool yang layak dipertimbangkan untuk proyek pengembangan perangkat lunak berbasis Git.

Repository: Overcommit GitHub

•••