Dari GitHub ke Codeberg: pengalaman saya
(eldred.fr)- Menjelaskan secara rinci proses dan hasil memindahkan proyek pribadi serta situs web dari GitHub ke Codeberg
- Menggunakan fitur "migrate from GitHub" milik Forgejo untuk memindahkan repositori, issue, PR, wiki, dan rilis secara lengkap
- Menjalankan pengalihan tautan dan penanganan stub repositori GitHub dengan skrip otomatis untuk menandai perpindahan secara jelas
- Dalam migrasi CI/CD, memanfaatkan Forgejo Actions dari Codeberg dan menyusun workflow yang lebih ringan sesuai batasan lingkungan
- Situs web dipindahkan tanpa downtime dengan memakai git-pages dan Grebedoc, dan seluruh migrasi selesai dalam satu akhir pekan
Ringkasan migrasi
- Memindahkan situs yang di-host di GitHub Pages dan 45 repositori ke Codeberg
- Tidak selesai hanya dengan beberapa klik, dan memerlukan beberapa tahap pekerjaan manual
- Seluruh proses selesai selama akhir pekan dan berjalan tanpa kendala berarti
- Tujuannya adalah menunjukkan bahwa pengembang lain juga bisa berpindah dengan mudah
Tahap 1: Memindahkan repositori
- Codeberg berbasis Forgejo dan menyediakan fitur "migrate from GitHub"
- Di GitHub, dapat membuat Personal Access Token (PAT) agar metadata seperti issue ikut terbawa
- Karena rate limit API GitHub, mengimpor banyak repositori sekaligus bisa gagal
- Issue, PR, wiki, dan rilis berpindah dengan sempurna sehingga referensi ke GitHub tidak lagi diperlukan
Tahap 2: Pengalihan tautan
- Tautan GitHub di dalam repositori lokal diubah massal ke alamat Codeberg
- Menggunakan perintah
seddanfinduntuk penggantian otomatis berbasis teks
- Menggunakan perintah
- URL
git remotetiap repositori juga diubah ke Codeberg lalu di-push ke semua repositori
Tahap 3: Penanganan stub repositori GitHub
- Menambahkan README pemberitahuan perpindahan ke repositori GitHub, lalu mengubah deskripsi dan tautan homepage ke Codeberg
- Membuat skrip otomatis untuk menerapkannya ke banyak repositori sekaligus
- Mengarsipkan repositori dengan perintah
gh repo archive
Tahap 4: Memindahkan CI/CD
- Dokumentasi CI Codeberg menekankan prinsip meminimalkan konsumsi energi
- Karena itu, hanya proyek yang benar-benar memerlukan CI saja yang dipertahankan, seperti situs web dan build dokumentasi
- Codeberg menyediakan dua jenis CI: Woodpecker dan Forgejo Actions
- Dipilih Forgejo Actions, yang mirip dengan GitHub Actions
- Perbedaan utama
- Sebagian besar Actions tetap dapat berjalan
- Hanya tersedia runner Linux, tanpa macOS dan Windows
- Perangkat lunak yang terpasang lebih sedikit dan sumber daya lebih terbatas
- Dengan lazy runners, beban bisa didistribusikan dan eksekusi menjadi lebih ramah lingkungan
- Untuk meningkatkan performa CI, sempat memakai image Docker dengan LaTeX prainstal, tetapi kembali ke image Ubuntu bawaan karena masalah versi
Tahap 5: Hosting ulang situs web
- Ingin memindahkan situs yang berjalan di GitHub Pages ke Codeberg Pages, tetapi fitur tersebut sedang dalam mode pemeliharaan
- Pembaruan tertunda karena masalah kompleksitas dan performa
- Sebagai alternatif, ditemukan dan digunakan git-pages dan Grebedoc
- Mendukung unggah sebelum perubahan DNS, sehingga perpindahan tanpa downtime dimungkinkan
- Mendukung redirect sisi server dan header kustom
- Migrasi selesai sambil tetap mempertahankan tautan lama (
eldred.fr/fortISSimO)
- Codeberg berencana melakukan migrasi bertahap ke git-pages di masa mendatang
- Kepuasan terhadap layanan ini lebih tinggi daripada GitHub Pages, sehingga ikut mendukung Patreon pengembang git-pages
Waktu yang dibutuhkan
- Pemindahan repositori (tahap 1–3): setengah hari
- Pemindahan CI (tahap 4): setengah hari
- Pemindahan situs web (tahap 5): beberapa hari, termasuk membereskan utang teknis
- Secara keseluruhan selesai dalam akhir pekan, dan lebih sederhana dari perkiraan
Setelah migrasi
- Tidak ada masalah fungsi pada situs web, hanya branch master di GitHub yang diperkecil
- Permalink masih tetap berfungsi
- Penghapusan repositori GitHub masih ditunda karena tidak adanya redirect
- Akun GitHub tetap dipertahankan untuk berkontribusi ke proyek lain
- Pindah ke Codeberg mungkin mengurangi jumlah kontributor, tetapi beberapa pengguna sudah membuat akun Codeberg dan terus berkontribusi
Ucapan terima kasih
- Catherine ‘whitequark’ : mengelola git-pages dan Grebedoc
- Tim SERVFAIL network: penyedia DNS
- Para kontributor Codeberg dan Forgejo: menyediakan fondasi untuk migrasi ini
1 komentar
Komentar Hacker News
Dalam kisah migrasi ini, yang menonjol bukan sisi teknisnya, melainkan bahwa ‘feature parity’ ternyata bukan hambatan yang sebenarnya
Codeberg sudah cukup untuk alur kerja sehari-hari, tetapi tidak memiliki efek jaringan dan inersia yang telah dibangun GitHub
Dibangun di atas protokol seperti Bluesky, agar identitas dan keterhubungan tetap terjaga di mana pun Git di-host
Sulit menemukan kembali issue yang saya yakin pernah saya lihat. Performanya belakangan ini sudah lumayan, tetapi jika proyek Anda punya ratusan issue, sebaiknya coba migrasi uji coba dulu
Hal seperti CI/CD tidak perlu dipahami seluruh tim; cukup satu orang yang benar-benar menguasainya
Codeberg adalah fork dari Gitea, dan Gitea adalah fork dari Gogs
Kedua fork itu dimulai lebih karena alasan filosofis daripada alasan teknis, dan Joe Chen, pembuat Gogs, punya andil besar
Gitea di-fork karena satu pengembang memonopoli hak atas repositori, dan Forgejo adalah fork yang dibuat untuk merebut kembali merek dagang Gitea
Saya penasaran apakah ada yang pernah memakai Codeberg bersama F-Droid
Saya ingin tahu apakah rilisan bisa terdeteksi otomatis seperti di GitHub
Sepertinya kini sudah mencapai efek ambang (threshold effect)
Dalam beberapa hari terakhir saya melihat beberapa proyek meninggalkan GitHub
Saya penasaran apakah ada kejadian atau tren tertentu
Ketidakpuasan di komunitas open source tampaknya menumpuk lalu mencapai titik batas
Kontroversi AI dan iklan Microsoft secara umum serta berakhirnya dukungan Windows 10 juga tampaknya berpengaruh
Konsep terkait pertama kali diajukan di thread Twitter ini
Rasanya dulu lebih baik saat masih berbasis Rails
Bisa jadi hanya fenomena sementara yang mendapat perhatian berlebihan dibanding kenyataannya
Saya penasaran apakah ada alternatif GitHub yang cocok untuk tim kecil atau pengembang individu
Codeberg tampaknya berfokus pada FOSS sehingga kurang cocok untuk penggunaan komersial
GitLab fiturnya banyak tetapi perawatannya berat
Selain itu ada berbagai forge FOSS seperti Gitea, Gogs, Phorge, dan lainnya
Saya suka karena tidak meniru UI GitHub, dan punya antarmuka instan yang cepat seperti bekerja secara lokal
Tidak perlu pindah hanya karena “tidak suka Microsoft”
Akhirnya saya mengunggah proyek baru ke Codeberg, dan sebagian tetap saya simpan sebagai mirror privat di GCP
Saya juga pernah membuat thread Ask HN terkait, tetapi tidak ada tanggapan
Jika melihat post blog eldred.fr, alasan penulisnya masuk akal, tetapi dari sudut pandang pengguna hampir tidak ada peningkatan yang terasa
Setelah mencoba Codeberg
Contoh: https://codeberg.org/dnkl/foot
Sepertinya akan lebih baik jika README dijadikan halaman utama
Pada versi berbayar, gambarnya juga bisa dikustomisasi
Jika dibuat terlalu berbeda, justru bisa memicu penolakan
Menyembunyikan tombol login GitHub adalah keputusan yang berpusat pada komunitas, dan kalau mau bisa juga diusulkan lewat PR
Tujuannya adalah mencari alternatif yang etis sambil tetap punya fitur yang sama seperti GitHub
Jika pemindaian AI di GitHub bukan masalah, saya penasaran apakah ada alasan nonpolitis untuk pindah
Saya penasaran apakah Codeberg menyediakan runner CI gratis
GitHub diperkirakan menghabiskan lebih dari 100 juta dolar per tahun untuk CI
Namun menyebut biaya lingkungan justru bisa membuat pengguna enggan berpartisipasi
Bagi kalangan teknis, akan lebih efektif jika didekati sebagai masalah optimasi performa
Saya kecewa melihat Codeberg pernah membesar-besarkan insiden spam sebagai “kampanye kebencian sayap kanan” sambil memuji diri sendiri
Padahal cukup mengakui kegagalan pencegahan saja, tetapi malah dibungkus dengan bingkai politik
Tautan terkait: issue, diskusi HN, post blog
Jika karena itu Anda kehilangan rasa hormat, masalahnya ada pada sudut pandang tersebut, bukan pada proyeknya
Saya juga pernah memindahkan repositori ke Codeberg lalu kembali lagi ke GitHub
Saya memang tidak suka beberapa fitur GitHub, tetapi Codeberg tidak punya daya tarik kolaborasi yang sama
Sebagai maintainer tunggal, visibilitas dan efek jaringan itu sangat penting