Esta pequeña guía muestra los pasos a seguir para espejar un repositorio GIT albergado en Stash (Atlasssian) con otro servidor GIT (externo), independientemente del software que utilice, ya sea GitHub, GitLab, Stash o cualquier otro servidor GIT. Solamente hace falta acceso mediante SSH o HTTP al servicio que queremos usar como espejo.
Instalar Plugin “Repository Mirror” para Stash: https://marketplace.atlassian.com/plugins/com.englishtown.stash-hook-mirror
Una vez instalado el Plugin en Stash se debe configurar el repositorio espejo donde queremos que se repliquen los cambios. (Leer): Stash > Proyecto > Repositorio > Preferencias > Crear Hook.
De usar HTTP, se recomienda configurar Stash para evitar problemas con Buffer-HTTP (fichero: stash-config.properties).
plugin.stash-scm-git.backend.http.buffer.size=157286400
NOTA: Se debe reiniciar el servicio stash para que tenga efecto.
Probar desde la linea de comandos la conexión con el servidor Git externo. (Se debe estar dentro de la carpeta / repositorio en la terminal).
git push --prune https://username:password@github.com/Projecto/repositorio.git +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/*
Cuando se realicen commits sobre los repositorios en Stash, estos cambios se verán también reflejados automáticamente en el mirror remoto. Hay que tener en cuenta que los cambios solo funcionan en el sentido configurado y no al contrario. Es decir, los cambios en el repositorio remoto no se transmiten al repositorio Stash origen.