Как вы определяете информацию аутентификации для Mercurial как части Jenkins? (Mercurial_keyring)

У меня есть код в репозитории Mercurial (защищенный самозаверяющим сертификатом), и я пытаюсь настроить Jenkins для работы с ним.

У меня установлен плагин Mercurial в Jenkins (указывает на установку TortoiseHg на Jenkins Server/Slaves), и задание Jenkins правильно настроено для получения источника из репозитория.

Когда я строю вручную (т.е. через веб-интерфейс) все работает как положено.

Тем не менее, похоже, что опрос хранилища не удается, так как я получаю вывод, подобный следующему:

Started on Apr 27, 2012 1:07:41 PM
[<jobname>] $ hg pull --rev default
warning: <MercurialServerIP> certificate with fingerprint e3:5f:5e:ea:4f:da:ef:a4:0b:4a:bb:00:e8:31:59:de:ce:d0:28:94 not verified (check hostfingerprints or web.cacerts config setting)
abort: mercurial_keyring: http authorization required but program used in non-interactive mode
[<jobname>] $ hg log --style <workspace>\<jobname>\tmp688470509422797505style --branch default --no-merges --prune 65d180b20a1e625841c8385709c86b83c3e10421
Done. Took 1.9 sec
No changes

Ранее я делал клонирование репозитория вручную, чтобы я мог ввести пароль пользователя для работы с расширением брелока Mercurial для авторизации, но, основываясь на выводе ошибки, кажется, что он не применяется.

Как настроить Jenkins или машину, на которой выполняется сборка, для успешного опроса?

2 ответа

Решение

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

Единственный способ выяснить, как заставить сервер запомнить пароль в моей настройке, это указать его вручную в \mercurial.ini .

ПРИМЕЧАНИЕ. Возможно, вам также придется удалить строку mercurial_keyring из файла mercurial.ini. (Это отключает расширение связки ключей, так как мы указываем все вручную.)

Ранее я полагал, что клонирование репозитория на сервере позволит ему запомнить пароль, но, похоже, это не работает с функциональностью опроса в Jenkins (хотя она работала с моими фактическими сценариями сборки, когда они выполнялись на сервере).).

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

С помощью "расширения kilnauth" вы можете хранить свои учетные данные на своем компьютере. Таким образом, вам не нужно настраивать что-то особенное на Jenkins.

$ hg help kilnauth
kilnauth extension - stores authentication cookies for HTTP
repositories. This extension knows how to capture Kiln
authentication tokens when pushing over HTTP.
This means you only need to enter your login and password once;
after that, the FogBugz token will be stored in your home
directory, allowing pushing without a password.

Инструкции по его установке приведены ниже: http://kiln.stackexchange.com/questions/341/how-can-i-install-kilns-mercurial-extensions-manually

Другие вопросы по тегам