Дженкинс GIT плагин http аутентификации.netrc
С момента последнего обновления jenkins и плагина git аутентификация http через.netrc больше не работает. Я действительно проверил много-много тем об этой проблеме.
Я попытался использовать также вариант http://user:pass@url.tld/repo.git который работает. Но внутренне мы предоставляем виртуальную машину, которая содержит все необходимые рабочие места для развития. Перед обновлением мы только что отредактировали файл.netrc в домашней папке jenkins, и jenkins отлично работает.
Я также пытался уже через консоль git clone http://url.tld/repo.git которая отлично работает, даже на пользователя jenkins.
Вот некоторые детали:
- Дженкинс: v1.536
- Плагин GIT: v2.0
- Плагин клиента GIT: v1.4.5
- GIT: 1.8.4.GIT
- Centos: 6,4
- Java: 1.6.0
.Netrc
machine url
login user
password pass
Вот ошибка jenkins в маске конфигурации: Не удалось подключиться к хранилищу: Не удалось подключиться к http:// ....git (status = 401)
Было бы хорошо, если у кого-то есть идея.
5 ответов
Эта проблема была первоначально обнаружена с помощью клиентского плагина Git 1.4.3 и должна быть исправлена в 1.4.4 nicolas de loof:
Смотрите выпуск 20175.
Попробуйте понизить плагин клиента git до версии 1.4.4.
Если в 1.4.5 введена регрессия, повторно открыть выпуск 20175 года.
Ответ Florian (upvoted) предлагает возможную причину для клиентского плагина git до 1.4.5, относительно .netrc
формат.
machine hostname login user password secret
(только одна строка вместо нескольких строк)
Florian настаивает в комментариях на наличие некоторых ошибок:
- Если у вас есть несколько хостов, определенных в
.netrc
файл, первый будет взят, независимо от того, является ли он правильным или нет.- Также под окнами
_netrc
файл, скорее всего, не будет найден, так как он не будет найден в домашнем каталоге пользователя Jenkins.
Это (_netrc
файл) не читается плагином клиента git (прямо сейчас, ноябрь 2013 г.) для получения учетных данных.
Работает правильно с.netrc
, но не с_netrc
, независимо от того, Windows или Unix.
Так что я бы предложил иметь идентичный.netrc
файл в домашнем каталоге под Windows, в дополнение к_netrc
До тех пор, пока эта ошибка ( JENKINS-20688) не будет исправлена.
Он упоминает о наличии патча jenkinsci/git-client-plugin на GitHub.
С плагином Git client 1.4.5 вам нужно будет использовать другой формат для вашего файла.netrc. Плагин Git-клиента требует информацию о хосте в файле.netrc, все в одной строке. Так что меняя это
machine hostname
login user
password secret
к этому
machine hostname login user password secret
должен заставить это работать снова.
Конечно, не самая лучшая реализация на стороне плагинов, но, к сожалению, в настоящее время это так. Обратите внимание, что между словами в строке должен быть только один пробел. Избегайте замыкания пробелов тоже.
Кроме того, из-за ошибки будет взята первая такая строка в файле, независимо от того, совпадает имя хоста или нет. Так что если вам нужно иметь несколько хостов в вашем файле.netrc, это не сработает. Вернее только с первым в списке. Нет известного обходного пути.
Обратите внимание, что если вы используете _netrc
файл под windows, есть вероятность, что он не будет найден, так как плагин git client (в версии 1.4.6) не ищет его в домашнем каталоге пользователя Jenkins. Обойти это, чтобы иметь .netrc
файл под windows тоже.
Здесь, чтобы добавить для всех остальных:
Ссылка для скачивания файлов понижения:
Плагин Git Client 1.0.7: http://mirrors.jenkins-ci.org/plugins/git-client/1.0.7/git-client.hpi
Git Plugin 1.4.0: http://mirrors.jenkins-ci.org/plugins/git/1.4.0/git.hpi
Мне пришлось понизить Git Client Plugin до версии 1.3.0, чтобы он снова заработал.
Вот ссылка для скачивания: http://mirrors.jenkins-ci.org/plugins/git-client/1.3.0/git-client.hpi