3 puan yazan GN⁺ 2025-12-02 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Kendi projelerimi ve web sitemi GitHub'dan Codeberg'e taşırken izlediğim süreç ve sonucu ayrıntılı olarak anlatıyorum
  • Forgejo'nun “migrate from GitHub” özelliğini kullanarak depoları, issue'ları, PR'ları, wiki'leri ve release'leri tamamen taşıdım
  • Taşıma olgusunu net biçimde göstermek için link yeniden yönlendirmesini ve GitHub depo stub'larının işlenmesini otomatik betikler ile yaptım
  • CI/CD geçişinde Codeberg'in Forgejo Actions'ını kullandım ve ortam kısıtlarına göre hafif bir iş akışı kurdum
  • Web sitesi git-pages ve Grebedoc ile kesintisiz taşındı; tüm geçişi bir hafta sonu içinde tamamladım

Geçiş özeti

  • GitHub Pages'de barındırılan bir siteyi ve 45 depoyu Codeberg'e taşıdım
    • Tek bir tıklamayla bitmedi ve birden fazla manuel adım gerekiyordu
    • Tüm süreç bir hafta sonu içinde tamamlandı ve sorunsuz gitti
  • Bu süreçle diğer geliştiricilerin de kolayca geçiş yapabileceğini göstermeyi hedefledim

1. Aşama: Depo Taşıma

  • Codeberg, Forgejo tabanlı bir platformdur ve “migrate from GitHub” özelliği sunar
    • GitHub'da Personal Access Token (PAT) oluşturarak issue'lar gibi meta veriler de alınabiliyor
    • GitHub API'deki rate limit nedeniyle aynı anda birden fazla depoyu taşımaya çalışınca hata oluşabiliyordu
  • Issue'lar, PR'lar, wiki ve release'ler eksiksiz taşındığından GitHub referanslarına gerek kalmadı

2. Aşama: Link Yeniden Yönlendirme

  • Yerel depolardaki GitHub bağlantılarını Codeberg adreslerine toplu olarak dönüştürdüm
    • sed ve find komutlarını kullanarak metin tabanlı otomatik bir değişim yaptım
  • Her deponun git remote URL'sini Codeberg olarak değiştirip tüm depolara push ettim

3. Aşama: GitHub Depo Stub Yönetimi

  • GitHub depolarına taşıma duyurusu için README ekledim ve açıklamayı ile ana sayfa bağlantısını Codeberg'e çevirdim
    • Bu işlemi birden fazla depoya toplu uygulamak için otomasyon betiği yazdım
    • gh repo archive komutuyla depoları arşivledim

4. Aşama: CI/CD Geçişi

  • Codeberg'in CI dokümanında enerji tüketimini minimumda tutma prensibi vurgulanıyor
    • Bu nedenle yalnızca gerçekten gerekli projelerde (web sitesi, dokümantasyon derleme vb.) CI tutuyorum
  • Codeberg iki CI seçeneği sunuyor: Woodpecker ve Forgejo Actions
    • GitHub Actions'a benzediği için Forgejo Actions'ı seçtim
  • Başlıca farklar
    • Çoğu Action olduğu gibi çalışıyor
    • Yalnızca Linux özelinde runner var, macOS ve Windows sunulmuyor
    • Kurulu yazılım az ve kaynaklar kısıtlı
    • lazy runners ile yük dengelemesi yapıp daha çevreci çalıştırma mümkün
  • CI performansını artırmak için önceden kurulmuş LaTeX içeren bir Docker imajı kullandım ancak sürüm sorunu nedeniyle temel Ubuntu imajına döndüm

5. Aşama: Web Sitesi Yeniden Barındırma

  • GitHub Pages'den çalışan siteyi Codeberg Pages'e taşımayı planladım ama bu özellik bakım modundaydı
    • Karmaşıklık ve performans sorunları nedeniyle güncellemeler gecikiyor
  • Alternatif olarak git-pages ve Grebedoc bulundu ve kullanıldı
    • DNS değişikliği öncesi yükleme desteği ile kesintisiz geçiş mümkün oldu
    • Sunucu tarafı yönlendirme ve özel başlık desteği
    • Mevcut bağlantıyı (eldred.fr/fortISSimO) koruyarak geçiş tamamlandı
  • Codeberg ileride git-pages'e kademeli geçiş planlıyor
  • GitHub Pages'ten daha memnunum, bu yüzden git-pages geliştiricisine Patreon'dan destek olmaya başladım

Harcanan Süre

  • Depo geçişi (1-3. aşama): Yarım gün
  • CI geçişi (4. aşama): Yarım gün
  • Web sitesi geçişi (5. aşama): Teknik borç temizliği dahil birkaç gün
  • Genel olarak bir hafta sonu içinde tamamlandı, beklenenden daha basit bir iş oldu

Geçiş Sonrası

  • Web sitesi işlevlerinde sorun yok, yalnızca GitHub'daki master dalı daraltıldı
    • Kalıcı linkler (permalink) hala çalışıyor
  • GitHub depolarını silme işlemi, yönlendirme olmaması nedeniyle beklemede
  • GitHub hesabı, diğer projelere katkı için tutuluyor
  • Codeberg'e taşınırken katkıda bulunan sayısında azalma yaşanabilir; ancak bazı kullanıcılar zaten Codeberg hesabı açıp katkı vermeyi sürdürüyor

Teşekkür

  • Catherine ‘whitequark’: git-pages ve Grebedoc operasyonu
  • SERVFAIL network ekibi: DNS sağlama
  • Codeberg ve Forgejo katılımcıları: geçiş altyapısı sağlama

Henüz yorum yok.

Henüz yorum yok.