我已经阅读了有关stackoverflow的几篇文章,声明使用声纳作为预提交分析工具是低效的,因为它必须运行整个项目的编译,运行其分析等。
但是,sonarqube手册指出有一个 sonar.inclusions 属性,用于设置要运行分析的文件列表。因此,我正在考虑对已经更改/修改为预提交挂钩的文件运行分析,并在添加了太多问题时失败提交。
据我了解,可以通过 svnlook 获取修改和添加文件的列表;还可以将声纳分析仪指向具体的 .properties 文件(例如,指向仅具有编码规则和圈复杂度以及LCOM4指标的配置的文件)。
但是,我无法理解如何在预提交钩子脚本中获取声纳分析的结果,并提供一个指向分析结果的链接。它可能吗?是否存在任何现实世界,或至少是远程相关的此类实践示例?
提前致谢。
答案 0 :(得分:4)
但是,我无法理解如何在预提交钩子脚本中获取声纳分析的结果,并提供一个指向分析结果的链接。它有可能吗?
从预先提交,没有。如果您希望提交完成,至少不会。如果预提交将任何返回给客户端,则拒绝提交。
预提交应仅用于检查提交以验证是否已满足要求 - 检查是否已提供提交消息,如果您与错误跟踪器集成,请确保已输入有效的错误ID,也许做一些内置的基于路径的授权无法处理的安全检查。
所有钩子脚本应该尽可能简短有效。长时间运行的预先提交尤其会阻止提交者和其他任何试图在他身后投入的人。
对于您的使用,后提交挂钩可能有效(除非它无法向客户端发送反馈,因此您将无法提供URL),但更好的解决方案是使用持续集成服务器。此工具将监视存储库的更改,并在每次发生限定提交时执行您告诉它的操作。使用该系统执行检查并发送包含结果的电子邮件。
答案 1 :(得分:0)
我不知道这个帖子是否还活着,但是在处理类似的情况并因此做出响应。
Issues Report plugin可以生成一个可以解析的html(一个单独的进程 - 我使用shell脚本和正则表达式,作为jenkins作业的一部分)来识别是否已报告新问题以及是否已报告是的,可能会失败。