2

我花了几天的时间来解决/研究这个问题。我似乎无法弄清楚这里发生了什么。我正在尝试设置一个指向我们内部 GitHub 企业服务器的多分支管道项目。同样的问题也出现在其他项目类型中,例如“GitHub 组织”。这是某种我无法弄清楚的安全问题。

让我们从我所知道的开始......

我已经(据我所知)使用令牌正确配置了 GitHub 插件配置(也根据文档进行了配置)......我可以成功地“验证凭据”并且它成功返回。http://imgur.com/br13adk

我在 GitHub Enterprise Servers Validation 上不断收到此验证问题

http://imgur.com/GnffTeV

我可以成功连接到托管在我的企业 github 服务器上的任何 ONE 存储库。当我尝试从 GitHub 源配置多分支项目时,我的存储库总是空白...... http://imgur.com/2Q9s1mo

我配置了一个自定义记录器来查看发生了什么,并且分支源插件似乎总是输出到 api.github.com ......

Jan 25, 2016 11:48:23 AM WARNING org.jenkinsci.plugins.github_branch_source.Endpoint$DesciptorImpl doCheckApiUri Jan 25, 2016 11:48:23 AM WARNING org.jenkinsci.plugins.github_branch_source.Endpoint$DesciptorImpl doCheckApiUri Jan 25, 2016 11:54:58 AM WARNING org.jenkinsci.plugins.github_branch_source.AbstractGitHubSCMSource$AbstractGitHubSCMSourceDescriptor doFillRepositoryItems Server returned HTTP response code: 401 for URL: https://api.github.com/user Jan 25, 2016 11:54:58 AM WARNING org.jenkinsci.plugins.github_branch_source.AbstractGitHubSCMSource$AbstractGitHubSCMSourceDescriptor doFillRepositoryItems Server returned HTTP response code: 401 for URL: https://api.github.com/orgs/nhudacin Jan 25, 2016 11:54:58 AM WARNING org.jenkinsci.plugins.github_branch_source.AbstractGitHubSCMSource$AbstractGitHubSCMSourceDescriptor doFillRepositoryItems Server returned HTTP response code: 401 for URL: https://api.github.com/users/nhudacin

我已经为 GitHub 插件配置了 API 端点(如第一个屏幕截图所示),PR Builder 插件和凭据正在工作(或者看起来如此)。我认为这可能与企业 API 端点配置有关。

有什么帮助吗??我要疯了!

4

2 回答 2

1

我和Nick H有类似的问题。

在我的生产 Jenkins 实例中

  • Jenkins 版本 2.17 最新的每周发布,截至 8 月 10 日所有插件都是最新的,即
    • GitHub 分支源码插件 1.8.1
    • 管道多分支 2.8

我得到:

WARNING: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/users/ORG

即使我已将GitHub Enterprise Servers上的API 端点配置为http://github.MYDOMAIN/api/v3/

另一方面,在 Jenkins 的全新本地安装中

使用相同的配置,我得到:

Aug 11, 2016 3:19:14 PM org.jenkinsci.plugins.github_branch_source.GitHubSCMSource$DescriptorImpl doFillRepositoryItems

WARNING: Exception retrieving the repositories of the owner ORG on  with credentials USER/****** ( test credentials)

编辑:我找到了一种让它工作的方法,它不是很直观,我在浏览代码并将字符串与插件 UI 匹配后发现它

您需要做的是,在您收到Invalid credentials红色错误按下Advanced...按钮后

在此处输入图像描述

API endpoints然后会出现一个在 中定义的组合框Manage Jenkins-> Configure System -> GitHub Enterprise Servers

在此处输入图像描述

为您的 GitHub Enterprise 实例选择 API 端点,选择Checkout credentials有权访问该实例的,然后将显示所有存储库的列表。

保存它,然后开始一个分支索引,发现上面有 JenkinsFile 的分支。

注意:为了使每次推送都可以正常工作,需要在 github Enterprise 中安装一个 web 挂钩,您可以通过以下方式执行此操作

Manage Jenkins-> Configure System -> GitHub 然后按第二个Advanced...按钮

在此处输入图像描述

现在Re-register hook for all jobs将出现一个按钮。只需按下它,它就会添加每次推送到匹配的存储库时都会触发的钩子。

希望这可以帮助

于 2016-08-11T05:52:19.103 回答
0

我对这个特定场景了解不多,但是在这个提交中你可以看到,他们从正则表达式验证切换到匿名连接到端点。如果您的服务器在 中private mode,它将失败。

于 2016-01-25T21:13:35.677 回答