3 Punkte von GN⁺ 2025-12-02 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Die detaillierte Beschreibung von Prozess und Ergebnis des Umzugs persönlicher Projekte und einer Website von GitHub zu Codeberg
  • Vollständige Migration von Repositories, Issues, PRs, Wiki und Releases mit der „migrate from GitHub"-Funktion von Forgejo
  • Link-Neuzuordnung und die Verarbeitung von GitHub-Repository-Stubs wurden per Automatisierungsskript durchgeführt, um den Umzug klar kenntlich zu machen
  • Für die CI/CD-Migration wurde Forgejo Actions von Codeberg genutzt und auf die Umgebungsrestriktionen mit leichtgewichtigen Workflows reagiert
  • Die Website wurde mit git-pages und Grebedoc ohne Ausfallzeit migriert; die komplette Migration wurde an einem Wochenende abgeschlossen

Migrationsübersicht

  • Die auf GitHub Pages gehostete Website und 45 Repositories wurden nach Codeberg migriert
    • Das war nicht mit einem einzigen Klick getan und erforderte mehrere manuelle Schritte
    • Der gesamte Vorgang wurde über ein Wochenende hinweg abgeschlossen und verlief problemlos
  • Ziel war es zu zeigen, dass auch andere Entwickler den Umzug leicht selbst durchführen können

Schritt 1: Repository-Migration

  • Codeberg basiert auf Forgejo und stellt die Funktion „migrate from GitHub“ bereit
    • Durch ein in GitHub erzeugtes Personal Access Token (PAT) lassen sich Issues und andere Metadaten mit übernehmen
    • Wegen des Rate Limits der GitHub-API konnte der gleichzeitige Import mehrerer Repositories fehlschlagen
  • Issues, PRs, Wiki und Releases wurden vollständig migriert, sodass GitHub-Referenzen nicht mehr nötig sind

Schritt 2: Link-Neuzuordnung

  • GitHub-Links in lokalen Repositories wurden gesammelt auf Codeberg-Adressen ersetzt
    • Die Ersetzung wurde mit den Kommandos sed und find automatisch auf Textbasis durchgeführt
  • Danach wurde die git remote-URL jedes Repositories auf Codeberg geändert und in alle Repositories gepusht

Schritt 3: GitHub-Repository-Stubs verarbeiten

  • In den GitHub-Repositories wurden README-Dateien mit Umzugsankündigung ergänzt, Beschreibung und Homepage-Link auf Codeberg angepasst
    • Ein Automatisierungsskript wurde erstellt und auf mehrere Repositories angewendet
    • Die Repositories wurden mit dem Befehl gh repo archive archiviert

Schritt 4: CI/CD-Migration

  • In der CI-Dokumentation von Codeberg wird das Prinzip der Minderung des Energieverbrauchs hervorgehoben
    • Deshalb werden nur Projekte, bei denen CI wirklich nötig ist (Website, Dokumentations-Builds usw.), beibehalten
  • Codeberg bietet zwei CI-Optionen: Woodpecker und Forgejo Actions
    • Es wurde Forgejo Actions gewählt, da es GitHub Actions ähnelt
  • Wichtigste Unterschiede
    • Die meisten Actions funktionieren direkt weiter
    • Es gibt nur Linux-Runner; macOS und Windows werden nicht bereitgestellt
    • Weniger vorinstallierte Software und eingeschränkte Ressourcen
    • Mit lazy runners lassen sich Lastverteilung und umweltfreundlicher Betrieb realisieren
  • Zur Verbesserung der CI-Leistung wurde ein vorinstalliertes LaTeX-Docker-Image eingesetzt, bei Versionsproblemen jedoch wieder das Standard-Ubuntu-Image verwendet

Schritt 5: Website-Rehosting

  • Die auf GitHub Pages betriebene Website sollte auf Codeberg Pages umziehen, doch diese Funktion war im Wartungsmodus
    • Das Update verzögert sich wegen Komplexitäts- und Performance-Problemen
  • Stattdessen wurden git-pages und Grebedoc entdeckt und genutzt
    • Durch Uploads vor DNS-Wechsel ist ein unterbrechungsfreier Übergang möglich
    • Es werden serverseitige Redirects und eigene Header unterstützt
    • Der Umzug wurde abgeschlossen, während der bestehende Link (eldred.fr/fortISSimO) erhalten blieb
  • Codeberg plant, künftig schrittweise auf git-pages zu migrieren
  • Höhere Zufriedenheit als bei GitHub Pages, daher Beteiligung am Patreon des/der git-pages-EntwicklerIn

Zeitaufwand

  • Repository-Migration (1–3): ein halber Tag
  • CI-Migration (4): ein halber Tag
  • Website-Migration (5): inkl. Bereinigung technischer Schulden dauerte mehrere Tage
  • Insgesamt innerhalb eines Wochenendes abgeschlossen, einfacher als erwartet

Nach der Migration

  • Die Website ist funktionsfähig, auf GitHub wurde nur der master-Branch reduziert
    • Permanente Links (Permalinks) funktionieren weiterhin
  • Die Löschung von GitHub-Repositories ist wegen fehlender Weiterleitungen ausgesetzt
  • Das GitHub-Konto bleibt für Beiträge an andere Projekte bestehen
  • Mit dem Umzug zu Codeberg könnte es weniger Beitragende geben, jedoch haben einige Nutzer bereits Codeberg-Konten angelegt und tragen weiterhin bei

Danksagung

  • Catherine ‘whitequark’: Betrieb von git-pages und Grebedoc
  • SERVFAIL network-Team: DNS-Bereitstellung
  • Codeberg- und Forgejo-Mitwirkende: Bereitstellung der Migrationsgrundlage

Noch keine Kommentare.

Noch keine Kommentare.