Svn 是否可以通过预提交挂钩运行SonarQube分析

Svn 是否可以通过预提交挂钩运行SonarQube分析,svn,sonarqube,pre-commit-hook,sonar-runner,Svn,Sonarqube,Pre Commit Hook,Sonar Runner,我读过几篇关于stackoverflow的文章,其中指出,使用sonar作为提交前分析工具效率低下,因为它必须运行整个项目的编译、运行分析等 但是,sonarqube的手册指出,有一个sonar.Includes属性用于设置要运行分析的文件列表。因此,我考虑对已更改/修改为预提交挂钩的文件运行分析,并在添加太多问题时失败提交 据我所知,可以通过svnlook获取修改和添加的文件列表;还可以将sonar analyzer指向一个具体的.properties文件(例如,该文件指向的配置只有编码规则、

我读过几篇关于stackoverflow的文章,其中指出,使用sonar作为提交前分析工具效率低下,因为它必须运行整个项目的编译、运行分析等

但是,sonarqube的手册指出,有一个sonar.Includes属性用于设置要运行分析的文件列表。因此,我考虑对已更改/修改为预提交挂钩的文件运行分析,并在添加太多问题时失败提交

据我所知,可以通过svnlook获取修改和添加的文件列表;还可以将sonar analyzer指向一个具体的.properties文件(例如,该文件指向的配置只有编码规则、圈复杂度和LCOM4度量)

但是,我无法理解如何在pre-commit hook脚本中获得声纳分析的结果,并提供(比如)分析结果的链接。有可能吗?是否有任何现实世界的例子,或至少是与此相关的例子

提前谢谢

但是,我无法理解如何在pre-commit hook脚本中获得声纳分析的结果,并提供(比如)分析结果的链接。有可能吗

从预提交开始,没有。如果您希望完成提交,至少没有。如果预提交向客户端返回任何内容,则提交将被拒绝

预提交只应用于检查提交以验证是否满足要求-检查是否提供了提交消息,如果与错误跟踪器集成,请确保输入了有效的错误ID,可能会执行一些内置基于路径的授权无法处理的安全检查

所有的钩子脚本都应该尽可能的简短和高效。一个长时间运行的预提交尤其会阻碍提交者和任何试图在他背后提交的人


对于您的使用,post-commit钩子可能会起作用(除非它不能向客户端发送反馈,因此您无法提供URL),但更好的解决方案是使用持续集成服务器。此工具将监视存储库中的更改,并在每次符合条件的提交时执行您告诉它的操作。使用该系统执行检查并发送一封包含检查结果的电子邮件。

我不知道该线程是否仍处于活动状态,但正在处理类似的情况并因此做出响应


允许生成html,然后对其进行分析(一个单独的过程-我正在使用shell脚本和正则表达式,作为jenkins作业的一部分),以确定是否报告了新问题,如果是,则可能返回失败。

的确,集成到CI过程是一个好主意;然而,我想要的是一个由于遵守编码规则而导致提交失败的系统。因此,基本上,如果分析没有达到某个阈值,我不需要返回任何东西;但是,如果在提交的代码中有3个关键问题,我希望提交失败,并将提交者链接到一个包含结果的页面。我知道这些脚本必须是轻量级的;如果他们不符合这个标准-好的,但我想知道是否有可能实现这种行为。