GitHub bukan sekadar tempat menyimpan kode. Selama bertahun-tahun, GitHub berkembang menjadi platform kolaborasi software yang lengkap. Memahami fitur-fitur utamanya akan membuat kamu jauh lebih produktif, baik bekerja sendiri maupun dalam tim.
GitHub Issues — Manajemen Tugas dan Bug
Issues adalah sistem pelacak tugas bawaan GitHub. Setiap issue bisa mewakili bug report, feature request, pertanyaan, atau item to-do apapun.
Membuat Issue yang Baik
Issue yang baik mengandung:
- Judul yang singkat dan deskriptif
- Deskripsi detail — untuk bug: langkah reproduksi, expected vs actual behavior
- Label — kategorisasi (bug, enhancement, documentation, dll.)
- Assignee — siapa yang bertanggung jawab
- Milestone — target versi atau sprint
- Project — link ke project board
Label yang Umum Dipakai
bug — sesuatu yang tidak berfungsi
enhancement — permintaan fitur baru
documentation — perlu dokumentasi
good first issue — cocok untuk kontributor baru
help wanted — butuh bantuan dari komunitas
invalid — bukan masalah valid
wontfix — tidak akan diperbaiki
duplicate — sudah ada issue serupa
Referensi Issue di Commit dan PR
# Referensi issue di pesan commit
git commit -m "fix: perbaiki error validasi email closes #42"
git commit -m "feat: tambah dark mode refs #15"
Keyword yang otomatis menutup issue saat PR di-merge: closes, fixes, resolves diikuti #nomor.
Pull Request (PR)
PR adalah mekanisme untuk mengusulkan perubahan kode. Sebelum kode masuk ke branch utama, anggota tim lain bisa mereview, berkomentar, dan menyetujui.
Anatomy PR yang Baik
- Judul — deskriptif, idealnya mengikuti format conventional commits
- Deskripsi — menjelaskan apa yang diubah, mengapa, dan cara testnya
- Screenshot/video — untuk perubahan UI
- Checklist — langkah verifikasi untuk reviewer
- Link ke issue —
Closes #42
PR Template
Buat file .github/PULL_REQUEST_TEMPLATE.md untuk template PR otomatis:
## Deskripsi
<!-- Jelaskan perubahan yang dilakukan -->
## Jenis Perubahan
- [ ] Bug fix
- [ ] Fitur baru
- [ ] Breaking change
- [ ] Perubahan dokumentasi
## Cara Test
<!-- Jelaskan langkah untuk test perubahan ini -->
## Checklist
- [ ] Kode sudah di-review sendiri
- [ ] Test sudah ditambahkan
- [ ] Dokumentasi sudah diupdate
- [ ] Tidak ada console.log yang tertinggal
Closes #
GitHub Projects — Kanban Board
GitHub Projects adalah tool manajemen proyek terintegrasi langsung dengan repository. Bisa berbentuk Kanban board, spreadsheet, atau roadmap.
Kolom Umum Kanban
📥 Backlog → 🔄 In Progress → 👀 In Review → ✅ Done
Issues dan PR bisa langsung drag-and-drop antar kolom. GitHub Projects v2 mendukung custom fields, filter, grouping, dan view yang sangat fleksibel.
GitHub Wiki
Wiki adalah dokumentasi terstruktur untuk repository. Cocok untuk:
- Panduan instalasi dan setup
- Dokumentasi arsitektur
- Panduan kontribusi
- FAQ
Bisa diakses dan diedit dari tab Wiki di repository. Wiki sendiri adalah Git repository tersendiri yang bisa di-clone:
git clone https://github.com/username/repo.wiki.git
GitHub Actions — CI/CD Bawaan
GitHub Actions adalah platform automation yang terintegrasi langsung ke GitHub. Sudah kita bahas secara mendalam di seri Docker, tapi berikut ringkasannya dari sudut pandang Git workflow:
Trigger yang Umum
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
schedule:
- cron: '0 8 * * 1' # setiap Senin jam 8 pagi
workflow_dispatch: # trigger manual dari UI GitHub
Use Case Umum
# Auto-run tests saat ada PR
- name: Jalankan test
run: npm test
# Auto-deploy saat push ke main
- name: Deploy ke production
if: github.ref == 'refs/heads/main'
run: ./deploy.sh
# Auto-label PR berdasarkan file yang berubah
- uses: actions/labeler@v4
GitHub Pages
Host website statis langsung dari repository. Cocok untuk:
- Blog (Jekyll, Hugo)
- Dokumentasi proyek
- Portofolio
Aktifkan di Settings → Pages, pilih branch dan folder sumber.
GitHub Releases
Rilis versi software dengan changelog, binary, dan aset distribusi. Terhubung langsung ke Git tag.
# Buat tag, push, lalu buat release di GitHub
git tag -a v1.2.0 -m "Rilis v1.2.0"
git push origin v1.2.0
# Kemudian buat release di github.com/username/repo/releases/new
GitHub Gist
Gist adalah cara berbagi snippet kode secara cepat. Setiap gist adalah Git repository mini yang bisa di-clone, di-fork, dan di-comment.
Cocok untuk: script pendek, config file, contoh kode, catatan teknis.
Fitur Keamanan GitHub
Dependabot
Otomatis mendeteksi dan membuat PR untuk update dependency yang punya vulnerability:
- Aktifkan di Settings → Security → Dependabot
Code Scanning
Analisis statis kode untuk menemukan vulnerability menggunakan CodeQL:
# .github/workflows/codeql.yml
- uses: github/codeql-action/analyze@v2
with:
languages: javascript
Secret Scanning
Otomatis mendeteksi secret (API key, token) yang tidak sengaja di-commit.
Branch Protection Rules
Konfigurasi di Settings → Branches:
- Wajibkan PR sebelum merge ke
main - Wajibkan review dari N orang
- Wajibkan status checks (CI) lulus
- Larang force push
- Larang hapus branch
Keyboard Shortcut GitHub yang Berguna
| Shortcut | Aksi |
|---|---|
T |
Cari file di repository |
B |
Buka blame view |
L |
Lompat ke baris tertentu |
W |
Pilih branch/tag |
Y |
Permalink ke commit saat ini |
. |
Buka VS Code di browser (github.dev) |
> |
Buka Codespace |
Kesimpulan
GitHub jauh lebih dari sekadar hosting Git. Dengan Issues, Projects, Actions, dan fitur keamanan yang terintegrasi, GitHub adalah platform manajemen software development yang lengkap. Semakin kamu familiar dengan fitur-fiturnya, semakin produktif workflow pengembangan kamu.
Di artikel berikutnya, kita bahas Fork dan cara berkontribusi ke proyek open source di GitHub.
Kiki/🎮🍉⌨️🍩💻