CLI tool untuk menganalisis profil pengguna dan repositori GitHub langsung dari terminal.
- Fitur
- Persyaratan Sistem
- Instalasi
- Cara Mendapatkan GitHub Token
- Memasukkan Token ke Aplikasi
- Cara Penggunaan
- Daftar Perintah
- Menjalankan Tests
- Struktur Proyek
- Troubleshooting
- Analisis profil pengguna — total repo, bintang, fork, bahasa favorit, repo terpopuler
- Analisis repositori — bintang, fork, watcher, kontributor, lisensi
- Top repositori — daftar repo teratas berdasarkan jumlah bintang
- Perbandingan pengguna — bandingkan statistik dua akun secara berdampingan
- Output JSON — flag
--jsonuntuk integrasi dengan tools lain - Dukungan GitHub Token — via file
.env,.gh-analyzerrc, atau flag--token - Penanganan rate limit — pesan error jelas beserta waktu reset
- Mekanisme retry — otomatis mencoba ulang saat server error
- Cache otomatis — cache 5 menit untuk menghindari request berulang ke API
- Paginasi — mengambil semua repo meskipun jumlahnya ratusan
- Loading spinner — indikator visual saat mengambil data
| Kebutuhan | Versi Minimum |
|---|---|
| Node.js | v18.0.0 atau lebih baru |
| npm | v8.0.0 atau lebih baru |
| Sistem Operasi | Windows / macOS / Linux |
Cek versi Node.js yang terinstall:
node --versionJika belum terinstall, unduh di: https://nodejs.org
Langkah 1 — Masuk ke folder proyek
cd github-analyzer-cliLangkah 2 — Install dependensi
npm installLangkah 3 — Install secara global (direkomendasikan)
npm linkSetelah npm link, perintah bisa dijalankan dari direktori manapun:
github-analyzer-cli --helpJika tidak ingin install global, gunakan cara langsung:
node src/index.js --helpTanpa token, GitHub membatasi API hanya 60 request per jam. Dengan token pribadi, batasnya naik menjadi 5.000 request per jam. Token bersifat gratis dan bisa dibuat kapan saja.
Langkah 1 — Login ke GitHub
Buka browser dan login di github.com.
Langkah 2 — Buka Settings
Klik foto profil di pojok kanan atas halaman, lalu pilih Settings dari menu yang muncul.
Foto profil → Settings
Langkah 3 — Buka Developer Settings
Di halaman Settings, lihat sidebar sebelah kiri. Scroll ke paling bawah sampai menemukan menu Developer settings, lalu klik.
Settings → Developer settings
Langkah 4 — Pilih Personal Access Tokens
Di halaman Developer settings, klik Personal access tokens, lalu pilih Tokens (classic).
Developer settings → Personal access tokens → Tokens (classic)
Langkah 5 — Buat token baru
Klik tombol Generate new token, lalu pilih Generate new token (classic).
Langkah 6 — Isi form pembuatan token
Lengkapi form yang muncul:
- Note — isi nama untuk token ini, contoh:
github-analyzer-cli - Expiration — pilih masa berlaku, disarankan
90 daysatauNo expiration - Select scopes — centang dua izin berikut:
[x] public_repo — Akses repositori publik
[x] read:user — Baca informasi profil pengguna
Langkah 7 — Generate token
Klik tombol hijau Generate token yang ada di bagian bawah halaman.
Langkah 8 — Salin token
Token akan tampil satu kali saja. Salin segera sebelum menutup atau berpindah halaman. Tampilan token seperti ini:
ghp_ABCdef123456789GHIjklMNOpqrSTUvwxYZ
Catatan: Jangan tutup halaman sebelum menyalin token. Token tidak bisa dilihat lagi setelah halaman ditutup — jika lupa menyalin, buat token baru. Jangan bagikan token ke siapapun dan jangan di-commit ke repository Git.
Ada tiga cara untuk memasukkan token. Pilih salah satu yang paling sesuai.
Ini cara paling umum dan aman karena token tersimpan di file lokal dan tidak perlu diketik ulang setiap saat.
Langkah 1 — Buat file .env dari template
# Linux / macOS
cp .env.example .env
# Windows (Command Prompt)
copy .env.example .envLangkah 2 — Buka file .env dengan teks editor
# VS Code
code .env
# Nano (Linux/macOS)
nano .env
# Notepad (Windows)
notepad .envLangkah 3 — Masukkan token
Isi file .env seperti berikut, ganti nilai setelah = dengan token yang sudah disalin:
GITHUB_TOKEN=ghp_ABCdef123456789GHIjklMNOpqrSTUvwxYZAturan penulisan yang benar:
- Tidak ada spasi di sekitar tanda
= - Tidak menggunakan tanda kutip (
"atau') - Token langsung ditulis setelah
=
Langkah 4 — Simpan file dan jalankan CLI
Token akan terbaca secara otomatis setiap kali CLI dijalankan:
github-analyzer-cli user octocatAlternatif lain adalah membuat file konfigurasi .gh-analyzerrc di folder root proyek dengan format JSON:
{
"token": "ghp_ABCdef123456789GHIjklMNOpqrSTUvwxYZ"
}CLI akan membaca file ini secara otomatis setiap kali dijalankan.
Token bisa dimasukkan langsung saat menjalankan perintah menggunakan flag --token:
github-analyzer-cli user octocat --token ghp_ABCdef123456789GHIjklMNOpqrSTUvwxYZCara ini praktis untuk penggunaan sementara, namun token akan terlihat di riwayat terminal.
Jika lebih dari satu sumber token tersedia pada saat yang sama, urutan prioritasnya adalah:
Flag --token > File .env > File .gh-analyzerrc
Verifikasi instalasi berhasil:
github-analyzer-cli --version
github-analyzer-cli --helpAnalisis profil pengguna GitHub:
github-analyzer-cli user octocat
github-analyzer-cli user torvaldsAnalisis repositori:
github-analyzer-cli repo microsoft/vscode
github-analyzer-cli repo facebook/reactLihat top repositori seorang pengguna:
# Default: tampilkan 5 repo teratas
github-analyzer-cli top sindresorhus
# Tampilkan 10 repo teratas
github-analyzer-cli top sindresorhus --limit 10Bandingkan dua pengguna:
github-analyzer-cli compare torvalds gaearonOutput dalam format JSON — tambahkan flag --json di perintah apapun:
github-analyzer-cli user octocat --json
github-analyzer-cli repo facebook/react --json
github-analyzer-cli top sindresorhus --json
github-analyzer-cli compare torvalds gaearon --json| Perintah | Deskripsi |
|---|---|
user <username> |
Analisis profil pengguna GitHub |
repo <owner>/<repo> |
Analisis repositori GitHub |
top <username> |
Tampilkan repo teratas berdasarkan bintang |
compare <user1> <user2> |
Bandingkan statistik dua pengguna |
| Flag | Berlaku Pada | Deskripsi |
|---|---|---|
--json |
Semua perintah | Output dalam format JSON mentah |
--token <token> |
Semua perintah | GitHub Personal Access Token |
--limit <angka> |
top |
Jumlah repo yang ditampilkan (default: 5, maks: 20) |
-V, --version |
— | Tampilkan versi aplikasi |
-h, --help |
— | Tampilkan bantuan |
npm testOutput yang diharapkan:
PASS tests/githubService.test.js
fetchUser
✓ returns computed user stats
✓ throws on 404
fetchRepo
✓ returns repo stats
fetchTopRepos
✓ returns sorted top repos
Tests: 4 passed, 4 total
github-analyzer-cli/
├── src/
│ ├── commands/
│ │ ├── user.js # Perintah: analisis pengguna
│ │ ├── repo.js # Perintah: analisis repositori
│ │ ├── top.js # Perintah: top repositori
│ │ └── compare.js # Perintah: perbandingan pengguna
│ ├── services/
│ │ └── githubService.js # Logika API, cache, retry, paginasi
│ ├── utils/
│ │ ├── formatter.js # Fungsi format tampilan
│ │ └── logger.js # Logger berwarna dan animasi spinner
│ └── index.js # Entry point dan konfigurasi Commander
├── tests/
│ └── githubService.test.js # Unit tests untuk service layer
├── .env # Token kamu — jangan di-commit ke Git
├── .env.example # Template file .env
├── .gh-analyzerrc.example # Template konfigurasi alternatif
├── .gitignore
├── jest.config.js
├── package.json
└── README.md
Perintah belum terinstall secara global. Jalankan:
npm linkAtau jalankan langsung tanpa install global:
node src/index.js user octocatBatas 60 request/jam tanpa token sudah terlampaui. Solusi:
- Buat GitHub Token mengikuti panduan di atas
- Tambahkan ke file
.env:
GITHUB_TOKEN=ghp_token_kamu_disiniUsername tidak ditemukan di GitHub. Pastikan penulisan username sudah benar, lalu cek langsung di: https://github.com/username
Format perintah repo harus menggunakan tanda / antara nama pemilik dan nama repo:
# Salah
github-analyzer-cli repo facebook react
# Benar
github-analyzer-cli repo facebook/reactPeriksa hal-hal berikut:
- Nama file harus tepat
.env, bukan.env.txtatau.env.example - File harus berada di folder root proyek, sejajar dengan
package.json - Format penulisan harus benar — tanpa spasi di sekitar
=, tanpa tanda kutip:
# Benar
GITHUB_TOKEN=ghp_xxxxx
# Salah — ada spasi
GITHUB_TOKEN = ghp_xxxxx
# Salah — ada tanda kutip
GITHUB_TOKEN="ghp_xxxxx"