我正在尝试在Jenkins工作中设置Sonar Gerrit - Jenkins Plugin。
上下文
以下是第三点的Jenkins分析日志。
Getting Sonar Report from: [XX].sonar\sonar-report.json
Report has loaded and contains 2950 issues
Connected to Gerrit: server name: Gerrit. Change Number: 297, PatchSetNumber: 1
Unable to post review: Request failed.
Build step 'Post SonarQube issues as Gerrit comments' marked build as failure
Finished: FAILURE
评论被添加到Gerrit(意味着沟通有效)
构建失败 http:jenkins.com/job/project/118/:FAILURE
我无法理解配置不对的地方。你知道这个问题吗?
在Gerrit httpd_log
文件中,当我启动一个新的Jenkins作业时,我有以下几行。
IP - - [26 / oct./ 2016:14:30:08 +0200]" POST / a / changes / REF / revisions / REF / review HTTP / 1.1& #34; 401 12 - " Apache-HttpClient / 4.4.1(Java / 1.8.0_20)"
IP - jenkins [26 / oct./ 2016:14:30:08 +0200]" POST / a / changes / REF / revisions / REF / review HTTP / 1.1& #34; 200 24 - " Apache-HttpClient / 4.4.1(Java / 1.8.0_20)"
在第一个命令中,没有用户而是在第二个命令上有jenkins
个用户。此用户用于将Jenkins服务器连接到Gerrit服务器(ssh和REST API)。这是问题吗?
到目前为止我尝试了什么
在Jenkins下重新配置Gerrit触发器插件
如@Marcelo所述,Sonar Gerrit插件使用Gerrit触发器。我在Gerrit trigger set up之后重新配置了整个插件。
我之前错过了为" Label Verified"
添加Gerrit访问权限的步骤管理员>项目> ...>访问>编辑
参考:refs / heads / *标签:已验证:-1,非交互式用户+1,
关于Can't find 'Label Verified' permission in gerrit 2.7的详细解释。
删除从Jenkins发送到Gerrit 的已验证标记 正如install documentation中针对Gerrit>所述。 2.7。
转到"管理Jenkins"然后点击" Gerrit Trigger"链路
" Gerrit服务器"在您的服务器旁边,点击"编辑"按钮(看起来 像一个装备,其他图标可能会重叠)
根据" Gerrit报告值"单击底部的“高级”按钮
Under" Gerrit Verified命令"删除' - 已验证的'每个命令的部分
软件版本
答案 0 :(得分:1)
我怀疑Jenkins和Gerrit之间的REST API连接存在问题。
" Sonar Gerrit"插件使用" Gerrit Trigger"插件在Gerrit中发布消息。 " Gerrit Trigger"插件可以使用两种不同的方法在Gerrit中发布消息:SSH或REST API。"构建失败......失败"消息由" Gerrit Trigger"直接发布。插件,它可以使用SSH执行。 " Sonar Gerrit"消息CAN可以使用SSH执行,它们需要使用REST API完成,因此" Gerrit Trigger"插件需要配置为使用REST API来启用" Sonar Gerrit"插件发布在Gerrit。
查看更多信息here。
转到Jenkins>管理Jenkins> Gerrit Trigger>编辑>先进
检查REST API是否已启用以及它是否按预期工作(使用"测试REST连接"按钮)
答案 1 :(得分:1)
是否适用于“帖子分数?”部分?未检查?
您使用什么类别进行分数发布? (你是否在Gerrit中创建了它?)
如果我没记错的话,一个异常(由Gerrit Trigger提供)导致消息
无法发布评论:请求失败。
始终完全相同,无论如何都无法理解RestApiException
的原因。
答案 2 :(得分:1)
新版本的sonar-gerrit插件已经发布。抱歉,我很抱歉。
我现在无法完全解决问题JENKINS-32851,因为异常的原因可能会有所不同,但我添加了查看RestAPIException堆栈跟踪的功能。查看项目Wiki中的详细信息。 如果它有帮助(或没有)以及导致您的问题(是?),请告诉我。我觉得我必须在项目Wiki的故障排除部分添加一些可能的异常原因:)