Miroir github vers Gitlab


11

Dans un gitlab local, j'ai créé une copie du projet nova ( https://github.com/openstack/nova ).

Comment garder le repo nova local synchronisé avec github, la mise à jour peut-être une fois par heure ou par jour?

Je voudrais une solution similaire à ce qui est décrit ici pour bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(J'ai utilisé Devstack pour installer Openstack.)

Réponses:


6

GitLab a maintenant cette fonctionnalité intégrée!
Depuis GitLab EE 8.2, il est pris en charge . Hourra!

Tirer d'un référentiel distant

Vous pouvez configurer un référentiel pour que ses branches, balises et validations soient automatiquement mises à jour à partir d'un référentiel en amont.
...

Lors de la création d'un nouveau projet, vous pouvez activer la mise en miroir du référentiel lorsque vous choisissez d'importer le référentiel à partir de "N'importe quel dépôt par URL". Entrez l'URL complète du référentiel Git à extraire et cliquez sur la case à cocher Référentiel miroir .

Mise en miroir automatique GitLab

Pour un projet existant, vous pouvez configurer l'extraction du miroir en visitant les paramètres ➔ Référentiel de votre projet et en recherchant la section "Extraire d'un référentiel distant". Cochez la case "Référentiel miroir" et cliquez sur Enregistrer les modifications en bas.
...


1
Leur exemple utilise gitlab, je l'ai suivi exactement sauf remplacé cette partie par Github, et la mise à jour ne se termine jamais ...
MarcusJ

@MarcusJ Exactement la même chose ici, avez-vous trouvé une solution?
MemphiZ

Cela fait un moment que je n'ai pas eu à le faire, mais je pense que j'ai utilisé l'URL ssh au format ssh: //git@gitlab.com: UserName: RepoName.git
MarcusJ

Je viens de faire ce travail, il est facile de passer de github à gitlab si votre dépôt est public, collez simplement cette URL dans les paramètres gitlab:, https://github.com/yourGithubUserName/repoName.gitpuis choisissez la méthode Password dans la zone de liste déroulante et laissez la zone de texte du mot de passe vide
knocte

4

Si vous n'avez jamais besoin de commits locaux, la recette suivante fonctionnera:

Clonez le dépôt avec --mirror:

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

Ensuite, dans un cronjob, vous faites cela pour une mise à jour toutes les heures:

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

Le --mirrorconfigure les refspecs de telle manière que les récupérations suivantes mettent à jour toutes les références locales, vous n'avez donc pas besoin de fusionner les modifications. Bien sûr, cela signifie que les commits poussés vers ce dépôt sont perdus.


Cela ne semble pas répondre à la question, qui consiste à obtenir un miroir dans GitLab.
Ken Williams


0

Créer un travail cron pour mettre à jour le référentiel


Comment configurer dans gitlab?
user186107

2
Mettez à jour votre question avec les détails dont vous avez besoin, ce que vous avez essayé et quel est le problème exact.
Drew Khoury

0

Vous pouvez le faire en utilisant des tâches cron .

Dans votre type de terminal crontab -e(pour modifier votre crontab) et ajoutez une nouvelle ligne en bas avec ce qui suit.

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

Il exécutera un clone tous les jours à minuit.


J'espère que ce sont des mises à jour incrémentielles. pas besoin de tout télécharger à nouveau.
user186107
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.