GitHub Projects & Quiz 2.5
Tujuan Pembelajaran
- Memahami GitHub Projects untuk manajemen tugas
- Mengenal GitHub Milestones untuk target release
- Mengevaluasi pemahaman modul 2.5 melalui quiz
Materi Inti
A. GitHub Projects
GitHub Projects adalah fitur manajemen proyek bawaan GitHub yang terintegrasi langsung dengan issues dan pull requests. Kamu bisa mengelola tugas dalam bentuk kanban board atau tabel.
Fitur utama GitHub Projects:
| Fitur | Fungsi |
|---|---|
| Board view | Tampilan kanban (Todo, In Progress, Done) |
| Table view | Tampilan spreadsheet dengan kolom custom |
| Custom fields | Tambah field seperti priority, sprint, size |
| Automasi | Otomatis pindahkan item berdasarkan event |
| Filter & Group | Filter dan kelompokkan berdasarkan label, assignee, dll |
Cara membuat GitHub Project:
- Buka tab Projects di profil GitHub atau repository
- Klik “New project”
- Pilih template: Board, Table, atau Roadmap
- Tambahkan kolom sesuai workflow tim (contoh: Backlog, Todo, In Progress, Review, Done)
- Tambahkan issues dan PR ke project
Menghubungkan Issues ke Project:
- Buka issue dan pilih project di sidebar kanan
- Atau drag-and-drop issue ke project board
- Issue otomatis berpindah kolom saat PR yang terkait di-merge (jika automasi aktif)
B. GitHub Milestones
Milestones mengelompokkan issues dan PR ke target release tertentu. Ini membantu melacak progress menuju versi atau deadline tertentu.
Cara menggunakan Milestones:
- Buka tab Issues di repository
- Klik Milestones lalu “New milestone”
- Isi nama (contoh: “v1.0.0 Release”), deskripsi, dan due date
- Assign issues ke milestone tersebut
Contoh struktur milestone:
Milestone: v1.0.0 Release (Due: 31 Maret 2025)
- [x] Issue #1: Setup project structure
- [x] Issue #2: Halaman login
- [ ] Issue #3: Halaman dashboard
- [ ] Issue #4: API integration
Progress: 50% (2/4 issues closed)
C. Labels untuk Organisasi
Labels membantu mengkategorikan issues dan PR:
| Label | Warna | Fungsi |
|---|---|---|
bug | Merah | Laporan bug |
enhancement | Biru | Fitur baru |
documentation | Hijau | Dokumentasi |
good first issue | Ungu | Cocok untuk pemula |
priority: high | Oranye | Prioritas tinggi |
status: in progress | Kuning | Sedang dikerjakan |
Demonstrasi Live
Membuat Project Board
- Buka repository di GitHub
- Klik tab Projects lalu “Link a project” atau buat baru
- Pilih template Board
- Buat kolom: Backlog, Todo, In Progress, Review, Done
- Tambahkan beberapa issues
Membuat Issues dan Milestone
# Buat issues menggunakan GitHub CLI (gh)
gh issue create --title "Setup halaman utama" --body "Buat file index.html dengan layout dasar" --label "enhancement"
gh issue create --title "Perbaiki navigasi" --body "Menu tidak responsif di mobile" --label "bug"
gh issue create --title "Tambah halaman about" --body "Halaman tentang tim dan produk" --label "enhancement"
# Buat milestone
gh api repos/:owner/:repo/milestones --method POST -f title="v1.0.0" -f description="Release pertama"
# Assign issue ke milestone (nomor milestone = 1)
gh issue edit 1 --milestone "v1.0.0"
gh issue edit 2 --milestone "v1.0.0"
gh issue edit 3 --milestone "v1.0.0"
Latihan Interaktif
Latihan: Buat Project Board Lengkap
Langkah 1: Buat repository baru atau gunakan yang sudah ada
Langkah 2: Buat minimal 5 issues:
gh issue create --title "Setup project structure" --label "enhancement"
gh issue create --title "Buat halaman login" --label "enhancement"
gh issue create --title "Fix bug responsive header" --label "bug"
gh issue create --title "Tambah dokumentasi API" --label "documentation"
gh issue create --title "Implementasi dark mode" --label "enhancement"
Langkah 3: Buat GitHub Project dengan Board view:
- Kolom: Backlog, Todo, In Progress, Done
- Pindahkan issues ke kolom yang sesuai
Langkah 4: Buat Milestone “v1.0.0” dan assign beberapa issues
Langkah 5: Kerjakan satu issue:
# Ambil issue dan buat branch
git switch -c feature/login-page
echo "<form><input type='email'><input type='password'><button>Login</button></form>" > login.html
git add . && git commit -m "feat: tambah halaman login
Closes #2"
git push origin feature/login-page
Buat PR dan perhatikan issue otomatis tertutup saat PR di-merge.
Preview Level 3: Advanced
Selamat, kamu sudah menyelesaikan Level 2 (Intermediate)! Di Level 3, kamu akan belajar:
- Rebase vs Merge: Kapan menggunakan masing-masing
- Interactive Rebase: Merapikan history commit
- Reflog & Recovery: Menyelamatkan commit yang “hilang”
- Cherry-pick & Bisect: Teknik advanced untuk debugging
- Git Hooks & Submodules: Otomatisasi dan modul external
- Resolusi Konflik Kompleks: Menangani merge conflict multi-file
Quiz Modul 2.5
Quiz ini menguji pemahaman tentang remote lanjutan, fork synchronization, dan GitHub Projects.
Passing grade: 70% (minimal 6 dari 8 benar)
Topik yang Diuji
| No | Topik | Jumlah Soal |
|---|---|---|
| 1 | Remote & Upstream | 2 soal |
| 2 | Fork Synchronization | 2 soal |
| 3 | Remote Tracking | 2 soal |
| 4 | GitHub Projects & Milestones | 2 soal |
Materi yang Perlu Dikuasai
Remote & Upstream:
upstreammerujuk pada remote repository asli yang di-forkgit remote add upstream <url>untuk menambahkan remote upstreamoriginmenunjuk ke fork kamu,upstreammenunjuk ke repo asli
Fork Synchronization:
- Workflow:
git fetch upstreamlalugit merge upstream/mainlalugit push - Jangan hapus fork dan fork ulang untuk sync (cara yang salah)
git pull --rebasemembuat history linear tanpa merge commit
Remote Tracking:
origin/mainmenunjukkan posisi terakhir yang diketahui dari branch main di remote- Saat push ditolak karena non-fast-forward, pull dulu baru push
git fetch --allmengupdate semua remote tracking branches
GitHub Projects & Milestones:
- GitHub Projects untuk mengelola tugas dalam kanban board
- Milestones mengelompokkan issues/PR ke target release tertentu
Closes #Ndi PR otomatis menutup issue saat merge
Tugas Mandiri
- Buat project board di salah satu repository GitHub kamu
- Buat minimal 3 issues dengan label yang sesuai
- Buat milestone dan assign issues ke milestone tersebut
- Kerjakan 1 issue: buat branch, commit, push, PR, dan merge
- Verifikasi bahwa issue otomatis tertutup saat PR di-merge dengan
Closes #N
Quiz: Review Modul 2.5
Jawab 8 pertanyaan berikut untuk menguji pemahaman kamu.
"upstream" dalam konteks fork biasanya merujuk pada...