Depois de revisar dezenas de posts, blogs, etc., experimentei todos os métodos, e foi isso que eu criei. Abrange tudo.
Essas são todas as formas e ferramentas pelas quais você pode autenticar com segurança o git para clonar um repositório sem um prompt de senha interativo .
- Chaves públicas SSH
- Tokens de acesso à API
- GIT_ASKPASS
- .gitconfig
- .gitconfig [credencial]
- .git-credentials
- .netrc
- Bônus: Funciona com pacotes particulares
- nó / npm package.json
- python / pip / eggs requirements.txt
- gemas de rubi Gemfile
- golang go.mod
Melhores opções para nenhum armazenamento de texto sem formatação
Do que é solicitado aqui, SSH Keys, GIT_ASKPASS
ou git credential store
usar o gerenciador de chaves do SO pode ser a melhor opção.
Como GIT_ASKPASS é provavelmente o menos compreendido dos 3, detalharei isso aqui - e os outros estão na folha de dicas.
GIT_ASKPASS
Como criar um GIT_ASKPASS
script:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Como usá-lo:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
O script recebe stdin na forma de:
Password for 'scheme://host.tld':
O script recebe ENVs do Git, como:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Mais detalhes na folha de dicas .
git remote set-url origin https://host.com/name/.git