【问题标题】:How to set non-default quality gate for new sonar projects如何为新声纳项目设置非默认质量门
【发布时间】:2016-12-05 08:06:16
【问题描述】:

我们使用 jenkins、sonarqube 5.5、maven 和 git。当开发人员创建一个新的 git 分支并推送它时,jenkins 也会分析该分支,因此开发人员可以在合并之前修复所有内容。为了避免这种开发分支分析与主分支分析混淆,jenkins 将分支名称传递到分析中。原因 sonarqube 为每个分支创建一个新项目。到目前为止一切正常。

但最近,我们从针对所有项目的默认质量门切换到针对正在开发中的项目和刚刚维护中的项目的不同质量门。

那么在为新分支创建新项目时,我们如何告诉声纳使用哪个质量门?直到某些版本之前,还有一个可以设置的 sonar.qualitygate 属性。但现在这已被弃用。那么,为新创建的项目定义适当的质量门的新方法是什么?

【问题讨论】:

    标签: jenkins sonarqube


    【解决方案1】:

    你可以使用Sonar提供的rest api。

    步骤 1. 创建门

            def result = ["curl", "--user", auth, "-X", "POST", "-H", "Content-Type: application/json", "-d", "{'name':'" + qualityGateName + "'}", "https://yoursonarserver/api/qualitygates/create"].execute().text
    

    第2步将项目绑定到门中

        ["curl", "--user", auth, "-X", "POST", "-H", "Content-Type: application/json", "-d", "{'gateId':'"+qualityGateId+"','projectId':'"+projectId+"'}", "https://yoursonarserver/qualitygates/select"].execute().text
    

    关于如何获取projectId和qualityGateId,可以使用以下两个api

    获取项目 ID

            String result = ["curl", "--user", auth , "-X", "GET", "-H", "Accept: application/json", "https://yoursonarserver/api/projects/index", "-d", "search=" + projectName ].execute().text
    

    获取质量门 id

            def result = ["curl", "--user", auth, "-X", "GET", "-H", "Accept: application/json", "https://yoursonarserver/api/qualitygates/list"].execute().text
    

    以上两个api会得到一个id列表,所以需要根据项目名来解析。

    兄弟,

    提姆

    【讨论】:

    • 嗨蒂姆。很棒的信息。但不幸的是它并没有解决我的问题。质量门已经存在。但是该项目是通过从 maven 调用声纳分析一步来自动创建和分析的。所以我没有机会将项目绑定到质量门在分析之前。还是我错过了什么?
    • 忘了说我们是怎么解决这个问题的,如果你使用默认的分支机制是非常棘手的。我们所做的是在使用简单的 shell 脚本开始分析之前将我们的项目 pom 工件 id(默认声纳项目名称)更新为 abc-branch 之类的东西,因此您有机会首先使用其余 api 创建声纳项目,然后进行分析,绑定门......
    • 啊,我明白了。所以解决方案的关键是手动创建项目,对吧?是否还有一个 API 调用来创建一个新项目,而尚未对其进行分析?否则,当您写“首先使用其余 api 创建声纳项目,然后进行分析,绑定门”时,绑定到门将在分析后发生,因此会影响分析。
    • 是的,你是对的,我们现在所做的是将不同的分支视为单独的工作,例如 hello-dev, hello-master 在声纳的角度。您可以尝试使用此 api 创建项目 curl -u admin:admin -X POST 'localhost:9000/api/projects/create?key=myKey&name=myProject' 了解详细信息,请参考docs.sonarqube.org/pages/viewpage.action?pageId=2392165
    猜你喜欢
    • 2016-07-21
    • 2016-12-23
    • 2020-07-28
    • 2018-10-04
    • 1970-01-01
    • 2018-08-06
    • 2018-02-05
    • 1970-01-01
    • 2012-02-18
    相关资源
    最近更新 更多