仅当 SonarQube 扫描仪通过远程扫描和传递代码时才接受推送请求 git hook/s

Accept push request only if code is scanned and Passed by SonarQube Scanner by remote git hook/s

我们已经开始使用 Gitlab 和 SonarQube 在 Java 中进行开发。

我们还为 运行ning sonar-scanner 使用了 pre-commit hook,根据其结果,我们将 SUCCESS/FAILURE/ERROR 字符串附加到通过 commit-msg hook 提交消息。因此,在服务器端,我们使用 update hook 来决定是否接受推送 w.r.t。提交消息。

如果开发人员删除客户端挂钩并手动附加 SUCCESS,则存在漏洞。所以服务器不能保证客户端挂钩。

我的问题是,有没有办法保证 sonar-scanner 真的被触发了?或者通过服务器端挂钩 运行 sonar-scanner 的任何其他解决方案?

OR Any other solution to run sonar-scanner by server-side hook?

您可以 运行 在预接收挂钩中 checkout the received 编码并 运行 它在那里。
缺点是任何推送都会花费 long 时间。

我的方法更简单:我接受任何推送,并且我有一个 Jenkins 工作定期 运行在项目上使用 SonarQube,如果有任何问题发送电子邮件。
发布管理流程将检查 SonarQube 项目状态,如果在那里检测到未解决的问题,将拒绝继续。