Mirror von gitlab zu github

Die gitlab Dokumentation empfiehlt zum Spiegeln meiner Meinung nach zu stark das Nutzen von github personal access tokens.

Diese haben aber einen Nachteil: Personal access tokens gelten für alle Repositories eines Nutzer. Anders formuliert: Gibt man einem personal access token Schreibrechte, kann man mit diesem token in alle Repositories dieses Nutzers schreiben. Gewollt ist in meinem Fall jedoch eher, dass man Schreibrechte für das eine Repository zum Spiegeln vergibt.

github hat deploy keys , die nur lesen/schreiben pro Repository ermöglichen. Diese kann man auch für das Spiegeln von gitlab zu github nutzen.

Da das aber in den beiden Dokumentationen subjektiv eher implizit steht, hier einmal die konkreten Schritte:

  1. Ziel-Repository auf github erstellen
  2. mirror in gitlab einrichten
    1. im bestehenden gitlab-Repository „Repository Settings“ → „Mirroring repositories“ öffnen
    2. Github-Repository-URL eingeben. Fallstrick hier: ssh:// vorn an SSH-Repo-Adresse aus github, später den : durch / ersetzen. Also aus git@github.com:<user>/<repo>.git wird ssh://git@github.com/<user>/<repo>.git. Andernfalls mag gitlab die URL nicht.
    3. Erscheinenden „Detect host keys.“-Button klicken und den Fingerprint mit dem von github vergleichen.
    4. Mirror direction „push“ auswählen.
    5. Bei „Authentication method“ „SSH public key“ wählen → damit wird ein eigener SSH-Key im gitlab erstellt.
    6. Den generierten SSH public key aus gitlab kopieren und in github als deploy key einfügen. Dieser braucht in github Schreibrechte.
    7. im gitlab „update now“ drücken und schauen, ob es funktioniert.

Dann sollte es gehen. 🙂

Kommentare

Noch kein Kommentar zu diesem Artikel.

Neuen Kommentar schreiben