我目前正试图使用Jenkins Gerrit触发器发出一个"+1验证“,但是+1失败的原因是一些原因。
由于插件能够成功地向相关的Gerrit发出"-1验证“和”构建已启动“的注释,权限似乎是有序的。
当工作成功时,"+1验证“永远不会成为现实。检查Jenkins日志显示,与作业相关的最后一个条目显示一个403响应错误:
Jenkins日志还显示了相同的请求:
com.sonymobile.tools.gerrit.gerritevents.workers.rest.AbstractRestCommandJob run
SEVERE: Gerrit response: ForbiddenGerrit还收到了这项请求和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)"我已经测试了API是否存在任何查询,并使用Gerrit日志中的URL成功地报告了"+1验证“:
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/reviewGerrit触发器被配置为支持RESTClient请求,我确保了以下内容:
我成功的唯一方法是禁用"REST“并通过SSH连接发出请求,唯一的缺点是我们需要在自定义标签上发布+1,据我所知,这些标签通过Gerrit触发器在SSH上不受支持。
Versions:
Jenkins: 2.48
Gerrit-Trigger: 2.23.0
Gerrit: 2.12谢谢你能提供的任何帮助。
发布于 2017-05-30 09:16:08
简而言之,这是Jenkins用户的Gerrit权限问题。
在RESTAPI上提交请求时,Gerrit触发器包括“验证”和“代码评审”两种投票。现在,我们的Jenkins用户只有验证权限,所以禁止任何“代码评审”修改(解释403响应代码)。
现在,作为一种解决方案,简单地授予Jenkins用户“代码审查”权限是不切实际的。相反,有一个选项可以在Jenkins职务中配置Gerrit投票设置:
"Gerrit触发器“>单击”高级.“> "Gerrit Reporting”
在“验证”标题下,添加"1“表示”成功“,同时确保所有其他字段为空,RESTAPI只允许在生成后发送验证+1票。
发布于 2019-05-05 14:11:31
在Jenkins >> >>触发器中,您的服务器名为>> Gerrit Reporting >> Advanced >> reset api,请检查“已验证的启用”。
https://stackoverflow.com/questions/42529311
复制相似问题