git 分支合并/删除时自动删除 Sonarqube 分支项目

Automatically remove Sonarqube branch projects when git branch merged / removed

我们目前有一个使用 Multibranch Workflow plugin 的詹金斯管道。每个 git 分支执行一个 sonarqube 分析,使用 sonar.branch 属性 创建一个 sonarqube 项目。这非常有用,因为每个分支在合并之前都在分析,当分支与 master 合并并在 GIT 上消失时出现问题,项目在 sonarqube 上继续,需要手动删除。 有没有办法自动完成?或任何其他推荐?

删除SonarQube 分支项目的最佳方法是首先不要将它们推送到服务器。以下是您的选择:

在 SonarSource,我们每天都使用 SonarLint 和 GitHub 插件。最后一种解决方案是使用 api/projects/delete 网络服务手动删除项目。

如果您恰好在使用 Bitbucket Server 和 Sonar for Bitbucket Server add-on,可以通过自动方式执行此清理。要从 Bitbucket Server 启用此设置,请按照下面屏幕截图中显示的 3 个步骤进行操作。

Screenshot of 3 steps

您可以定义如下方法来完成工作,然后根据需要或在某些事件(例如 git 分支 merged/removed 等)需要时调用该方法

def deleteSonarProject() {
    def sonarToken = "-your admin credential token generate it from sonarServer-"
    def url = "http://yourBaseURL:portNumber/api/projects/delete"
    sh "curl -u ${sonarToken}: ${url} -d 'project=projectKey'"
}