Невозможно запустить клон git в действиях GitHub - PullRequest
0 голосов
/ 14 апреля 2020

Я устанавливаю свой пароль и имя пользователя следующим образом:

git config --global user.email $git_email
git config --global user.name $git_username
git config --global user.password $git_password

, где $ git_email, $ git_username и $ git_password указывают на правильные переменные среды.

Now when I try to run git clone I get the following error: 
Cloning into 'certificates'...
fatal: could not read Username for 'https://github.com': Device not configured

Тот же подход работает локально и в Travis CI, поэтому я не уверен, в чем проблема.

1 Ответ

1 голос
/ 15 апреля 2020

user.name не является именем пользователя, а user.password не существует. Из документации для user.name:

Обратите внимание, что формы имен этих переменных условно относятся к какой-либо форме личного имени. См. git -commit (1) и раздел переменных среды git (1) для получения дополнительной информации об этих настройках и опции credential.username, если вы ищете вместо этого учетные данные для аутентификации.

То есть user.name должно быть вашим (человеческим) именем, а не именем пользователя.

В результате вам предлагается ввести имя пользователя и пароль, но вы получаете ошибку, потому что есть нет TTY, на котором вам подсказать. В вашей системе учетные данные, вероятно, уже сохранены в вашем помощнике по учетным данным, поэтому вы не видите подсказку.

Если вы хотите клонировать другой репозиторий, вы должны сначала создать личный токен доступа и сохранить его. это в секретном хранилище вашей системы CI (например, в качестве переменной среды с именем TOKEN). PAT не меняются, когда ваш пароль меняется, могут быть отозваны и повернуты независимо от вашего пароля и более безопасны, чем большинство паролей.

Затем в инструменте CI выполните следующее:

$ git config credential.helper '!f(){echo username=token; echo "password=$TOKEN";};f'

Это настроит помощника по учетным данным для использования токена, который находится в переменной окружения TOKEN, в качестве пароля. Убедитесь, что для вашей операции клонирования установлена ​​переменная окружения, и все должно работать.

...