我的公司刚刚将 GHE 实例升级到 2.17,现在我使用 Jenkins 时遇到了麻烦。升级之前一切正常,但现在每当构建拉取请求时,我都会收到以下错误:
19:17:43 Connecting to https://xxxxxxxxxxxxxxxx/api/v3 using cxxxxxxxxxxxxxn/****** (Credentials to access the xxxxxxxxxxx openstack api)
GitHub has been notified of this commit’s build result
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: (StringReader); line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:693)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:591)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1902)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:757)
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4142)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4001)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3005)
at org.kohsuke.github.Requester.parse(Requester.java:629)
Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: 200, message: 'OK' for URL: https://xxxxxxxxxxxxxxx/api/v3/users/AT
at org.kohsuke.github.Requester.parse(Requester.java:646)
at org.kohsuke.github.Requester.parse(Requester.java:607)
at org.kohsuke.github.Requester._to(Requester.java:285)
at org.kohsuke.github.Requester.to(Requester.java:247)
at org.kohsuke.github.GitHub.getUser(GitHub.java:398)
at org.jenkinsci.plugins.github_branch_source.GitHubSCMFileSystem$BuilderImpl.build(GitHubSCMFileSystem.java:304)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:293)
at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:103)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE
我绝不是 Jenkins 专家,但这确实让我感到困惑。主分支上的作业运行良好,基于标签的作业运行良好。只有 PR 上的作业才会中断。另外,响应代码 200 怎么会导致错误?
我尝试添加一个记录器来查看是否可以从网络调用中获取原始输出,但是我没有获得正确的级别,因此如果它被输出,我实际上看不到它。
我试过谷歌,但没有成功,它被库异常淹没了。我也一直在尝试查找 GHE 的问题,但还没有找到任何东西。我希望有人能告诉我如何从网络调用中获取原始输出,因为我认为这会为我指明解决问题的方向。
答案1
根据上述评论中的提示,我们修复了构建管道。我们在 Jenkins 中通过将存储库 URL 中的一个字符从小写更改为大写来完成此操作。这听起来很奇怪,但它可以工作,如果没有它,它又会崩溃。可能是上次更新中的一个错误。
在您的管道中配置。 在下面分支来源,将其中一个字符更改为大写。
存储库 HTTPS URLhttps://git.yourenterprisedomain.com/C改成大写
答案2
2.17 中的名称处理方式有所变化,以支持允许组织在其名称中使用空格。本质上是“AT”!=“at”,而在 2.17 之前,它们被视为相同。
通过更新组织文件夹配置中的组织,我解决了这个问题。