Мне нужно написать скрипт, который может переместить тег с сервера сборки на 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 for Windows, которая НЕ получает приглашение ни в консоли, ни в самом Expect (IE Expect никогда не видит никаких выходных данных).от git, это просто время ожидания).
Есть предложения?
ПРИМЕЧАНИЕ: Позвольте мне уточнить, потому что люди действительно зацикливаются на использовании ключей SSH.
Требования:
- Учетные данные должны быть указаны в начале сборки (Дженкинс принимает их и передает их моему сценарию).
- Учетные данные сохраняются ТОЛЬКО на протяжении этого синглаbuild.
- Учетные данные могут меняться от одной сборки к следующей.
Насколько я знаю, НИЧЕГО, что связано с настройкой ключей SSH, это не удовлетворит (если только я не требую пользователязагружать свой ключ SSH при запуске сценария, что не удобно).