Möglichkeit zum Automatisieren des Klonens von Git-Repositorys

Möglichkeit zum Automatisieren des Klonens von Git-Repositorys

Ich muss mehrere Repositories auf den VMs klonen und dann Software darauf erstellen. Ich habe ein ziemlich gutes Build-Skript, aber es gibt ein Problem. Vor dem Build sollten mehrere Repos geklont werden, und nach einigen Sicherheitsupdates darf ich meinen öffentlichen Schlüssel nicht zum Git-Server hinzufügen, und außerdem ist SSH das einzige unterstützte Protokoll.

Der Klonbefehl sieht wie folgt aus:

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

Allerdings gibt es davon eine Menge und die Eingabe eines Passworts nach jedem Mal ist wirklich lästig und zeitraubend.

Ich versuche, automatisch ein Passwort an den Klonbefehl zu übergeben. Ich habe versucht, userA:passwordA@git-ger... hinzuzufügen, aber das funktioniert nur für HTTPS, nicht für SSH. Ich weiß, dass ich auf einige automatische Tools wie Ansible umsteigen muss, um eine automatische Bereitstellung zu ermöglichen, aber es hat mich viel Zeit gekostet, den gesamten Erstellungsprozess neu zu schreiben.

Meine Frage ist, wie ich automatisch ein Passwort an das Klon-Repository übergeben kann, ohne etwas auf dem Server zu ändern. Idealerweise würde ich das auf Bash-Ebene tun. Ich habe versucht, Zeilen zu lesen, nachdem ich „git clone“ eingegeben hatte, aber das hat bei mir auch nicht funktioniert. Jede Hilfe ist willkommen.

Antwort1

Meiner Meinung nach ist die beste Lösung, einen benutzerdefinierten GIT_ASKPASSHelfer zu verwenden und das Passwort als weitere Umgebungsvariable zu übermitteln. Erstellen Sie beispielsweise eine Datei git-askpass-helper.shwie folgt:

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

und dann git clone https://username@hostname/repomit Umgebungsvariablen GIT_ASKPASS=/path/to/git-askpass-helper.shund ausführen GIT_PASSWORD=nuclearlaunchcodes.

verwandte Informationen