如何在声纳项目的第一次运行中强行设置质量门

时间:2018-07-11 22:52:16

标签: sonarqube

我正在使用SonarQube版本6.7.3(内部版本38370)。我不使用新的分支机构支持。

我正在尝试实现自动构建拉取请求,将BitBucket和Jenkins与SonarQube集成在一起。由于我没有使用新的分支支持,因此我将设置为“ sonar.branch”而不是“ sonar.branch.name”。结果,我为拉取请求获得了一个单独的项目。没关系,因为在删除请求分支(合并时)时,我可以自动删除SonarQube项目。

无法正常工作的是,拉取请求SonarQube项目有时在首次创建时分配了错误的质量门。事后必须对其进行修改,这是不可接受的。如果分配了错误的质量门,但未遵守正确的阈值,则拉取请求可能会被标记为可合并,即使它违反了我们的质量准则。

我知道所需质量门的名称。我可以在构建中设置一个Sonar属性(使用Maven插件),以确保生成的项目具有正确的质量门吗?

如果无法在初始扫描中包含此信息,则可以在运行扫描之前调用SonarQube REST api,以确保创建了项目并为其设置了质量门,然后运行扫描吗?

我找不到最新版本的REST api的文档。

我注意到https://docs.sonarqube.org/pages/viewpage.action?pageId=2752810#WebService/api/qualitygates-AssociateaProjecttoaQualityGate,但这似乎已经过时了。该页面具有指向新文档的链接,但是我在那里看不到任何有关REST api的描述。

1 个答案:

答案 0 :(得分:1)

您可以使用api/qualitygates/select服务:

  

将项目与质量门相关联。   必须提供“ projectId”或“ projectKey”。   从6.1开始不推荐使用项目ID作为数字值。请使用类似于“ AU-TpxcA-iU5OvuD2FLz”的ID。   需要“管理质量门”权限。

参数:

  • gateId(必填)-质量门ID;示例:1
  • projectId(可选)-项目ID(从6.1开始不推荐使用项目ID作为数字值);示例:AU-Tpxb--iU5OvuD2FLy
  • projectKey(可选)-项目密钥;示例:my_project

您应按顺序执行以下步骤:

  1. 创建一个项目api/projects/create
  2. 将其与质量门api/qualitygates/select关联
  3. 将其与质量概况api/qualityprofiles/add_project关联
  4. 进行分析