Jenkins 多分支管道 - GitHub 企业问题?
Jenkins Multibranch Pipeline - GitHub Enterprise Issues?
这个问题我已经花了好几天 troubleshooting/researching 了。我似乎无法弄清楚这里发生了什么。我正在尝试设置指向我们内部 GitHub 企业服务器的多分支管道项目。同样的问题也发生在其他项目类型中,例如 "GitHub Organization"。这是某种我无法弄清楚的安全问题。
让我们从我所知道的开始...
我已经(据我所知)使用令牌正确配置了 GitHub 插件配置(也根据文档进行了配置)...我可以成功 "Verify Credentials" 并且返回成功。 http://imgur.com/br13adk
我在 GitHub Enterprise Servers Validation
上不断收到此验证问题
我可以成功连接到我的企业 github 服务器上托管的任何一个存储库。当我尝试从 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 端点配置有关。
有帮助吗??我要疯了!
我对这个特定场景了解不多,但在 this commit 中你可以看到,他们从正则表达式验证切换到到端点的匿名连接。如果您的服务器在 private mode
,它将失败。
我遇到了与 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
您需要做的是,在您收到 无效凭据 红色错误后按 Advanced...
按钮
然后会出现一个组合框,其中 API endpoints
定义在 Manage Jenkins-> Configure System -> GitHub Enterprise Servers
中。
Select API 端点为您 GitHub 企业实例,选择 Checkout credentials
有权访问该实例,所有存储库的列表将出现。
保存它,并开始一个分支索引,发现上面有 JenkinsFile 的分支。
注意:为了使每次推送都能正常工作,需要在 github Enterprise 中安装一个网络挂钩,您可以通过
Manage Jenkins-> Configure System -> GitHub
然后按第二个 Advanced...
按钮
现在会出现一个 Re-register hook for all jobs
按钮。只需按下它,它就会添加每次你推入匹配的 repos 时都会触发的挂钩。
希望对您有所帮助
这个问题我已经花了好几天 troubleshooting/researching 了。我似乎无法弄清楚这里发生了什么。我正在尝试设置指向我们内部 GitHub 企业服务器的多分支管道项目。同样的问题也发生在其他项目类型中,例如 "GitHub Organization"。这是某种我无法弄清楚的安全问题。
让我们从我所知道的开始...
我已经(据我所知)使用令牌正确配置了 GitHub 插件配置(也根据文档进行了配置)...我可以成功 "Verify Credentials" 并且返回成功。 http://imgur.com/br13adk
我在 GitHub Enterprise Servers Validation
上不断收到此验证问题我可以成功连接到我的企业 github 服务器上托管的任何一个存储库。当我尝试从 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 端点配置有关。
有帮助吗??我要疯了!
我对这个特定场景了解不多,但在 this commit 中你可以看到,他们从正则表达式验证切换到到端点的匿名连接。如果您的服务器在 private mode
,它将失败。
我遇到了与 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
您需要做的是,在您收到 无效凭据 红色错误后按 Advanced...
按钮
然后会出现一个组合框,其中 API endpoints
定义在 Manage Jenkins-> Configure System -> GitHub Enterprise Servers
中。
Select API 端点为您 GitHub 企业实例,选择 Checkout credentials
有权访问该实例,所有存储库的列表将出现。
保存它,并开始一个分支索引,发现上面有 JenkinsFile 的分支。
注意:为了使每次推送都能正常工作,需要在 github Enterprise 中安装一个网络挂钩,您可以通过
Manage Jenkins-> Configure System -> GitHub
然后按第二个 Advanced...
按钮
现在会出现一个 Re-register hook for all jobs
按钮。只需按下它,它就会添加每次你推入匹配的 repos 时都会触发的挂钩。
希望对您有所帮助