TL;DR:这是一个错误。有一个错误报告。https://issues.jenkins-ci.org/browse/JENKINS-54051
我正在尝试为 Jenkins 设置 API 端点,以便了解如何与 GitHub Enterprise Server 通信。
我在公司代理后面工作(无论我是否打开代理,错误都会持续存在),并且我的企业 github 有一个我认为已经安装的自定义 CA 证书,但无论哪种情况,我都不认为这是问题,因为我甚至无法将其连接到正常的 github api。这是我收到的错误:
此错误适用于任何端点,包括https://github.myenterprise.com/api/v3和https://api.github.com/乃至https://google.com我可以通过 Firefox 访问这 3 个网站,没有任何错误,而且 github 网站显示了我认为应该得到的 JSON 内容:
{
"current_user_url": "https://api.github.com/user",
"current_user_authorizations_html_url": "https://github.com/settings/connections/applications{/client_id}",
"authorizations_url": "https://api.github.com/authorizations",
...
}
如果我谷歌搜索“此 URL 需要 POST”,则只有 3 个结果,且均与 Jenkins 无关。我的 API / HTML / REST 经验非常有限,不知道该如何尝试修复此问题。
答案1
这看起来确实是插件最新版本github-branch-source
(v2.3.6) 和github
插件 (v1.29.1) 之间的错误或不匹配。从快速分类来看,受影响的调用似乎是https://github.com/jenkinsci/github-branch-source-plugin/blame/5646416554d58fe224be382baa021df1b601f302/src/main/java/org/jenkinsci/plugins/github_branch_source/Endpoint.java#L154以及相关变更集https://github.com/jenkinsci/github-branch-source-plugin/commit/22d3383002274bc3f4368534eba2b5c852e78b39。应该向相关插件的维护者提出这个问题,不幸的是我正在度假,没有时间做这件事,但我只是在这里发布我的发现以帮助社区。
我不建议这样做,但一个解决方法是降级到以前的插件版本:git
3.9.0、1.29.0github
和github-branch-source
2.3.4(只有在您的网络是隔离的情况下才是一个好主意)。这些插件版本包含服务器端请求伪造错误,因此请小心。