Github auf Gitlab spiegeln

11

In einem lokalen Gitlab habe ich eine Kopie des Projekts nova erstellt ( https://github.com/openstack/nova ).

Wie halte ich das lokale Nova Repo mit Github synchron und aktualisiere es möglicherweise einmal pro Stunde oder pro Tag?

Ich möchte eine ähnliche Lösung wie hier für bitnami beschrieben: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Ich habe Devstack verwendet, um Openstack zu installieren.)

user186107
quelle

Antworten:

6

In GitLab ist diese Funktion jetzt integriert!
Seit GitLab EE 8.2 wird es unterstützt . Hurra!

Abrufen aus einem Remote-Repository

Sie können ein Repository so einrichten, dass seine Zweige, Tags und Commits automatisch von einem Upstream-Repository aktualisiert werden.
...

Wenn Sie ein neues Projekt erstellen, können Sie die Repository-Spiegelung aktivieren, wenn Sie das Repository aus "Beliebiges Repo nach URL" importieren. Geben Sie die vollständige URL des Git-Repositorys ein, aus dem Sie abrufen möchten, und klicken Sie auf das Kontrollkästchen Spiegel-Repository .

Automatische Spiegelung von GitLab

Für ein vorhandenes Projekt können Sie das Ziehen von Spiegeln einrichten, indem Sie die Einstellungen ➔ Repository Ihres Projekts aufrufen und nach dem Abschnitt "Aus einem Remote-Repository ziehen" suchen. Aktivieren Sie das Kontrollkästchen "Repository spiegeln" und klicken Sie unten auf Änderungen speichern .
...

Arieljannai
quelle
1
Ihr Beispiel verwendet Gitlab, ich habe es genau befolgt, außer dass dieser Teil durch Github ersetzt wurde, und die Aktualisierung endet nie ...
MarcusJ
@MarcusJ Genau das gleiche hier, haben Sie eine Lösung gefunden?
MemphiZ
Es ist schon eine Weile her, dass ich das tun musste, aber ich glaube, ich habe die ssh-URL im Format ssh verwendet: //[email protected]: Benutzername: RepoName.git
MarcusJ
Ich habe gerade diese Arbeit gemacht, das Ziehen von Github zu Gitlab ist einfach, wenn Ihr Repo öffentlich ist. Fügen Sie diese URL einfach in die Gitlab-Einstellungen ein: https://github.com/yourGithubUserName/repoName.gitWählen Sie dann die Passwortmethode in der Combobox und lassen Sie das Passwort-Textfeld leer
knocte
4

Wenn Sie niemals lokale Commits benötigen, funktioniert das folgende Rezept:

Klonen Sie das Repo mit --mirror:

git clone --mirror https://github.com/openstack/nova.git

In einem Cronjob tun Sie dies dann für ein stündliches Update:

0 * * * * cd /path/to/nova.git && git fetch

Das --mirrorrichtet die Refspecs so ein, dass nachfolgende Abrufe alle lokalen Refs aktualisieren, sodass Sie die Änderungen in nicht zusammenführen müssen. Dies bedeutet natürlich, dass Commits, die an dieses Repo gesendet werden, verloren gehen.

Dennis Kaarsemaker
quelle
Dies scheint nicht die Frage zu beantworten, einen Spiegel in GitLab zu bekommen.
Ken Williams
0

Erstellen Sie einen Cron-Job, um das Repo zu aktualisieren

Drew Khoury
quelle
Wie in gitlab einstellen?
user186107
2
Aktualisieren Sie Ihre Frage mit den Details, die Sie benötigen, was Sie versucht haben und was das genaue Problem ist.
Drew Khoury
0

Sie können dies mit Cron-Jobs tun .

crontab -eGeben Sie in Ihrem Terminal ein (um Ihre Crontab zu bearbeiten) und fügen Sie unten eine neue Zeile hinzu.

* 0 * * * git clone ssh://username@hostname:port/repo

Es wird jeden Tag um Mitternacht einen Klon ausführen.

Sohan
quelle
Ich hoffe es sind inkrementelle Updates. Sie müssen nicht alle erneut herunterladen.
user186107