maneira de automatizar a clonagem de repositórios git

1

Eu tenho que clonar vários repositórios nas VMs e então construir softwares nelas. Eu tenho muito bom script de construção, mas há um problema. Antes da compilação, vários repositórios devem ser clonados e, depois de algumas atualizações de segurança, eu não tenho permissão para adicionar minha chave pública ao git server e também apenas o protocolo suportado é ssh.

O comando de clonagem parece com o seguinte:

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

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

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

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

    
por Mazeryt 19.04.2016 / 17:25

1 resposta

0

IMO a melhor solução é usar um assistente GIT_ASKPASS personalizado e entregar a senha como outra variável de ambiente. Por exemplo, crie um arquivo git-askpass-helper.sh as:

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

e, em seguida, execute git clone https://username@hostname/repo com as variáveis de ambiente GIT_ASKPASS=/path/to/git-askpass-helper.sh e GIT_PASSWORD=nuclearlaunchcodes .

    
por 22.05.2018 / 11:36

Tags