我花了几天时间来排查/研究这个问题。我似乎无法弄清楚这里发生了什么。我正在尝试设置一个指向我们内部GitHub企业服务器的multibranch管道项目。其他项目类型也出现同样的问题,就像“GitHub组织”一样。这是我无法弄清楚的某种安全问题。
让我们从我所知道的开始......
我(根据我的知识)使用TOKEN正确配置GitHub插件配置(也按照文档配置)...我可以成功“验证凭据”并恢复成功。 http://imgur.com/br13adk
我一直在GitHub企业服务器验证上遇到此验证问题
我可以成功连接到我的企业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端点配置有关。
任何帮助?我在这里疯狂!
答案 0 :(得分:1)
我对这个特定场景知之甚少,但在this commit中你可以看到,他们从正则表达式验证切换到匿名连接到端点。如果您的服务器位于private mode
,则会失败。
答案 1 :(得分:1)
我遇到与Nick H.
类似的问题在我的制作Jenkins实例中
我明白了:
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...
按钮
然后会出现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
按钮。只需按下它,它应该添加每次进入匹配的回购时将触发的挂钩。
希望这有帮助