
Мне нужно клонировать несколько репозиториев на VM-ах, а затем собрать на них программное обеспечение. У меня есть довольно хороший скрипт сборки, но есть одна проблема. Перед сборкой нужно клонировать несколько репозиториев, и после некоторых обновлений безопасности мне не разрешают добавлять свой открытый ключ на сервер git, а также поддерживается только протокол ssh.
Команда клонирования выглядит следующим образом:
git clone ssh://[email protected]:YYYY/repoB
но их очень много, и ввод пароля после каждого из них действительно утомляет и отнимает много времени.
Я пытаюсь автоматически передавать пароль команде clone. Я пытался добавить userA:passwordA@git-ger.... но это работает только для HTTPS, а не для ssh. Я знаю, что мне нужно переключиться на некоторые автоматические инструменты, такие как ansible, чтобы сделать автоматическое развертывание, но мне потребовалось много времени, чтобы переписать весь процесс сборки.
Мой вопрос в том, как я могу автоматически передать пароль для клонирования репозитория, не меняя ничего на сервере. В идеале это было бы сделать на уровне bash. Я пытался читать строки после ввода git clone, но это также не сработало для меня. Любая помощь будет оценена по достоинству
решение1
По моему мнению, лучшее решение — использовать пользовательский GIT_ASKPASS
помощник и передать пароль как другую переменную окружения. Например, создайте файл git-askpass-helper.sh
как:
#!/bin/sh
exec echo "$GIT_PASSWORD"
а затем запустить git clone https://username@hostname/repo
с переменными окружения GIT_ASKPASS=/path/to/git-askpass-helper.sh
и GIT_PASSWORD=nuclearlaunchcodes
.