gpt4 book ai didi

jenkins - 如何为新的 Sonar 项目设置非默认质量门

转载 作者:行者123 更新时间:2023-12-02 17:31:46 35 4
gpt4 key购买 nike

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

但最近我们从所有项目的默认质量关切换为针对正在积极开发的项目和刚刚维护的项目的不同质量关。

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

最佳答案

您可以使用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步将项目绑定(bind)到门上

    ["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列表,所以需要根据项目名来解析。

Br,

蒂姆

关于jenkins - 如何为新的 Sonar 项目设置非默认质量门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38678582/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com