2013-01-31 3 views
16

J'ai écrit des scripts pour Windows et Linux pour mettre en place un nouvel espace de travail pour les utilisateurs avec tous les dépôts git de notre serveur.Comment entrer le mot de passe pour git pull commande?

Je voudrais que l'utilisateur entre une fois le mot de passe de notre serveur, le stocke dans une variable locale, transmette cette variable à chaque commande git pull, puis efface la variable de mot de passe et quitte.

Comment saisir le mot de passe lorsque la commande git pull le demande? À la fois pour le fichier de commandes Windows et un script de shell Linux.

Voici le code du script Linux:

#!/bin/bash 

echo "Enter password: " 
read pswd 
clear #No screen peaking 

#This is repeated for each repo 
location=folderName 
mkdir $location 
cd $location 
git init 
git remote add origin [email protected]<server>:$location.git 
git pull origin master 
#Above prompts for password & is where I want to automatically input $pswd 

J'ai essayé différentes choses recommandées sur le SO et ailleurs, comme la tuyauterie, la lecture du fichier txt, etc. Je préférerais avoir besoin de rien plus de simples vieilles commandes Windows cmd et Linux terminal. Et comme ce script est juste à des fins de configuration, je n'ai pas besoin de stocker le mot de passe de manière sécurisée en permanence avec quelque chose comme un agent ssh. Je cours Windows 7 et Ubuntu 12.10, mais ce script est destiné à la mise en place de nouveaux utilisateurs, donc il devrait idéalement fonctionner sur la plupart des distributions.

Répondre

3

je recommande vraiment pas essayer et gérer cette étape de mot de passe et déléguer ce (à la fois sur Linux et Windows) pour aide des titres de compétences git.
Voir:

L'utilisateur entrera le mot de passe qu'une seule fois par session.

+3

Cela ne répond même pas à la question des utilisateurs . IT recommande simplement d'utiliser autre chose. Bien sûr, garder les mots de passe ouverts en clair est mauvais, mais n'importe quelle personne devops vous dira de GARDER LES MOTS DE PASSE DANS LE CONTRÔLE DE LA SOURCE. (Sauf si ce n'est pas une tâche devops) parce que vous allez l'oublier. –

+1

@CyberMen Pas cette personne DevOps. Nous conservons les mots de passe dans une application de gestion des mots de passe. – JamesQMurphy

33

Synopsis:

git pull "https://<username>:<password>@github.com/<github_account>/<repository_name>.git" <branch_name> 

Exemple:

git pull "https://admin:[email protected]/Jet/myProject.git" master 

Note: Cela fonctionne pour moi sur un script bash

+0

Cela devrait vraiment être la réponse acceptée, @Matt – gregoltsov

Questions connexes