IBM Cloud Docs
配置 SonarQube 掃描

配置 SonarQube 掃描

SonarQube 提供原始碼整體性能及品質的概觀,並強調顯示在新程式碼中找到的問題。 程式碼分析器可偵測 20 種以上程式碼語言的難處理錯誤(例如空值指標解除參照、邏輯錯誤及資源洩漏)。

配置 SonarQube,以持續分析及測量原始碼的品質:

  1. 在 IBM Cloud 主控台中,按一下功能表圖示 漢堡圖示,然後選取 DevOps。 在「工具鏈」頁面上,按一下工具鏈以開啟其「概觀」頁面。 或者,在應用程式之「概觀」頁面的「持續交付」卡片上,按一下檢視工具鏈。 然後,按一下概觀

    a. 按一下新增工具

    b. 在「工具整合」區段中,按一下 SonarQube

  2. 鍵入此 SonarQube 工具整合實例的名稱。

  3. 鍵入當您從工具鏈按一下 SonarQube 卡片時所要開啟的 SonarQube 實例 URL。

  4. 選用項目: 輸入您用來連接至 SonarQube 伺服器的使用者名稱。

    僅當您使用密碼連接至 SonarQube 伺服器時,才需要指定使用者名稱。 如果您使用鑑別記號進行連接,請讓此欄位保留為空欄位。

  5. 鍵入您用來連接至 SonarQube 伺服器的密碼或鑑別記號。

  6. 如果伺服器無法在公用網際網路上,請選取 進階。IBM Cloud 無法驗證您提供的連線詳細資料,且需要此伺服器的 API 存取權的某些功能已停用。 Delivery Pipeline 只能透過使用具有此伺服器網路存取權的專用工作者節點來運作。

  7. 按一下建立整合

  8. 在「工具鏈概觀」頁面上的 協力廠商工具 卡片上,按一下 SonarQube,以檢視您所連接 SonarQube 實例的儀表板。

將 SonarQube 新增至持續整合管線

預設 SonarQube 實例

  • 如果 sonarqube-config 設為 default,則依預設會使用 SonarQube 進行掃描。 此掃描以 Docker-in-Docker身分執行。

使用的實例只能在執行期間使用。 因此,您無法存取儀表板。

  • 依預設,該管線使用 SonarQube 社群版本,該版本僅具有有限的 checks.Many 漏洞規則,且主機點問題未涵蓋在 Community Edition下。

  • 若要驗證社群版本中是否已檢查漏洞,請參閱 Sonarqube 社群問題中的執行緒

  • 向 CISO 登錄的 SonarQube 社群版本預設實作不是 ITSS 核准的 edition.SonarQube Enterprise Edition 是 ITSS 核准的唯一版本。

若要下載 SonarQube,請參閱 SonarQube 下載

dev 叢集上的 SonarQube 實例

如果 sonarqube-config 設為 cluster,則在開發叢集裡執行管線期間,管線會建立 SonarQube 實例。 您可以在靜態掃描階段順利 runs.You 可以透過埠轉遞在本端存取 SonarQube 儀表板。

現有 SonarQube 實例

sonarqube-config 設為 custom,以將您自己的 SonarQube 實例新增至現有管線,將工具整合新增至工具鏈,然後將 SonarQube 工具整合參數新增至管線。 如需相關資訊,請參閱 配置 SonarQube

參數

若要執行 SonarQube 掃描,管線需要下列連續整合參數:

Table 1. Continuous integration pipeline parameters
名稱 類型 說明 必要或選用
叢集名稱 文字 Docker 建置叢集的名稱。 必要
dev-region 文字 管理叢集的 IBM Cloud 地區。 必要
選用聲納 文字 用來啟用 SonarQube 掃描的選項。 必要
sonarqube 工具整合 SonarQube 工具整合。 選用
sonarqube-config 文字 在隔離的 Docker中-Docker 儲存器 (預設配置) 或現有開發 Kubernetes 叢集 (叢集配置) 中執行 SonarQube 掃描。 或者,您可以自帶 SonarQube 實例,並配置 SonarQube 工具整合 (自訂配置)。 選項: defaultclustercustom。 預設值為 default。 如需相關資訊,請參閱 新增 SonarQube 至持續整合管線 必要
opt-in-sonar-hospots 文字 Sonarqube 掃描以偵測熱點。 選用

如需管線參數的相關資訊,請參閱 管線參數

如果您將多個 SonarQube 工具整合新增至管線,則可以透過變更 SonarQube 管線參數 (這是工具整合參數) 的值,在它們之間進行切換。

SonarQube 中安裝的外掛程式

依預設,DevSecOps Pipeline 會使用 SonarQube 10.0 版。

若要進一步瞭解預先安裝的外掛程式清單,請參閱 外掛程式

SonarQube 報告的問題

「DevSec作業管線」會過濾掉 SonarQube 掃描期間所報告的問題。 對於非 CODE_SMELLBUG 類型的問題,管線會專門建立「相符性目的」。 管線也會跳過狀態為 CLOSED 的問題。

更新品質閘道

如果您使用管線所建立的 SonarQube 實例,則可以更新預設品質閘道。

  1. static-scan 作業中的管線日誌,移至 URL 所建立的 SonarQube 儀表板。

    SonarQube 儀表板
    圖 1. SonarQube 儀表板

  2. 按一下 品質閘道 > 建立

  3. 使用下列其中一個選項來設定「品質閘道」:

    • 按一下 設為預設值,將新建的品質閘道設為預設值。
    • 從儀表板中,選取專案,然後按一下 專案設定 > 品質閘道,以使用專案新建立的品質閘道。
  4. 指定您要與專案相關聯的品質閘道。 此品質閘道會評估新的掃描,而品質閘道的結果會建立證明。

若要進一步瞭解 SonarQube,請參閱 SonarQube 文件

使用您自己的配置檔

您可以在不使用自己的 SonarQube 實例的情況下修改預設配置。 在您要在其中建立配置檔的儲存庫中建立 sonar-project.properties 檔案。 如果我們的 Script 偵測到儲存庫中的現有 configuration sonar-project.properties 檔案,則會使用該檔案而非預設檔案。 如需配置檔中可能分析參數的相關資訊,請參閱這裡的 分析參數

請確定您將正確的登入認證和主機 URL 新增至配置檔。

使用另一個靜態掃描實作

您可以修改 .pipeline-config.yaml 檔,將您自己的自訂 Script 新增至 static-scan 階段,以使用您自己的靜態掃描實作。

進一步瞭解 SonarQube

若要進一步瞭解 SonarQube,請參閱 將 SonarQube 分析整合至工具鏈