Плагин Jenkins Credentials и клиент GIT не работают
Я использую плагин Git Client для подключения Jenkins к моему хранилищу (теоретически). Я не могу подключиться к репо с использованием обычной HTTP-аутентификации. Когда я ввожу имя пользователя: пароль вручную, я могу подключиться. Я пробовал несколько разных способов подключения, и кажется, что ничего не работает, как ожидалось. Если я отключу свою HTTP-аутентификацию, Jenkins успешно подключится и соберется без проблем. Я использую...
- Полномочия 1.10
- Плагин Jenkins Git Client 1.6.3
- Плагин Jenkins Git 2.0.3
- Apache, Git 1.7.1 на сервере
Если я пытаюсь установить путь в конфигурации задания через что-то вроде http://username:password@git.mydomain.com
Кажется, он автоматически проверяет правильность пути и не жалуется. Однако, используя этот метод, когда я на самом деле создаю задание, мой сервер сообщает об ошибке несоответствия пароля (в нем отображается имя пользователя, но не пароль, я предполагаю, что пароль действительно используется, хотя я хотел бы знать наверняка), Вот ошибка в Apache error_log:
user jenkins: authentication failure for "/info/refs": Password Mismatch
если я ввожу те же учетные данные в поле учетных данных, оно не подключается и выплевывает:
Failed to connect to repository : Command "git config --local credential.helper store --file=/var/lib/jenkins/tmp/git4177869325176518383.credentials" returned status code 129:
stdout:
stderr: error: unknown option `local'
usage: git config [options]
Я не вижу --local в руководстве по git, возможно, есть модуль, который мне нужен?
1 ответ
У меня такая же проблема. Проблема в том, что Jenkins Git
плагин ожидает иметь git
версия 1.8 или выше, установленная на Jenkins
сервер - но не проверяет это и не предупреждает вас, что вы используете устаревшую версию. (git
1.8 поддерживает --local
опция должна быть указана для git config
; git
1.7 нет.)
Есть несколько вариантов, чтобы обойти это:
- Обновите версию git, установленную на вашем сервере.
- Пусть Дженкинс скачает git по требованию и использует эту версию для создания своих проектов. (Это занимает довольно много времени.) Этот параметр не использует копию git, установленную на вашем сервере.
- Пусть Jenkins использует JGit (версия git на чистом Java, которая не требует установки git на вашем сервере) - насколько я могу судить, он использует JGit, который поставляется с клиентом Jenkins Git.
Опции 2 и 3 доступны через кнопку " Добавить Git" на странице " Управление Jenkins / Настройка системы" в разделе " Установка Git/Git ".
Мой сервер работает под управлением Ubuntu 10.4 LTS, для которого в стандартных репозиториях нет пакета git 1.8, и я предпочитаю не устанавливать неупакованное программное обеспечение на моем сервере, поэтому я исключил вариант 1. Я обнаружил, что конфигурация для варианта 2 слишком обременительна, и у меня не было тёплого ощущения, что он продолжит работать для новых выпусков git. Таким образом, это оставило меня с вариантом 3, который работал хорошо для меня.