【问题标题】:Is it possible to use Jenkins Webhooks with Github when the github account uses 2 factor auth当 github 帐户使用 2 因子身份验证时,是否可以将 Jenkins Webhooks 与 Github 一起使用
【发布时间】:2020-04-03 14:50:24
【问题描述】:

我正在为 jenkins 使用最新的 docker 镜像(jenkins/jenkins:lts JENKINS_VERSION 2.208)。我已经启动了容器,配置了 jenkins,并且可以针对公共 repo 手动构建。但是,在我的 github 帐户上,我有 2FA,必须保留。我在 Github 中创建了一个个人访问令牌,并在我的 jenkins config for github server 部分中使用了它。我通过按下测试连接链接验证了连接是否正常工作(我添加了使用来自 github 的个人访问令牌的秘密文本):

在 Github 中,我有 wekhook 设置,其中包含 jenkins 托管位置的 IP 地址(docker 容器的 IP),然后是 github-webhook(我也尝试过为 jenkins 使用 dns 映射地址,例如,@ 987654322@),内容类型为application/json:

我在 jenkins 中也启用了 github 轮询,但是,它不适用于对 repo 的推送请求。我在 webhook 部分的 Github 中看到失败日志,每次推送时都会增加(请求不断失败)。我在互联网上进行了广泛搜索,并找到了有关该做什么的建议文档,包括此处的此链接:securing your webhooks,但是当启动推送并触发构建时,没有什么能给我想要的轮询效果。所以我的问题是,是否可以使用 2FA 和 github webhooks?如果可能,那么具体的步骤是什么?

【问题讨论】:

    标签: docker jenkins github webhooks two-factor-authentication


    【解决方案1】:

    如果您启用了 2FA,您将无法再通过您的工具通过登录名/密码进行身份验证。您需要创建一个令牌来代替您的密码。

    official documentation 应该很快就能让你到达那里。

    【讨论】:

    • 所以我添加了我的个人访问令牌代替用户名和密码作为 Jenkins > 配置 - Github - Github 服务器部分中的凭据作为秘密文本。当我使用 PAT 测试该连接时,我会收到一个速率限制响应,所以我相信该连接可以正常工作。但这并不能解决 webhook 问题,该问题继续失败。
    • 好吧,这似乎是一个不同的问题:要么您的 IP 以匿名的方式发出了太多请求,因此您没有被识别和限制……或者您的帐户发出了太多的请求。
    【解决方案2】:

    最终解决方案是下载 ngrok。我之前尝试过的 IP 地址和 dns 映射地址不公开。我也尝试使用我的公共 IP 地址,但这也没有用。最后,下载 ngrok 给了我一个可公开访问的 ip 地址(该地址将如下所示:http://1212344a.ngrok.io)。如果您还计划使用 ngrok,请确保当您从命令行/终端启动它时,您还为本地运行的应用程序传递相同的端口(如果需要)。接下来,在 github-settings-webhooks 中将有效负载 url 设置为 ngrok 在终端输出中提供的 url,但还将 /github-webhook/ 附加到地址末尾以完成有效负载 url(在我的情况下是 @ 987654322@ 作为完整的有效载荷 url)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      • 2013-08-03
      相关资源
      最近更新 更多