【问题标题】:How can I checkout several private Github repos using Jenkins如何使用 Jenkins 签出多个私有 Github 存储库
【发布时间】:2012-02-02 00:41:46
【问题描述】:

我对 Jenkins 和私人 Github 存储库有一个小问题。 要查看私人仓库,通常需要以下两件事之一:

  • 该仓库上用户的 SSH 私钥
  • 为该存储库注册的“部署密钥”的私有 SSH 密钥

部署密钥是为这种交互而制作的。问题是部署密钥在项目中必须是唯一的,所以我每次都必须使用不同的密钥。 这意味着我必须为 Jenkins 用户为每个额外的 repo 添加另一个密钥到 ssh-agent。
这也意味着默认情况下,代理会尝试所有可用的密钥,并且可能会在使用错误密钥进行几次错误尝试后断开连接。

Jenkins git 插件似乎不允许将其指向 SSH 密钥。 Jenkins 在结帐前不允许任何命令行交互,所以我不能使用任何 bash 技巧来设置正确的密钥。

到目前为止,唯一的解决方案似乎是:

  1. 在 github 中创建一个“my_jenkins_account”用户
  2. 为用户添加公钥
  3. 将帐户添加到我想使用 Jenkins 签出的存储库
  4. 将用户的私钥添加到jenkins用户中

还有其他建议吗?

【问题讨论】:

    标签: github jenkins


    【解决方案1】:

    这并不完全是一个答案,只是黑暗中的回声,让你知道我做的事情几乎相同。

    1. 以名为jenkins 的用户身份运行 Jenkins
    2. sudo 作为该用户并创建一个公共 ssh 密钥
    3. 创建一个名为 myorg-machines 的免费 G​​itHub 帐户
    4. 将此jenkins 用户的公共ssh 密钥添加到GitHub 上的myorg-machines 帐户密钥。我将此键命名为 jenkins on server.name.com 以使事情井井有条。
    5. 创建一个名为 Machines - Pull only 的 GitHub 团队。将 myorg-machines GitHub 用户添加到该团队,并授予该团队对我适当的私有存储库的拉取访问权限。

    我同意这看起来很笨拙,但实际上一年多来管理起来很容易。

    【讨论】:

    • 谢谢,我们现在也在运行这个设置。它有效,但仍然感觉不对:(
    • 嗯,在某种程度上,jenking 服务器充当为您的存储库的附加用户。从某种意义上说,它是一个独立的实体,作用于存储库。将此实体映射到 github 用户并非完全不合理。 (话虽如此,但正如已经说过的那样,它仍然有点笨拙。但是必须做,我们要去......)
    猜你喜欢
    • 1970-01-01
    • 2017-08-29
    • 2021-09-16
    • 2011-07-09
    • 2018-11-02
    • 1970-01-01
    • 2021-01-18
    • 2012-05-24
    • 2016-04-17
    相关资源
    最近更新 更多