svn - 是否可以通过预提交 Hook 运行 SonarQube 分析

标签 svn sonarqube pre-commit-hook sonar-runner

我在 stackoverflow 上阅读了几篇文章,其中指出,使用 Sonar 作为预提交分析工具效率低下,因为它必须运行整个项目的编译、运行分析等。

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

据我了解,可以通过svnlook获取修改和添加的文件列表;还可以将 Sonar 分析器指向一个具体的 .properties 文件(例如,指向只有编码规则和圈复杂度和 LCOM4 指标的配置的文件)。

但是,我不明白如何在预提交 Hook 脚本中获取 Sonar 分析的结果,并提供分析结果的链接。有可能吗?是否有任何现实世界或至少远程相关的此类实践示例?

提前致谢。

最佳答案

However, I fail to understand how to obtain the result of Sonar analysis within the pre-commit hook script and provide, say, a link to the analysis result. Is it at all possible?



从预先提交,没有。如果您希望完成提交,至少不会。如果预提交返回 任何东西对于客户端,提交被拒绝。

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

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

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

关于svn - 是否可以通过预提交 Hook 运行 SonarQube 分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19080931/

相关文章:

hook - Gitlab 预提交钩子(Hook)

c++ - 预提交 Hook 验证 C++ 代码

java - 无法使用 sonar-runner gradle 创建符号表错误

maven - eclipse maven项目中的 Sonar 插件错误

bitbucket - 通过注释格式强制 Bitbucket Commit 与 JIRA Ticket 相关联

svn - 使用单个命令获取所有 SVN 属性名称和值

windows - SVN:列出存储库中所有项目的所有分支

svn - 跟踪更改 : svn + latex

android - Cordova 构建错误 - EPERM,不允许操作

scala - sbt 忽略测试失败