对一个拉取请求进行多次 SonarQube 分析
Posted
技术标签:
【中文标题】对一个拉取请求进行多次 SonarQube 分析【英文标题】:Multiple SonarQube analysis on one pull-request 【发布时间】:2017-08-24 07:38:58 【问题描述】:我们曾经有一个大型项目,对 GitHub 上的每个拉取请求都运行 SonarQube 分析。一切正常。
然后我们进行了一些重构,并将代码拆分为单独的项目。由于代码是相关的,所以 repo 还是一样的。但是,我们不是只运行一个构建+分析,而是每个拉取请求运行多个。
其他一切正常,除了 SonarQube GitHub 插件写入在第一个构建中发现的问题,然后在第二个构建中删除它们,依此类推。所以我收到一封关于第一次构建中的问题的电子邮件,但是当我去查看 GitHub 中的 PR 时,它全是绿色的,并且没有任何消息。
最好我想向 SonarQube GH 插件指定这些构建应该在 PR 中单独处理,但我还没有找到一种方法来做到这一点。
【问题讨论】:
【参考方案1】:SonarQube GitHub 插件无法实现您想要实现的目标。如果您想返回 PR 分析,您有两种方法:
要么将这些项目集中在同一个保护伞下,使它们成为***项目的模块 或者您将它们提取到不同的存储库中最佳解决方案取决于您的“新”项目如何相互耦合。如果它们具有相同的生命周期(〜相同的版本控制方案),那么最好将它们收集在一个***项目下。如果不是(即它们可以使用不同的版本独立发布),那么将它们移动到专用存储库将是最好的方法。
【讨论】:
我们刚刚将代码推送到同一个存储库以摆脱 PR 地狱,因此我们可能会尝试伞式解决方案。但是有许多不同的技术在起作用,所以它不会很快或容易(或根本不可能)。看来我要问的可能是github.com/SonarSource/sonar-github/pull/31。想法? 你知道在 Azure DevOps 和SonarQube Extension for VSTS 中是否可以对一个拉取请求进行多个 SonarQube 分析@ 我检查了参考 VSTS / Azure DevOps 的未解决问题,并在此处积极讨论 community.sonarsource.com/t/…【参考方案2】:这是可能的,但需要复杂的设置: - 每种语言的 SonarQube 项目。 - 每种语言的 Github 用户 - 在每个 SonarQube 项目中,在 General Settings -> Pull Requests 下,为每个项目设置不同的访问令牌以发回 github。
现在您将有 2 个不同的评论者,每个项目一个。
【讨论】:
以上是关于对一个拉取请求进行多次 SonarQube 分析的主要内容,如果未能解决你的问题,请参考以下文章
SonarQube:错误分支分析不能具有拉取请求分析参数“sonar.pullrequest.key”
使用 Bitbucket 进行 Sonarqube 拉取请求装饰
Azure devops 拉取请求中的 Sonarqube Quality Gate 状态链接始终指向 localhost
TFS SonarQube 扩展没有发送评论来拉取 JS 文件的请求