@resdeby/commitify
v1.0.4
Published
AI-Powered Git Commit Message Generator CLI
Downloads
778
Maintainers
Readme
🚀 Commitify
✨ AI-powered Git commit message generator with multiple providers (Gemini, Groq, Ollama)
Ucapkan selamat tinggal pada kebingungan merangkai pesan commit manual! Commitify menganalisis perubahan kode Anda (git diff) dan menghasilkan pesan commit yang singkat, padat, dan sesuai standar Conventional Commits menggunakan AI.
✨ Fitur Unggulan
- 🤖 Multi-Provider AI – Pilih antara Google Gemini, Groq, atau Ollama (local, gratis tanpa limit).
- 📋 Conventional Commits – Otomatis menghasilkan pesan dengan tipe seperti
feat,fix,chore,refactor, dll. - ⚡ Cepat & Efisien – Analisis diff dan generate commit dalam hitungan detik.
- 🎨 Emoji Support – Tambahkan emoji di awal pesan commit untuk tampilan yang lebih menarik.
- 🔧 Konfigurasi Global – Simpan API key secara global (
~/.commitifyrc) agar bisa digunakan di semua proyek. - 📜 Riwayat Commit – Lihat riwayat commit yang pernah digenerate dengan
commitify history. - 🧪 Dry Run – Coba generate pesan tanpa melakukan commit (
--dry-run). - 📊 Statistik Perubahan – Tampilkan jumlah file, insertions, dan deletions (
--stats). - 🛠️ Custom Template – Buat prompt template sendiri sesuai kebutuhan.
- ⚠️ Breaking Changes – Tandai perubahan sebagai breaking dengan menambahkan
!di pesan commit.
🛠️ Prasyarat
- Node.js (versi 18 atau lebih baru)
- Git yang sudah terinisialisasi di repository Anda
- API Key dari salah satu provider (kecuali Ollama):
- Google Gemini – gratis 60 req/menit
- Groq – gratis 30 req/menit, lebih cepat
- Ollama – local, gratis tanpa limit (install terpisah)
📦 Instalasi
Via NPM (segera hadir)
npm install -g commitifyVia Repository (untuk development)
git clone https://github.com/username/commitify.git
cd commitify
npm install
npm run build
npm link⚙️ Konfigurasi
Commitify mendukung 3 cara konfigurasi (prioritas: lokal > global > environment):
- Interaktif (Direkomendasikan)
commitify --initIkuti panduan interaktif untuk memilih provider, memasukkan API key, dan mengatur preferensi lainnya. Pada akhir setup, Anda akan ditanya apakah ingin menyimpan konfigurasi secara global (agar bisa dipakai di semua proyek) atau lokal (hanya untuk proyek saat ini).
- Manual – File Konfigurasi
Buat file
.commitifyrcdi root proyek (lokal) atau di home directory (global):
{
"provider": "gemini",
"model": "gemini-2.0-flash-exp",
"geminiApiKey": "YOUR_GEMINI_API_KEY",
"emoji": true,
"autoApprove": false,
"defaultType": "feat",
"defaultScope": "",
"temperature": 0.2,
"maxOutputTokens": 150,
"maxDiffSize": 10000,
"promptTemplate": "Analisis git diff berikut..."
}3. Environment Variables
export GEMINI_API_KEY=your_key_here
export GROQ_API_KEY=your_key_here🚀 Penggunaan
Perintah Dasar
# Stage perubahan terlebih dahulu
git add .
# Jalankan commitify (akan interaktif)
commitify
# Mode cepat (auto-approve)
commitify -y
# Auto-add + dry-run
commitify --add --dry-run
# Tampilkan statistik perubahan
commitify --stats
# Gunakan custom template
commitify --template "Buatkan pesan commit untuk: {diff}"
# Tandai sebagai breaking change
commitify --breakingSubcommand
| Perintah | Deskripsi | | :------------------------ | -------------------------------------------------------- | | commitify | doctor Diagnostik sistem dan konfigurasi | | commitify config [apiKey] | Lihat atau set API Key (tambahkan --global untuk global) | | commitify generate / gen | Generate commit message (mode sederhana) | | commitify history | Lihat riwayat commit yang digenerate | | commitify --init | Setup interaktif konfigurasi |
Opsi (Flags)
| Flag | Deskripsi |
| :---------------------- | ----------------------------------------------------------------- |
| -y, --yes | Langsung commit tanpa konfirmasi manual |
| -a, --add | Otomatis git add . sebelum commit |
| --amend | Lakukan git commit --amend |
| --init | Generate file .commitifyrc interaktif |
| -v, --verbose | Tampilkan detail proses (debug) |
| --stats | Tampilkan statistik perubahan |
| --dry-run | Generate pesan tanpa melakukan commit |
| --template <template> | Custom prompt template (gunakan {diff}, {type}, {scope}, {emoji}) |
| --breaking | Tandai sebagai breaking change (tambah !) |
🧪 Contoh Sesi
$ commitify --add --dry-run
📋 Config loaded
✅ Semua perubahan berhasil di-stage.
📄 Diff length: 10020 chars
🤖 Menggunakan Groq (LLaMA)
📌 Pilih tipe commit:
✨ feat - Fitur baru
🐛 fix - Perbaikan bug
❯ 🔧 chore - Maintenance / tugas teknis
📂 Scope (opsional, tekan Enter untuk skip): deps
⚠️ Apakah ini perubahan yang bersifat breaking? (y/N) N
📝 Pesan commit yang akan digunakan:
🔧 chore(deps): update dependencies to latest versions
Gunakan pesan ini?
✅ Ya, commit sekarang
✏️ Edit pesan
❌ Batal
🧪 DRY RUN – Tidak melakukan commit.
📝 Pesan commit: 🔧 chore(deps): update dependencies to latest versions🤝 Kontribusi
Kontribusi sangat diterima! Silakan buka issue atau pull request.
- Fork repository ini
- Buat branch fitur (git checkout -b feature/FiturBaru)
- Commit perubahan (git commit -m 'feat: Menambahkan fitur X')
- Push ke branch (git push origin feature/FiturBaru)
- Buat Pull Request
📄 Lisensi
Proyek ini dilisensikan di bawah MIT License.
Hak Cipta © [2026] [Resdeby]
Dengan lisensi ini, Anda diperbolehkan untuk:
- Menggunakan, menyalin, dan memodifikasi perangkat lunak ini
- Mendistribusikan ulang perangkat lunak ini, baik versi asli maupun yang telah dimodifikasi
- Menggabungkan ke dalam proyek komersial maupun pribadi
Satu-satunya kewajiban Anda adalah mencantumkan pemberitahuan hak cipta dan pernyataan lisensi ini di semua salinan atau bagian penting dari perangkat lunak ini.
📌 Untuk teks lisensi selengkapnya, silakan lihat file
LICENSEatau kunjungi opensource.org/licenses/MIT.
