Sitemap Home

Apakah “main branch isn’t protected” itu berbahaya?

Jawaban santai tapi lengkap tentang keamanan repo dan branch protection.

Topik: Git & GitHub Waktu baca: 4–6 menit Versi: 1 kolom wide
Pengaturan branch protection di GitHub
Pengaturan branch protection di GitHub — menambahkan aturan proteksi pada branch main.
Status checks sebelum merge
Status checks wajib lulus sebelum merge — memastikan build/test berjalan sukses.
Wajib review PR di GitHub
Wajib review PR — pull request harus ditinjau dan disetujui sebelum digabung ke main.
Wajib review PR di GitHub
Intinya: kalau main branch kamu belum di-protect, bukan berarti publik bisa seenaknya mengubah atau menghapus isi repo. Hak akses tetap dikendalikan oleh kepemilikan dan kolaborator.

Pertanyaan asli

Lalu bagaimana dengan: “Your main branch isn’t protected — Protect this branch from force pushing or deletion, or require status checks before merging.” Apakah berarti semua orang bisa mengubah dan menghapus isi file di dalam repo?

Jawaban cepat

Tidak. Meski branch main kamu tidak dilindungi (unprotected), itu tidak membuat publik bebas push atau delete isi repo. Yang bisa push hanya pemilik, kolaborator yang diundang, serta GitHub Actions yang kamu beri izin eksplisit.

Siapa saja yang bisa push?

Pemilik repo: selalu bisa mengelola dan push.
Kolaborator diundang: bisa push sesuai permission yang kamu berikan.
GitHub Actions: bisa push kalau GITHUB_TOKEN diberi scope contents: write atau pakai PAT kamu.
Publik: tidak bisa push langsung. Mereka hanya bisa fork lalu ajukan Pull Request (PR), dan tetap kamu yang memutuskan merge.

Apa arti “main branch isn’t protected”?

Artinya tidak ada aturan tambahan di branch main. Kamu (dan bot yang diizinkan) bisa push langsung. Tidak ada kewajiban review sebelum merge, tidak ada status checks wajib lulus, dan force-push tidak diblokir. Ini bukan berarti publik bebas melakukan apa saja; tetap perlu izin akses.

Kalau mau lebih aman, apa yang bisa diaktifkan?

Require pull request reviews: Wajibkan minimal 1–2 review sebelum merge ke main.
Require status checks to pass: Pastikan CI (test, lint, build) lulus dulu sebelum merge.
Require signed commits: Dorong penggunaan commit yang ditandatangani (GPG/SSH) untuk integritas.
Prevent force pushes & deletions: Blokir force-push dan hapus branch agar riwayat aman.
Require linear history / up-to-date: Wajibkan rebase atau update dari main agar riwayat rapi.
Restrict who can push: Batasi hanya akun/teams tertentu yang boleh push ke main.

Kapan perlu protection?

Jika repo dikelola oleh tim, punya alur CI/CD, atau proyek publik yang menerima kontribusi aktif, branch protection sangat disarankan. Jika repo personal dan kamu satu-satunya yang pegang, membiarkan main unprotected umumnya aman dan praktis—asal kamu nyaman dengan risiko force-push yang tidak terblokir.

Singkatnya

Publik bisa lihat & fork, tapi tidak bisa push langsung. Branch protection menambah aturan internal; aktifkan jika kolaborasi makin ramai atau butuh kualitas yang konsisten.

Info perangkat & lokasi

Browser: … OS: … IP: … Kota: … Bendera: …
times;