mercurial - 作为 Jenkins 的一部分,您如何为 Mercurial 指定身份验证信息? (mercurial_keyring)

标签 mercurial jenkins mercurial-extension

我的代码在 Mercurial 存储库中(使用自签名证书进行保护),我正在尝试设置 Jenkins 以使用它。

我已经在 J​​enkins 中安装了 Mercurial 插件(指向 Jenkins 服务器/从属设备上的 TortoiseHg 安装)并且 Jenkins 作业已正确配置为从存储库中获取源代码。

当我手动构建(即,通过 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

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

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

最佳答案

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

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

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

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

我对在服务器上使用纯文本密码并不特别满意,但直到我找到更好的方法让轮询工作,我才能忍受这一点。

关于mercurial - 作为 Jenkins 的一部分,您如何为 Mercurial 指定身份验证信息? (mercurial_keyring),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10354894/

相关文章:

mercurial - 在 Mercurial 中,如何仅查看一组修订而不是全部修订的标签?

mercurial - tortoisehg 一步提交推送 - 如何以及日志文件在哪里

html - 如何更改我的 Mercurial Web 界面方面

mercurial - 将本地 mercurial 存储库推送到远程服务器或从本地克隆到服务器

git - 为与 master 完全无关的代码创建分支不是很奇怪吗?

linux - 在 Jenkins 中运行 Selenium Webdriver 时出错

node.js - 我们如何使用 jenkins 和 nodejs 设置并行运行测试?

mercurial - 将 mercurial repo 克隆到远程主机

mercurial - 解决 Mercurial 和 IntelliJ IDEA 项目根不匹配的问题?

jenkins - 使用 jenkins 发送电子邮件时出错