我在 Jenkins 中间歇性地收到以下错误。到目前为止,一切都没有改变。Jenkins 版本 2.150.3 和 Gitlab 插件版本 1.5.11
20:31:01 Failed to update Gitlab commit status for project '10750': HTTP 400 Bad Request
Run Code Online (Sandbox Code Playgroud)
jenkins 服务器日志中的错误:
SEVERE: Failed to update Gitlab commit status for project '10750'
javax.ws.rs.BadRequestException: HTTP 400 Bad Request
at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:197)
at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.DefaultEntityExtractorFactory$3.extractEntity(DefaultEn
tityExtractorFactory.java:50)
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104)
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:64)
at com.dabsquared.gitlabjenkins.gitlab.api.impl.$Proxy152.changeBuildStatus(Unknown Source)
at com.dabsquared.gitlabjenkins.gitlab.api.impl.ResteasyGitLabClient.changeBuildStatus(ResteasyGitLabClient.java:60)
at com.dabsquared.gitlabjenkins.gitlab.api.impl.AutodetectingGitLabClient$7.execute(AutodetectingGitLabClient.java:1
12)
at com.dabsquared.gitlabjenkins.gitlab.api.impl.AutodetectingGitLabClient$7.execute(AutodetectingGitLabClient.java:1
09)
at com.dabsquared.gitlabjenkins.gitlab.api.impl.AutodetectingGitLabClient$GitLabOperation.execute(AutodetectingGitLa
bClient.java:335)
at com.dabsquared.gitlabjenkins.gitlab.api.impl.AutodetectingGitLabClient$GitLabOperation.access$100(AutodetectingGi
tLabClient.java:332)
at com.dabsquared.gitlabjenkins.gitlab.api.impl.AutodetectingGitLabClient.execute(AutodetectingGitLabClient.java:328
)
Run Code Online (Sandbox Code Playgroud)
在调查这个问题后,我发现了这一点:
提交状态创建 (API):无法再使用 NAT 下带有“target_url”的链接
在我们的组织中,由于 Gitlab Community Edition 已更新到11.11.8,因此出现错误
Status: 400 Bad Request
Response body: {
"message" : {
"target_url" : [ "is blocked: Host cannot be resolved or invalid" ]
}
}
Run Code Online (Sandbox Code Playgroud)
@devops 您使用的 Gitlab 版本是什么?你能提供 Jenkins 日志的响应正文吗?
看看jenkinsci/gitlab-plugin 问题 522的评论是否有帮助:
仅供其他可能偶然发现这一点的人使用。
我的问题是,我试图在我的主项目 SCM 签出之前描述 gitLabBuilds,然后再更新它们。
这产生了奇怪的副作用,即为包含我的 Jenkinsfile 的存储库创建 GitLab Pipeline 作业(与我的主存储库不同),因此尝试更新错误存储库的状态很可能导致此错误。我花了一分钟时间来释放 gitlabBuilds 和 gitlabCommitStatus 更新最后签出的存储库,如果顺序错误,它将尝试更新 Jenkinsfile 存储库。
我相信如果您重新运行构建(手动重新发送挂钩或重建)到已合并/关闭的合并请求,也会发生这种情况。似乎您无法更新合并 PR 的状态,这是有道理的。可以为该场景添加一些信息性消息吗?
BadRequestException: HTTP 400 Bad Request当我们在管道中使用共享库时,总是会抛出 ,如此处所述。
显然,Jenkins 克隆两个存储库来构建任何项目:(1) 共享库和 (2) 项目存储库。
阿斯洛jenkinsci/gitlab-plugin第885期
我们也看到过这个错误。
在我们的例子中,这是由于 Jenkins Web hook 在 GitLab 项目设置中为合并请求事件注册了两次。
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |