Espelhar o github no Gitlab

11

Em um gitlab local, criei uma cópia do projeto nova ( https://github.com/openstack/nova ).

Como mantenho o repo local novo em sincronia com o github, atualizando talvez uma vez por hora ou por dia?

Gostaria de uma solução semelhante à descrita aqui para bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Usei o Devstack para instalar o Openstack.)

user186107
fonte

Respostas:

6

O GitLab agora tem esse recurso embutido!
Desde o GitLab EE 8.2, ele é suportado . Viva!

Puxando de um repositório remoto

Você pode configurar um repositório para ter automaticamente suas ramificações, tags e confirmações a partir de um repositório upstream.
...

Ao criar um novo projeto, você pode ativar o espelhamento de repositório quando optar por importar o repositório de "Qualquer repo por URL". Digite a URL completa do repositório Git para extrair e clique na caixa de seleção Repositório Mirror .

Espelhamento automático do GitLab

Para um projeto existente, você pode configurar o espelhamento puxando, visitando Configurações ➔ Repositório e pesquisando a seção "Puxar de um repositório remoto". Marque a caixa "Repositório de espelhos" e clique em Salvar alterações na parte inferior.
...

arieljannai
fonte
1
Seus exemplo usa gitlab, segui-lo exatamente, exceto substituído esta parte com o Github, ea coisa atualização nunca termina ...
MarcusJ
@ MarcusJ Exatamente o mesmo aqui, você encontrou uma solução?
MemphiZ
Já faz um tempo desde que eu tive que fazer isso, mas acho que o que fiz foi usar o ssh url no formato ssh: //[email protected]: UserName: RepoName.git
MarcusJ
Eu só fiz este trabalho, puxando a partir github para gitlab é fácil se o seu repo é público, basta colar este URL em ambientes gitlab: https://github.com/yourGithubUserName/repoName.git, em seguida, escolha o método senha no combobox e deixar a senha em branco caixa de texto
knocte
4

Se você nunca precisar de confirmações locais, a seguinte receita funcionará:

Clone o repositório com --mirror:

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

Em um cronjob, você faz isso para uma atualização horária:

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

Ele --mirrorconfigura os refspecs de forma que as buscas subseqüentes atualizem todos os refs locais, para que você não precise mesclar as alterações. É claro que isso significa que as confirmações enviadas para esse repositório são perdidas.

Dennis Kaarsemaker
fonte
Isso não parece responder à pergunta, que é obter um espelho no GitLab.
Ken Williams
0

Crie um trabalho cron para atualizar o repositório

Drew Khoury
fonte
Como configurar no gitlab?
User186107
2
Atualize sua pergunta com os detalhes necessários, o que você tentou e qual é o problema exato.
Tirou Khoury
0

Você pode fazer isso usando tarefas cron .

No seu terminal, digite crontab -e(para editar o seu crontab) e adicione uma nova linha na parte inferior com o seguinte.

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

Será executado um clone todos os dias à meia-noite.

Sohan
fonte
Espero que sejam atualizações incrementais. não há necessidade de baixar tudo de novo.
user186107