способ автоматизировать клонирование репозиториев git

способ автоматизировать клонирование репозиториев git

Мне нужно клонировать несколько репозиториев на 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.

Связанный контент