forma de automatizar la clonación de repositorios git

forma de automatizar la clonación de repositorios git

Tengo que clonar varios repositorios en las VM y luego crear software en ellos. Tengo un script de compilación bastante bueno, pero hay un problema. Antes de la compilación, se deben clonar varios repositorios y, después de algunas actualizaciones de seguridad, no puedo agregar mi clave pública al servidor git y, además, el único protocolo admitido es ssh.

El comando de clonación se ve así:

git clone ssh://[email protected]:YYYY/repoB

pero hay muchos y pasar la contraseña después de cada uno de ellos es realmente molesto y requiere mucho tiempo.

Lo que intento hacer es pasar automáticamente la contraseña al comando de clonación. Estaba intentando agregar usuarioA:contraseñaA@git-ger... pero funciona solo para HTTPS, no para ssh. Sé que tengo que cambiar a algunas herramientas automáticas como ansible para realizar una implementación automática, pero me llevó mucho tiempo reescribir todo el proceso de construcción.

Mi pregunta es cómo puedo pasar automáticamente una contraseña para clonar el repositorio, sin cambiar nada en el servidor. Lo ideal sería hacer esto desde el nivel de bash. Estaba intentando leer líneas después de escribir git clone pero tampoco funcionó. Cualquier ayuda será apreciada.

Respuesta1

En mi opinión, la mejor solución es utilizar un asistente personalizado GIT_ASKPASSy entregar la contraseña como otra variable de entorno. Entonces, por ejemplo, cree un archivo git-askpass-helper.shcomo:

#!/bin/sh
exec echo "$GIT_PASSWORD"

y luego ejecutar git clone https://username@hostname/repocon variables de entorno GIT_ASKPASS=/path/to/git-askpass-helper.shy GIT_PASSWORD=nuclearlaunchcodes.

información relacionada