3 poin oleh GN⁺ 2025-12-02 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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 sed dan find untuk penggantian otomatis berbasis teks
  • URL git remote tiap 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

Belum ada komentar.

Belum ada komentar.