- Saat memindahkan beberapa proyek dari GitHub ke Codeberg, tulisan ini merangkum cara memulai migrasi dengan usaha seminimal mungkin
- Melalui fitur import repositori di Codeberg, migrasi penuh termasuk issue, PR, dan rilis beserta artefaknya dimungkinkan, dan UI serta alur kerjanya mirip dengan GitHub
- Hosting halaman statis bisa digantikan dengan codeberg.page, dan ada juga alternatif seperti grebedoc.dev atau statichost.eu
- Tantangan terbesar adalah menyiapkan lingkungan CI, karena harus melepas runner macOS GitHub dan kuota eksekusi gratisnya, lalu menggantinya dengan Forgejo Actions atau Woodpecker CI
- Setelah migrasi, repositori GitHub bisa dipertahankan sebagai arsip read-only atau mirror, sehingga hubungan dengan ekosistem open source tidak sepenuhnya terputus
Proses pindah dari GitHub ke Codeberg
- Berdasarkan pengalaman mulai memindahkan beberapa repositori dari GitHub ke Codeberg, tulisan ini menjelaskan tingkat kesulitan dan kemudahan proses migrasi nyata
- Sebelumnya migrasi ditunda karena mengira Codeberg belum cukup siap, tetapi tergantung proyeknya, perpindahan ternyata bisa jauh lebih mudah dari dugaan
- Tujuannya bukan menyiapkan konfigurasi yang sempurna, melainkan menemukan cara termudah untuk mulai pindah
-
Migrasi repositori dan issue
- Codeberg menyediakan fitur import repositori GitHub, sehingga issue, PR, rilis, dan artefaknya dapat ikut dipindahkan
- Dalam proses ini, nomor issue, label, dan informasi penulis tetap dipertahankan
- UI Codeberg hampir sama dengan GitHub, dan pengalamannya jauh lebih sederhana dibanding prosedur rumit yang biasanya diperlukan saat pindah dari issue tracker lain ke GitHub
-
Hosting halaman statis
- Jika sebelumnya memakai GitHub Pages, codeberg.page bisa digunakan sebagai pengganti
- Memang tidak ada jaminan ketersediaan resmi (SLO), tetapi disebut belum pernah mengalami downtime dalam praktiknya
- Strukturnya mirip GitHub Pages, dengan cara mendorong HTML ke sebuah branch
- Alternatif lain yang bisa dipakai adalah grebedoc.dev atau statichost.eu
-
Tantangan lingkungan CI (continuous integration)
- Bagian paling rumit dalam migrasi adalah membangun lingkungan CI
- GitHub menyediakan runner macOS gratis dan kuota eksekusi tak terbatas untuk repositori publik, tetapi hal ini harus dilepas jika pindah ke Codeberg
- Sebagai solusi, bisa memanfaatkan cross-compilation per bahasa dan self-hosting runner Forgejo Actions
-
Forgejo Actions vs Woodpecker CI
- Di Codeberg, Woodpecker CI lebih stabil, tetapi Forgejo Actions memberi pengalaman yang lebih akrab bagi pengguna GitHub Actions
- UI dan sintaks YAML hampir sama, sehingga sebagian besar workflow GitHub Actions yang sudah ada bisa langsung berjalan
- Contohnya, bagian yang sebelumnya memakai
uses: dtolnay/rust-toolchain di GitHub Actions
dapat diubah di Forgejo Actions menjadi uses: https://github.com/dtolnay/rust-toolchain
- Saat ini dokumentasi Forgejo Actions di Codeberg belum sepenuhnya mutakhir, dan sudah ada PR terkait hal tersebut
-
Jika memerlukan runner macOS
- Jika build macOS benar-benar diperlukan, GitHub Actions bisa tetap digunakan, lalu commit dari repositori Codeberg dimirror ke GitHub
- Forgejo Actions dapat diatur untuk melakukan polling ke GitHub API agar status CI disinkronkan ke Codeberg
- Layanan CI lain yang menyediakan build macOS juga sudah dicoba, tetapi integrasinya dengan Codeberg tidak sesederhana GitHub Actions
-
Cara menangani repositori GitHub
- Setelah pindah, repositori GitHub diedit README-nya lalu diarsipkan
- Repositori juga bisa diatur agar mendorong commit dari Codeberg ke GitHub, tetapi dalam kasus ini pengguna masih bisa membuat PR dan menulis komentar issue
- Sebagian orang menonaktifkan fitur issue di repositori GitHub, tetapi ini membuat semua issue hilang sebagai 404, dan PR tidak bisa dinonaktifkan
- Sebagai contoh, repositori
libvirt/libvirt memakai GitHub Action yang otomatis menutup semua PR
- Pendekatan seperti ini bisa memberi dampak negatif pada self-hosting dan ekosistem open source secara keseluruhan
- Pengguna bisa kehilangan motivasi untuk memperbaiki optimasi build atau frekuensi unduhan file rilis
- Selama masa transisi, opsi seperti mempertahankan mirror read-only atau tetap memakai GitHub Pages dan Actions secara paralel juga patut dipertimbangkan
1 komentar
Komentar Hacker News
Saya tidak membenci Codeberg itu sendiri, tetapi ini bukan pengganti penuh GitHub
Ada banyak keterbatasan untuk mengunggah repositori kode pribadi atau skrip eksperimen, dan repositori privat dibatasi hingga 100MB
Juga tidak bisa meng-host homepage seperti GitHub Pages. Untuk penggunaan seperti ini, alternatif yang realistis adalah self-host Forgejo secara langsung
Hal terkait ini dirangkum dengan baik di FAQ Codeberg
Alasan saya menaruh proyek OSS di GitHub itu sederhana — karena komunitasnya ada di sana
Kalau cuma untuk menaruh kode, saya akan host sendiri lewat SSH atau SFTP
Saya hanya mengunggah ke instance Gitea pribadi saya, dan tidak peduli pada bintang atau promosi
Saya mengelola semua proyek pribadi dengan Forgejo self-hosted. Sama sekali tidak merindukan GitHub
Dengan Tailscale, akses bisa dibatasi sehingga crawler AI dapat diblokir
Ke depan, mengevaluasi alternatif GitHub tampaknya akan makin penting
Namun GitHub sudah menetapkan CI dan build multi-arsitektur sebagai standar, sehingga alternatif yang digerakkan komunitas sulit bersaing
GitHub memang memberi banyak hal secara “gratis”, tetapi sebagai gantinya besar kemungkinan dipakai untuk pengumpulan data dan pelatihan
Codeberg tidak mendukung repositori privat, jadi bahkan tidak bisa mencegah Copilot mengikis repositori publik
Menurut FAQ Codeberg, jika butuh proyek privat maka disarankan self-host Forgejo
Perusahaan kami sudah sepenuhnya pindah dari GitHub ke GitLab self-hosted
Ditaruh di belakang Tailscale jadi tidak ada beban SSO, dan runner CI dijalankan di EKS serta klaster GPU. Saya bisa membantu orang yang sedang mempertimbangkan migrasi serupa
Sekadar berkata “mari ganti GitHub” itu tidak berarti. Yang dibutuhkan adalah kebiasaan baru dan value proposition baru
Seperti GitHub menggantikan SourceForge, platform generasi berikutnya harus menghubungkan penulisan kode dan kolaborasi secara real-time
Misalnya bisa saja berbentuk seperti Google Docs, di mana setiap prompt menghasilkan commit
Codeberg itu ideal, tetapi secara realistis punya masalah stabilitas yang besar
Karena beroperasi tanpa Cloudflare, layanan ini rentan terhadap serangan DDoS dan sering mengalami downtime. Saat sedang mengembangkan sesuatu lalu tidak bisa mengakses remote repository, itu benar-benar menyebalkan
Sejak diakuisisi Microsoft, saya hampir tidak pernah memakai GitHub. Saya justru menyukai workflow berbasis email yang sederhana dari Sourcehut
Untuk CI pun saya rasa cukup jika berbentuk perintah yang bisa dijalankan secara lokal
Repositori kode pada dasarnya harus memiliki struktur terdistribusi dan terfederasi
Berkat sistem tanda tangan kriptografis (GPG/SSH) milik git, kepercayaan pada repositori dan kepercayaan pada commit bisa dipisahkan
Pusat cukup menangani key server dan manajemen namespace, sementara sisanya bisa didistribusikan