Linhas de credenciais de tubulação para o git push

1

Sempre que executo git push , tenho que digitar meu nome de usuário e senha no prompt manualmente.
No entanto, quero automatizar esse processo.

Então, tentei passar as credenciais para o comando usando a tubulação:

printf 'username\npassword' | git push

mas o prompt de nome de usuário e senha ainda não desaparecem!
Por que não está funcionando?

Nota:
Eu sei que isso pode ser feito usando:
git push 'https://username:[email protected]/username/repo.git'
mas estou interessado em saber o que há de errado com o método de tubulação?

Além disso, para confirmar que esse processo funciona para outros casos, fiz um experimento.
Eu criei um script b.py :

b.py :

#!/usr/bin/env python3

username = input()
password = input()

log = open("log.txt", "w")
print(username + "\n" + password, file=log)

Em seguida, executei printf 'abcd\nefgh' | ./b.py no terminal que funcionou como esperado e resultou no arquivo de log contendo as strings de nome de usuário e senha:

log.txt :

abcd
efgh
    
por Anmol Singh Jaggi 19.05.2016 / 00:00

1 resposta

1

Isso funcionaria apenas no caso de prompts sequenciais, que são a parte imediata do script, conforme o seu exemplo. No entanto, no caso de git seus valores estão sendo passados para o processo antes de qualquer prompt de nome de usuário / senha - provavelmente enquanto está fazendo tudo (rede, etc) antes de GIT_ASKPASS - Para referência: link

    
por 19.05.2016 / 05:13