代码之家  ›  专栏  ›  技术社区  ›  David M. Karr

如何在声纳工程一期工程中强行设置质量门

  •  0
  • David M. Karr  · 技术社区  · 7 年前

    我使用的是SonarQube版本6.7.3(内部版本38370)。我不使用新的分支支持。

    我试图实现拉请求的自动构建,将Bitbucket和Jenkins与SonarQube集成在一起。由于im没有使用新的分支支持,im设置sonar.branch而不是sonar.branch.name。因此,我得到了一个单独的pull请求项目。这是可以的,因为我有一个自动化系统,当pull请求分支被删除(当它被合并时)时删除sonarqube项目。

    不能正确工作的是pull-request-sonarqube项目在第一次创建时有时会得到分配给它的错误质量门。事后不得不修改是不可接受的。如果分配了错误的质量门,并且没有遵守正确的阈值,则拉取请求可以标记为可合并,即使它违反了我们的质量准则。

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

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

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

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   agabrys    7 年前

    你可以使用 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/质量门/选择
    3. 将其与质量配置文件关联 api/qualityprofiles/add_project
    4. 进行分析