IBM Cloud Docs
配置 SonarQube

配置 SonarQube

SonarQube 提供了源代码总体运行状况和质量的概述,并重点阐述了在新代码中发现的问题。 代码分析器可检测到超过 20 种代码编写语言的棘手错误,例如空指针取消引用、逻辑错误和资源泄漏。

配置 SonarQube 以持续分析和测量源代码的质量:

  1. 从IBM Cloud控制台,单击菜单图标汉堡包图标>平台自动化>工具链。 在“工具链”页面,单击工具链打开其“概述”页面。 或者,在应用程序“概述”页面的“持续交付”卡上,单击查看工具链。 然后,单击概述

    a. 单击添加工具

    b. 在“工具集成”部分中,单击 SonarQube

  2. 输入此 SonarQube 工具集成实例的名称。

  3. 输入在您单击工具链中 SonarQube 卡时想要打开的 SonarQube 实例的 URL。

  4. 可选:输入用于连接到 SonarQube 服务器的用户名。

    仅当使用密码连接到 SonarQube 服务器时,才需要指定用户名。 如果是使用认证令牌进行连接,请将此字段保留为空。

  5. 输入用于连接到 SonarQube 服务器的密码或认证令牌。

  6. 如果无法在公共因特网上找到服务器,请选择 高级。IBM Cloud 无法验证您提供的连接详细信息,并且将禁用需要对此服务器进行 API 访问的某些功能。 交付管道仅通过使用对该服务器具有网络访问权的专用工作程序来工作。

  7. 单击创建集成

  8. 在工具链的“概述”页面上的 第三方工具 卡上,单击 SonarQube 以查看您连接到的 SonarQube 实例的仪表板。

将 Sonarqube 添加到持续集成管道

缺省 SonarQube 实例

如果您没有自己的 SonarQube 实例,那么管道将在管道运行期间创建 SonarQube 实例。 在 static-scan 阶段成功运行后,您可以访问此实例。

现有 SonarQube 实例

要将您自己的 SonarQube 实例添加到现有管道,请将工具集成 添加 到工具链,然后将 Sonarqube 工具集成参数添加到管道。

必需参数

要运行 SonarQube 扫描,管道需要以下连续集成参数:

Continuous integration pipeline parameters
名称 Type 描述 必需或可选
集群名称 文本 Docker 构建集群的名称。 必需
开发区域 文本 托管集群的 IBM Cloud 区域。 必需
选择性加入声纳 文本 用于启用 sonarQube 扫描的选项。 必需
sonarqube 工具集成 Sonarqube 工具集成。 可选

有关管道参数的更多信息,请参阅 管道参数

如果将多个 SonarQube 工具集成添加到管道,那么可以通过更改 sonarqube 管道参数 (即工具集成参数) 的值来在这些集成之间进行切换。

更新质量门

如果使用管道创建的 SonarQube 实例,那么可以更新缺省质量检测点。

  1. 转至由 URL 从 static-scan 任务中的管道日志创建的 SonarQube 仪表板。

    SonarQube dashboard
    SonarQube dashboars

  2. 单击 质量关卡 > 创建

  3. 使用下列其中一个选项来设置质量关卡:

    • 单击 设置为缺省值 以将新创建的质量检测点设置为缺省值。
    • 从仪表板中,选择项目,然后单击 项目设置 > 质量门 以将新创建的质量门用于项目。
  4. 指定要与项目关联的质量门。 此质量门将对新扫描进行评估,而质量门的结果将创建证据。

要了解有关SonarQube,的更多信息,请参阅 SonarQube Documentation

使用您自己的配置文件

您可以在不使用自己的 SonarQube 实例的情况下修改缺省配置。 在要在其中创建配置文件的存储库中创建 sonar-project.properties 文件。 如果我们的脚本在存储库中检测到现有 configuration sonar-project.properties 文件,那么它将使用该文件而不是缺省文件。 有关配置文件中可能的分析参数的更多信息,请参阅此处的 分析参数

确保将正确的登录凭证和主机 URL 添加到配置文件。

使用另一静态扫描实现

您可以修改 .pipeline-config.yaml 文件以将自己的定制脚本添加到 static-scan 阶段,从而使用自己的静态扫描实现。

使用 API 配置 SonarQube

SonarQube 工具集成支持以下配置参数,当您 创建读取更新 工具集成时,可以将这些配置参数与 工具链 HTTP API 和 SDK 配合使用。

必须在请求主体中使用 sonarqube 值指定 tool_type_id 属性。

SonarQube工具集成参数
参数 用途 Type Terraform 自变量 描述
blind_connection 可选、可更新、"Default: false 布尔值 blind_connection 设置为 true 以指示 Continuous Delivery 忽略此集成的配置验证。 此外,如果 SonarQube 服务器在公共因特网上不可寻址,请设置为 true
dashboard_url 必需,可更新 字符串 server_url 用于此工具集成的 SonarQube 服务器 dashboars 的 URL。 在图形 UI 中,当您单击 SonarQube 工具集成卡时,浏览器将转至此仪表板。
名称 必需,可更新 字符串 名称 此工具集成的名称。
用户登录 可选,可更新 字符串 用户登录 用于向 SonarQube 服务器进行认证的用户标识。
user_password 可选,可更新 密码 user_password 用于向 SonarQube 服务器认证的密码或令牌。 您可以将工具链私钥引用用于此参数。 有关私钥引用的更多信息,请参阅 保护 Continuous Delivery中的敏感数据