Jenkins Multibranch Pipeline - GitHub企业问题?

时间:2016-01-25 19:14:31

标签: jenkins jenkins-pipeline

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

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

我(根据我的知识)使用TOKEN正确配置GitHub插件配置(也按照文档配置)...我可以成功“验证凭据”并恢复成功。 http://imgur.com/br13adk

我一直在GitHub企业服务器验证上遇到此验证问题

http://imgur.com/GnffTeV

我可以成功连接到我的企业github服务器上托管的任何一个存储库。当我尝试从GitHub源配置多分支项目时,我总是得到BLANK for repositories .... 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端点配置有关。

任何帮助?我在这里疯狂!

2 个答案:

答案 0 :(得分:1)

我对这个特定场景知之甚少,但在this commit中你可以看到,他们从正则表达式验证切换到匿名连接到端点。如果您的服务器位于private mode,则会失败。

答案 1 :(得分:1)

我遇到与Nick H.

类似的问题

在我的制作Jenkins实例中

  • Jenkins版本2.17最新每周发布,所有插件截至8月10日为止
    • GitHub Branch Source Plugin 1.8.1
    • PipelineMultibranch 2.8

我明白了:

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

即使我已将 GitHub企业服务器上的 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匹配后找到了它

您需要做的是,在获得无效凭据红色错误后按Advanced...按钮

enter image description here

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

enter image description here

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

保存它,并启动分支索引,发现其上有JenkinsFile的分支。

注意:为了让每次推送工作都需要在github Enterprise中安装Web挂钩,你可以通过

来实现。

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

enter image description here

现在会出现Re-register hook for all jobs按钮。只需按下它,它应该添加每次进入匹配的回购时将触发的挂钩。

希望这有帮助