如何为Merkins作为Jenkins的一部分指定身份验证信息?(mercurial_keyring)

Pet*_*ier 5 mercurial mercurial-extension jenkins

我在Mercurial存储库中获得了代码(使用自签名证书保护),我正在尝试设置Jenkins以使用它.

我已经在Jenkins中安装了Mercurial插件(指向在Jenkins服务器/从服务器上安装TortoiseHg)并且Jenkins Job已正确配置为从存储库中获取源代码.

当我手动构建(即通过Web界面)时,一切都按预期工作.

但是,看起来存储库的轮询不成功,因为我得到类似于以下的输出:

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
Run Code Online (Sandbox Code Playgroud)

我之前已经完成了存储库的手动克隆,以便我能够输入用户的密码来使用Mercurial密钥环扩展来进行授权,但是根据错误输出,它似乎并没有被应用.

如何配置Jenkins或运行构建的计算机成功进行轮询?

Pet*_*ier 3

这可能不是解决问题的最佳方法,但它对我有用,并且我能够继续前进。

我能够弄清楚如何让服务器记住我的设置中的密码的唯一方法是在 \mercurial.ini 中手动指定它。

注意:您可能还需要从mercurial.ini 中删除mercurial_keyring 行。(这会禁用密钥环扩展,因为我们手动指定所有内容。)

我之前认为在服务器上克隆一次存储库会让它记住密码,但这似乎不适用于 Jenkins 中的轮询功能(尽管当它们在服务器上执行时它确实适用于我的实际构建脚本) )。

我对在服务器上以纯文本形式提供密码并不是特别满意,但在我找到更好的方法让轮询正常工作之前,我可以接受这一点。