Saltar al contenido

Duplicación del repositorio de Gitlab

Solución:

Actualización de diciembre de 2016: la creación de reflejo es compatible con GitLAb EE 8.2+: consulte “Creación de reflejo del repositorio”.

Como comentó Xiaodong Qi:

Esta respuesta se puede simplificar sin usar ninguna línea de comando (solo configúrela en la interfaz de administración de repositorios de Gitlab)


Respuesta original (enero de 2013)

Si su repositorio de espejo remoto es un desnudo repositorio, luego puede agregar un enlace posterior a la recepción a su repositorio administrado por gitlab y enviarlo a su repositorio remoto en él.

#!/bin/bash
git push --mirror [email protected]:/path/to/repo.git

Como menciona Gitolite (utilizado por Gitlab):

si desea instalar un gancho en solo unos pocos repositorios específicos, hágalo directamente en el servidor.

que estaría en:

~git/repositories/yourRepo.git/hook/post-receive

Advertencia (actualización de octubre de 2014)

Ciro Santilli señala en los comentarios:

Hoy (cuarto trimestre de 2014) esto fallará porque GitLab enlaza automáticamente github.com/gitlabhq/gitlab-shell/tree/… en cada repositorio que administra.
Entonces, si realiza este cambio, todos los repositorios que modifique intentarán enviar.
Sin mencionar los posibles conflictos al actualizar gitlab-shell, y que el script actual es un script ruby, no bash (¡y no debería eliminarlo!).

Puede corregir esto leyendo el nombre del directorio actual y asegurando la biyección entre ese y el control remoto, pero recomiendo a las personas que se mantengan lejos de esas cosas.

Ver (y votar) comentarios “Envío automático al repositorio de espejo remoto después del envío al repositorio de GitLab“.


Actualización de julio de 2016: Veo este tipo de función agregada para GitLab EE (Enterprise Edition): MR 249

  • Agregue la capacidad de ingresar URL de inserción remota en la configuración del Repositorio espejo
  • Agregar código de implementación para enviarlo al repositorio remoto
  • Agregar nuevo trabajador en segundo plano
  • Muestra la última fecha de actualización y sincroniza los errores si existen.
  • Sincronice el espejo remoto cada hora.

Tenga en cuenta que el reciente Remote Mirror Repository (problemas 17940) puede ser complicado:

Actualmente estoy intentando cambiar el desarrollo principal de los módulos npm de código abierto de mi empresa Lossless GmbH (https://www.npmjs.com/~lossless) de GitHub.com a GitLab.com

Estoy importando todos los repositorios de GitHub, sin embargo, cuando intento apagar Mirror Repository y enciende Remote Mirror Repository con la URL de GitHub original, aparece un error que dice:

Remote mirrors url is already in use

Aquí está uno de los repositorios con los que falla: https://gitlab.com/pushrocks/npmts Editado hace 2 meses

resulta que solo requiere varios pasos:

  • deshabilitar el repositorio espejo
  • presione guardar
  • eliminar la URL
  • presione guardar
  • luego agregue el espejo remoto

Si no aloja su propio GitLab, vale la pena saber que GitLab.com ha introducido esta función directamente, sin ninguna solución alternativa.

  1. Desde dentro de un proyecto, use el icono de engranaje para seleccionar Repositorio espejo
  2. Desplácese hacia abajo hasta Enviar a un repositorio remoto
  3. Marca de verificación Repositorio espejo remoto: Actualice automáticamente las ramas, etiquetas y confirmaciones de la réplica remota desde este repositorio cada hora.
  4. Ingrese el repositorio que desea actualizar; para GitHub al menos puede incluir su nombre de usuario y contraseña en la URL, así: https://yourgithubusername:[email protected]/agaric/guts_discuss_resource.git

Tenga en cuenta que si está extrayendo de un repositorio remoto, todavía se enviará al repositorio remoto configurado aquí. No lo he probado, pero debería poder presionar y extraer del mismo repositorio.

Un resumen rápido de configure reflejo de repositorios con GitLab y GitHub

  1. GitHub: Configuración> Configuración de desarrollador> Tokens de acceso personal

    • Necesitas habilitar: public_repo
  2. GitLab: Proyecto de GitLab> Configuración> Repositorio> Repositorios de duplicación

Empujar

  • URL del repositorio de Git: https://[email protected]/username/repo.git
  • Dirección del espejo: Push
  • Método de autentificación: Password

    • Contraseña: your_github_token

Jalar

  • URL del repositorio de Git: https://github.com/username/repo.git
  • Dirección del espejo: Pull
  • Método de autentificación: leave_empty

Documentación oficial de GitLab

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *