sonarqube - 如何在首次运行 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 的描述。
解决方案
您可以使用该api/qualitygates/select
服务:
将项目与质量门相关联。必须提供“projectId”或“projectKey”。自 6.1 起,项目 id 作为数值已被弃用。请使用类似于“AU-TpxcA-iU5OvuD2FLz”的 id。需要“管理质量门”权限。
参数:
gateId
(必需)- 质量门 id;例子:1
projectId
(可选)- 项目 id(项目 id 作为数字值,自 6.1 起已弃用);例子:AU-Tpxb--iU5OvuD2FLy
projectKey
(可选)- 项目密钥;例子:my_project
您应该按顺序执行以下步骤:
- 创建一个项目
api/projects/create
- 将其与质量门相关联
api/qualitygates/select
- 将其与质量配置文件相关联
api/qualityprofiles/add_project
- 运行分析
推荐阅读
- python - Pygame - 赋值前引用的局部变量
- hyperledger - 我在 composer-rest-server 上的 POST 正文不正确
- python - ValueError:检查目标时出错:预期dense_3的形状为(1,),但数组的形状为(6,)
- java - 单独的线程不会运行,阻塞主 UI
- c - Makefile:如何将所有 .o 文件放在一个目录中
- actionscript - ActionScript 3 使用带有对象 y 值的 sortOn
- c - C OpenMP 代码在 cygwin 上的行为出乎意料,但在 Linux 上与预期的一样
- swift - 如何在 Swift 中指定要避免的范围
- java - Maven:未解决 RestAssured 依赖项
- vba - 未调用 VBA PowerPoint 鼠标悬停技术