maneira de automatizar a clonagem de repositórios git

maneira de automatizar a clonagem de repositórios git

Tenho que clonar vários repositórios nas VMs e depois criar software neles. Eu tenho um script de construção muito bom, mas há um problema. Antes da construção, vários repositórios devem ser clonados e, após algumas atualizações de segurança, não tenho permissão para adicionar minha chave pública ao servidor git e também o único protocolo suportado é ssh.

O comando de clonagem se parece com o seguinte:

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

mas há muitos deles e passar a senha depois de cada um deles é realmente chato e demorado.

O que estou tentando fazer é passar automaticamente a senha para o comando clonar. Eu estava tentando adicionar userA:passwordA@git-ger.... mas funciona apenas para HTTPS, não para ssh. Eu sei que tenho que mudar para algumas ferramentas automáticas como o ansible para fazer a implantação automática, mas levei muito tempo para reescrever todo o processo de construção.

Minha dúvida é como posso passar automaticamente uma senha para clonar o repositório, sem alterar nada no servidor. Idealmente, seria fazer isso no nível do bash. Eu estava tentando ler as linhas depois de digitar git clone, mas também não funcionou para mim. Qualquer ajuda será apreciada

Responder1

IMO, a melhor solução é usar um auxiliar personalizado GIT_ASKPASSe entregar a senha como outra variável de ambiente. Então, por exemplo, crie um arquivo git-askpass-helper.shcomo:

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

e então execute git clone https://username@hostname/repocom variáveis ​​de ambiente GIT_ASKPASS=/path/to/git-askpass-helper.she GIT_PASSWORD=nuclearlaunchcodes.

informação relacionada