Après avoir parcouru des dizaines de publications SO, de blogs, etc., j'ai essayé toutes les méthodes, et c'est ce que j'ai trouvé. Il couvre TOUT.
Ce sont tous les moyens et outils par lesquels vous pouvez authentifier git en toute sécurité pour cloner un référentiel sans invite de mot de passe interactif .
- Clés publiques SSH
- Jetons d'accès API
- GIT_ASKPASS
- .gitconfig au lieu de
- .gitconfig [informations d'identification]
- .git-credentials
- .netrc
- Bonus: Fonctionne avec les packages privés
- node / npm package.json
- python / pip / eggs requirements.txt
- ruby gems Gemfile
- golang go.mod
Meilleures options pour aucun stockage de texte en clair
D'après ce qui est demandé ici, les clés SSH GIT_ASKPASS
ou l' git credential store
utilisation du gestionnaire de porte-clés du système d'exploitation peuvent être le meilleur choix.
Étant donné que GIT_ASKPASS est probablement le moins bien compris des 3, je vais le détailler ici - et les autres sont dans la feuille de triche.
GIT_ASKPASS
Comment créer un GIT_ASKPASS
script:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Comment l'utiliser:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Le script reçoit stdin sous la forme de:
Password for 'scheme://host.tld':
Le script reçoit des Git ENV tels que:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Plus de détails dans le cheatsheet .
git remote set-url origin https://host.com/name/.git