Automated Conventional Commit Message Generation Powered by Google Gemini AI
Overview • Key Features • Installation • Usage • Commit Types • Configuration • Architecture • Contributing • License
Auto Commit Message adalah alat canggih yang dirancang untuk meningkatkan alur kerja Git Anda melalui pembuatan pesan commit yang didukung oleh AI. Dengan memanfaatkan model bahasa canggih Google Gemini, aplikasi ini menganalisis perubahan repositori untuk menghasilkan pesan commit yang tepat dan terstandarisasi sesuai dengan praktik terbaik.
Alat ini menjembatani kesenjangan antara pengembangan cepat dan dokumentasi yang komprehensif dengan memastikan setiap pesan commit mempertahankan standar profesional terlepas dari kompleksitas proyek atau ukuran tim.
- Analisis Perubahan Cerdas: Secara otomatis mendeteksi dan menginterpretasikan perubahan yang di-stage dalam repositori Git Anda
- Pesan Berbasis AI: Menggunakan API Google Gemini untuk menghasilkan pesan commit yang akurat secara kontekstual
- Kepatuhan Conventional Commit: Memastikan semua pesan yang dihasilkan mematuhi spesifikasi Conventional Commits
- Validasi Repositori: Memverifikasi direktori kerja adalah repositori Git yang valid sebelum eksekusi
- Konfigurasi Terpusat: Mempertahankan pengaturan global untuk penggunaan yang konsisten di berbagai proyek
- Integrasi Perintah Git: Terintegrasi dengan mulus dengan Git melalui alias kustom untuk alur kerja yang lancar
- Penanganan Error: Deteksi dan pelaporan error yang kuat dengan panduan yang jelas untuk penyelesaian
- Dukungan Lintas Platform: Kompatibel dengan lingkungan Windows dengan rencana ekspansi ke macOS dan Linux
- Python 3.7 atau lebih tinggi
- Git versi 2.20 atau lebih tinggi
- Google Gemini API key
-
Verifikasi Instalasi Python
python --version
Jika tidak tersedia, unduh dan instal dari python.org
-
Clone Repository
git clone https://github.com/idugeni/auto-commit-message.git cd auto-commit-message
-
Instal Dependencies
pip install -r requirements.txt
atau instal dependencies secara manual:
pip install google-generativeai pip install python-dotenv pip install colorlog pip install rich pip install absl-py
-
Konfigurasi Akses API
Buat file
.env.local
di direktori proyek Anda:GEMINI_API_KEY=your_api_key_here
Catatan: Pastikan file
.env.local
berada di direktori root proyek -
Konfigurasi Git Alias
Konfigurasi Git Alias untuk menggunakan script
auto-commit-message
. Anda dapat memilih antara konfigurasi sistem-wide (semua pengguna) atau pengguna-spesifik. Nama alias 'acm' dapat diganti sesuai preferensi Anda, misalnya menjadi 'cm', 'commit-ai', atau nama lain yang Anda inginkan.- Alias Sistem-Wide (Semua Pengguna)
git config --system alias.acm '!python "<path-to-project>/main.py"' --replace-all
- Alias Pengguna-Spesifik
git config --global alias.acm '!python "<path-to-project>/main.py"' --replace-all
Catatan: Ganti
<path-to-project>
dengan path lengkap ke direktori proyek auto-commit-messageTroubleshooting
Jika Anda mengalami masalah dalam membuat alias Git, opsi
--replace-all
memastikan bahwa setiap alias yang ada dengan nama yang sama akan ditimpa. Jika masalah berlanjut, konsultasikan sumber daya eksternal berikut untuk bantuan lebih lanjut:
-
Stage Perubahan Anda
git add .
Atau stage perubahan secara selektif untuk pesan commit yang lebih tepat:
git add <path/to/modified/files>
-
Generate dan Eksekusi Commit
Gunakan alias yang telah Anda konfigurasi sebelumnya (misalnya 'acm', 'cm', atau 'commit-ai'):
git <your-alias> # Contoh: git acm, git cm, atau git commit-ai
Alat ini akan:
- Menganalisis perubahan yang di-stage
- Menghasilkan pesan commit terstruktur
- Mengeksekusi operasi commit
- Review Sebelum Commit: Sistem akan menampilkan pesan commit yang dihasilkan dan meminta konfirmasi
- Tipe Commit Kustom: Alat ini mengenali semua tipe commit konvensional standar (lihat Tipe Commit)
Auto Commit Message mengikuti spesifikasi Conventional Commits, mendukung tipe commit berikut:
Tipe | Deskripsi |
---|---|
build |
Perubahan yang mempengaruhi sistem build atau dependensi eksternal |
ci |
Perubahan pada file dan script konfigurasi CI |
chore |
Tugas pemeliharaan rutin dan perubahan kecil |
docs |
Perubahan hanya pada dokumentasi |
feat |
Pengenalan fitur baru |
fix |
Perbaikan bug |
perf |
Peningkatan performa |
refactor |
Perubahan kode yang tidak memperbaiki bug atau menambah fitur |
revert |
Membatalkan commit sebelumnya |
style |
Perubahan yang tidak mempengaruhi fungsionalitas kode (pemformatan, dll.) |
test |
Menambah atau memperbaiki test |
security |
Peningkatan atau perbaikan terkait keamanan |
Sistem menggunakan file konfigurasi .env.local
yang harus dibuat di direktori proyek Anda. File ini berisi parameter berikut:
GEMINI_API_KEY
: Kunci autentikasi API Google Gemini Anda
Catatan Penting:
- Pastikan untuk membuat file
.env.local
di direktori proyek Anda (bukan di lokasi lain) - File ini harus berada di level yang sama dengan
main.py
- Contoh path:
C:/Path/To/Your/auto-commit-message/.env.local
Pengguna tingkat lanjut dapat memodifikasi parameter berikut di main.py
:
temperature
: Mengontrol kreativitas output (0.0 - 1.0)top_p
: Mengontrol keragaman output (0.0 - 1.0)top_k
: Membatasi pilihan token berikutnyamax_output_tokens
: Panjang maksimum output yang dihasilkan
Auto Commit Message dibangun dengan arsitektur modular yang terdiri dari komponen utama berikut:
- GitCommitManager: Menangani operasi Git dan manajemen repositori
- AIModelManager: Mengintegrasikan dengan API Google Gemini untuk generasi pesan
- EnvironmentManager: Mengelola konfigurasi dan variabel lingkungan
- LoggerSetup: Menyediakan logging terstruktur untuk debugging
Kontribusi sangat diterima! Jika Anda ingin berkontribusi:
- Fork repositori
- Buat branch fitur (
git checkout -b feature/AmazingFeature
) - Commit perubahan Anda (
git commit -m 'Add some AmazingFeature'
) - Push ke branch (
git push origin feature/AmazingFeature
) - Buka Pull Request
Pastikan untuk membaca CONTRIBUTING.md untuk detail lebih lanjut tentang proses kontribusi kami.
Didistribusikan di bawah Lisensi MIT. Lihat LICENSE untuk informasi lebih lanjut.
Jika Anda menyukai proyek ini, pertimbangkan untuk:
- ⭐ Memberikan bintang di GitHub
- 🐛 Melaporkan bug yang Anda temukan
- 💡 Mengusulkan fitur baru
- 🔀 Membuat pull request untuk perbaikan atau peningkatan
Made with ❤️ by idugeni