Мне нужно написать сценарий, который может передавать тег с сервера сборки на сервер git БЕЗ ИСПОЛЬЗОВАНИЯ КЛЮЧЕЙ SSH.
Больше людей имеют доступ к серверу сборки, чем к серверу git, поэтому ключи SSH не будут работать, потому что в этом случае любой сможет отправить запрос на сервер git без указания своих учетных данных.
Сценарий будет запускаться из Jenkins / Hudson, который запрашивает у пользователя имя пользователя и пароль, когда начинает сборку, а затем передает их как переменные среды в сценарий.
Проблема в том, что я не могу найти способ заставить git принимать пароль программно.
Я пробовал:
echo %password% | git push
, а также
git push < tempfilewithpassword.txt (not that writing the password to a temp file is a good idea anyway).
Но в обоих случаях git все равно запрашивает пароль.
ОБНОВЛЕНИЕ: Я также пробовал сценарий python, перенаправляя stdin и stdout, не повезло, все равно получаю приглашение.
ОБНОВЛЕНИЕ: Кроме того, я попробовал Expect для Windows, который НЕ получает подсказку ни в консоли, ни в самом Expect (т.е. Expect никогда не видит никаких выходных данных из git, в конечном итоге просто истекает время ожидания).
Есть предложения?
ПРИМЕЧАНИЕ: Позвольте мне уточнить, потому что люди действительно зацикливаются на использовании ключей SSH.
Требования:
Насколько мне известно, НИЧЕГО, что связано с настройкой ключей SSH, не удовлетворит этого (если только я не требую, чтобы пользователь загружал свой ключ SSH при запуске сценария, что неудобно).