GitHub zu Codeberg spiegeln

Im Rahmen digitaler Souveränität ist das Hosten auf GitHub eine zwiespältige Sache. Während die zugrundeliegenden Werkzeuge wie Git frei verfügbar sind, trifft dies auf Plattformen wie GitHub nicht zu.

Allerdings existieren auch Alternativen, wie Codeberg. Dabei handelt es sich um eine gemeinnützige, community-getriebene Plattform für die Entwicklung und das Hosting von Open-Source-Softwareprojekten. Betrieben wird sie vom eingetragenen Verein Codeberg e.V. mit Sitz in Berlin. Die Plattform bietet eine datenschutzfreundliche Alternative zu kommerziellen Diensten wie GitHub und richtet sich an Entwickler:innen, die Wert auf Transparenz, Offenheit und digitale Souveränität legen.

Die Plattform Codeberg

Nun ist ein vollständiger Wechsel für viele Nutzer nicht unbedingt immer möglich. Eine Alternative ist dann unter Umständen die Nutzung zweier Plattformen wie GitHub und Codeberg und eine entsprechende Spiegelung. Die der Codeberg zugrundeliegende Plattform Forgejo beherrscht die Spiegelung von Repositories. Allerdings ist dieses Feature auf der Plattform mit Absicht deaktiviert.

Wer eine solche Synchronisation nutzen möchte, ist damit auf weitere Werkzeuge angewiesen. Eines dieser Werkzeuge ist Gickup. Nach der Installation:

brew install gickup

sollte eine Konfigurationsdatei mit dem Namen conf.yml angelegt werden. Eine Minimalkonfiguration könnte folgendermaßen aussehen:

source:
  github:
    - token: topsecret-github-token
      includeorgs:
        - Entitaet
        - seeseekey
      wiki: true
      issues: true
destination:
  gitea:
    - url: https://codeberg.org/
      token: topsecret-codeberg-token
      createorg: true
      mirror:
        enabled: true

Diese Konfiguration stellt sicher, dass nur gewünschte Organisationen synchronisiert werden und dass Repositories von Organisationen, als solche in Codeberg angelegt werden. Die Token müssen auf GitHub und Codeberg angelegt werden und anschließend in der Konfiguration hinterlegt werden. Für GitHub wird dieses Token in den Einstellungen erzeugt. Hier sollte ein Classic-Token erzeugt werden und die Rechte für repo sollten zugewiesen werden.

Für GitHub werden die repo-Berechtigungen benötigt

Unter Codeberg wird das neue Token ebenfalls in den Einstellungen unter Anwendungen angelegt.

Das Token für Codeberg wird erzeugt

Nachdem die Token in der Konfiguration hinterlegt worden sind, kann der Prozess mittels gickup gestartet werden:

2025-05-20T21:18:50+02:00 INF Reading conf.yml file=conf.yml
2025-05-20T21:18:50+02:00 INF Configuration loaded destinations=1 pairs=1 sources=1
2025-05-20T21:18:50+02:00 INF Backup run starting
2025-05-20T21:18:50+02:00 INF grabbing my repositories stage=github url=https://github.com
2025-05-20T21:19:20+02:00 INF starting backup for https://github.com/Entitaet/autoxylophon.git stage=backup
2025-05-20T21:19:20+02:00 INF mirroring autoxylophon to https://codeberg.org/ stage=gitea url=https://codeberg.org/
2025-05-20T21:19:21+02:00 INF already up-to-date stage=gitea url=https://github.com/Entitaet/autoxylophon.git

Je nach Größe der eigenen Repositories kann die Spiegelung einige Minuten in Anspruch nehmen. Ist eine Aktualisierung gewünscht, so kann der Prozess einfach erneut angestoßen werden. Neben dieser Möglichkeit existieren weitere Möglichkeiten, um eine Spiegelung von Repositories zu Codeberg zu realisieren.

Probleme mit rsync unter macOS 15.4

Mit dem Update auf macOS 15.4 hat Apple das mitgelieferte rsync aufgrund von Lizenzänderungen durch openrsync ersetzt. Allerdings ist openrsync nicht komplett kompatibel, sodass dieser Tausch durchaus zu Problemen führen kann.

So funktioniert z.B. das Skript rsync-time-backup nicht mehr korrekt, nachdem das Update durchgeführt wurde. Eine Lösung ist es rsync über Homebrew nachzuinstallieren:

brew install rsync

Nach der Installation funktionieren solche auf rsync basierende Skripte wieder.

Gitea-Fork Forgejo

Wer Git-Repositorys nutzt und hierfür eine zentrale Anlaufstelle nutzt, kann Systeme wie GitHub nutzen. Daneben existieren auch Alternativen für die Nutzung im selbst gehosteten Umfeld, wie Gogs, aus welchem später Gitea hervorging.

Forgejo in der Nutzung.

Aufgrund der Gründung der Gitea Limited, welche kommerzielle Dienste rund um Gitea anbot, entwickelte sich der Fork Forgejo, welcher mittlerweile beim Non-Profit-Hoster Codeberg genutzt wird.

Nach einem anfänglichen Soft-Fork, handelt es sich mittlerweile um einen Hard-Fork, sodass eine Kompatibilität zu Gitea nicht mehr gegeben sein muss. Aktuell können Migrationen von Gitea zu Forgejo noch problemlos vorgenommen werden, sodass sich ein prüfender Blick auf Forgejo lohnt.

RAML in OpenAPI konvertieren

Bei der Entwicklung oder Nutzung von REST-APIs wird der eine oder andere schon von Beschreibungssprachen wie OpenAPI (respektive Swagger) gehört haben. Eine weitere solcher Sprachen ist RAML, was für RESTful API Modeling Language steht. Soll mit einer solchen Datei ein Client generiert werden, kann hierfür unterschiedliches Tooling eingesetzt werden.

Manchmal ist es allerdings nötig, eine solche RAML-Datei in eine OpenAPI-Spezifikation zu konvertieren. Hierfür kann unter anderem der OAS RAML Converter genutzt werden, welcher über das Terminal installiert werden kann:

yarn global add oas-raml-converter-cli

Alternativ ist auch eine Installation über NPM möglich:

npm install -g oas-raml-converter-cli

Nach der Installation kann die Applikation mittels:

oasraml-cli

gestartet werden. Folgend müssen einige Fragen zur Konvertierung beantwortet werden, anschließend wird diese vorgenommen und als Datei hinterlegt. Lizenziert ist der Konverter unter der MIT-License und damit freie Software.

Zugriff auf den iCloud-Schlüsselbund im Firefox

Im Safari und unter macOS kann der iCloud-Schlüsselbund genutzt werden, um damit Passwörter aus diesem zu nutzen. Mittlerweile stellt Apple für den Chrome-Browser eine offizielle Erweiterung zur Verfügung.

Für den Firefox gab es lange Zeit keine Unterstützung. Mit dem Add-on iCloud Passwords von Aurélien ändert sich dies.

iCloud Passwords
Preis: Kostenlos

Nach der Installation wird der Passwort-Manager mit der Hilfsapplikation, die Apple für diesen bereitstellt, verbunden. Anschließend können dann die Passwörter aus dem Passwort-Speicher auch im Firefox genutzt werden.

Der Code zur Verknüpfung

Die Verknüpfung muss bei jedem Neustart des Firefox neu bestätigt werden. Der Quelltext der Erweiterung ist auf GitHub zu finden. Lizenziert ist die Erweiterung unter der Apache License in Version 2 und damit freie Software.