Mar*_*Pee 5 gerrit jenkins gerrit-trigger
我目前正尝试使用Jenkins Gerrit-Trigger发出"+1 Verified",但有些原因是+1失败了.
由于插件能够成功地向相关的Gerrit变更集发出"-1 Verified"和"Build Started"注释,因此权限似乎是有序的.
当工作成功时,"+1已验证"永远不会实现.检查Jenkins日志显示与作业相关的最后一个条目显示403响应错误:
Jenkins日志也显示相同的请求:
com.sonymobile.tools.gerrit.gerritevents.workers.rest.AbstractRestCommandJob run
SEVERE: Gerrit response: Forbidden
Run Code Online (Sandbox Code Playgroud)
格里特也接受了请求和403响应:
"POST /a/changes/tdmdev~develop~Id917dda3449bf9af738ad7f122adaecba70004bd/revisions/7eab7e90c6b7e66f23faaac7cbfd40d8c9c93726/review HTTP/1.1" 403 46 - "Apache-HttpClient/4.5.2 (Java/1.8.0_77)"
Run Code Online (Sandbox Code Playgroud)
我已经过测试,看看是否有任何关于API的问题,并且使用Gerrit日志中的URL成功报告了"+1 Verify":
curl -v -X POST -d '{"reviewer":"srv_devops_jenkins","labels":{"Verified":"+1"}}' -H "Content-Type: application/json" --user "srv_devops_jenkins:***" --digest http://foobar.com:8080/a/changes/tdmdev~develop~Id917dda3449bf9af738ad7f122adaecba70004bd/revisions/7eab7e90c6b7e66f23faaac7cbfd40d8c9c93726/review
Run Code Online (Sandbox Code Playgroud)
Gerrit Trigger配置为支持RESTClient请求,我已确保以下内容:
我成功的唯一方法是禁用"REST API"并通过SSH连接发出请求,唯一的缺点是我们需要在自定义标签上发出+ 1,据我所知,这些标签不受支持通过Gerrit-Trigger通过SSH.
Versions:
Jenkins: 2.48
Gerrit-Trigger: 2.23.0
Gerrit: 2.12
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助,您可以提供.
简而言之,这是 Jenkins 用户的 Gerrit 权限问题。
通过 RESTAPI 提交请求时的 Gerrit 触发器包括“验证”和“代码审查”投票。现在我们的 Jenkins 用户只有验证权限,因此禁止任何“代码审查”修改(解释 403 响应代码)。
现在作为一种解决方案,简单地授予 Jenkins 用户“代码审查”权限是不切实际的。相反,有一个选项可以在 Jenkins 作业中配置 Gerrit 投票设置:
“Gerrit 触发器”> 单击“高级...”>“Gerrit 报告值”
在“验证”标题下,添加“1”表示成功,同时确保所有其他字段为空,允许 RESTAPI 仅在构建后发送验证 +1 投票。
| 归档时间: |
|
| 查看次数: |
3516 次 |
| 最近记录: |