配置 SonarQube 掃描
SonarQube 提供原始碼整體性能及品質的概觀,並強調顯示在新程式碼中找到的問題。 程式碼分析器可偵測 20 種以上程式碼語言的難處理錯誤(例如空值指標解除參照、邏輯錯誤及資源洩漏)。
配置 SonarQube,以持續分析及測量原始碼的品質:
-
在 IBM Cloud 主控台中,按一下功能表圖示
,然後選取 DevOps。 在「工具鏈」頁面上,按一下工具鏈以開啟其「概觀」頁面。 或者,在應用程式之「概觀」頁面的「持續交付」卡片上,按一下檢視工具鏈。 然後,按一下概觀。
a. 按一下新增工具。
b. 在「工具整合」區段中,按一下 SonarQube。
-
鍵入此 SonarQube 工具整合實例的名稱。
-
鍵入當您從工具鏈按一下 SonarQube 卡片時所要開啟的 SonarQube 實例 URL。
-
選用項目: 輸入您用來連接至 SonarQube 伺服器的使用者名稱。
僅當您使用密碼連接至 SonarQube 伺服器時,才需要指定使用者名稱。 如果您使用鑑別記號進行連接,請讓此欄位保留為空欄位。
-
鍵入您用來連接至 SonarQube 伺服器的密碼或鑑別記號。
-
如果伺服器無法在公用網際網路上,請選取 進階。IBM Cloud 無法驗證您提供的連線詳細資料,且需要此伺服器的 API 存取權的某些功能已停用。 Delivery Pipeline 只能透過使用具有此伺服器網路存取權的專用工作者節點來運作。
-
按一下建立整合。
-
在「工具鏈概觀」頁面上的 協力廠商工具 卡片上,按一下 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 掃描,管線需要下列連續整合參數:
名稱 | 類型 | 說明 | 必要或選用 |
---|---|---|---|
叢集名稱 | 文字 | Docker 建置叢集的名稱。 | 必要 |
dev-region | 文字 | 管理叢集的 IBM Cloud 地區。 | 必要 |
選用聲納 | 文字 | 用來啟用 SonarQube 掃描的選項。 | 必要 |
sonarqube | 工具整合 | SonarQube 工具整合。 | 選用 |
sonarqube-config | 文字 | 在隔離的 Docker中-Docker 儲存器 (預設配置) 或現有開發 Kubernetes 叢集 (叢集配置) 中執行 SonarQube 掃描。 或者,您可以自帶 SonarQube 實例,並配置 SonarQube 工具整合 (自訂配置)。 選項: default 、cluster 或 custom 。 預設值為 default 。 如需相關資訊,請參閱
新增 SonarQube 至持續整合管線。 |
必要 |
opt-in-sonar-hospots | 文字 | Sonarqube 掃描以偵測熱點。 | 選用 |
如需管線參數的相關資訊,請參閱 管線參數。
如果您將多個 SonarQube 工具整合新增至管線,則可以透過變更 SonarQube 管線參數 (這是工具整合參數) 的值,在它們之間進行切換。
SonarQube 中安裝的外掛程式
依預設,DevSecOps Pipeline 會使用 SonarQube 10.0 版。
若要進一步瞭解預先安裝的外掛程式清單,請參閱 外掛程式
SonarQube 報告的問題
「DevSec作業管線」會過濾掉 SonarQube 掃描期間所報告的問題。 對於非 CODE_SMELL
或 BUG
類型的問題,管線會專門建立「相符性目的」。 管線也會跳過狀態為 CLOSED
的問題。
更新品質閘道
如果您使用管線所建立的 SonarQube 實例,則可以更新預設品質閘道。
-
從
static-scan
作業中的管線日誌,移至 URL 所建立的 SonarQube 儀表板。圖 1. SonarQube 儀表板 -
按一下 品質閘道 > 建立。
-
使用下列其中一個選項來設定「品質閘道」:
- 按一下 設為預設值,將新建的品質閘道設為預設值。
- 從儀表板中,選取專案,然後按一下 專案設定 > 品質閘道,以使用專案新建立的品質閘道。
-
指定您要與專案相關聯的品質閘道。 此品質閘道會評估新的掃描,而品質閘道的結果會建立證明。
若要進一步瞭解 SonarQube,請參閱 SonarQube 文件。
使用您自己的配置檔
您可以在不使用自己的 SonarQube 實例的情況下修改預設配置。 在您要在其中建立配置檔的儲存庫中建立 sonar-project.properties
檔案。 如果我們的 Script 偵測到儲存庫中的現有 configuration sonar-project.properties
檔案,則會使用該檔案而非預設檔案。 如需配置檔中可能分析參數的相關資訊,請參閱這裡的 分析參數。
請確定您將正確的登入認證和主機 URL 新增至配置檔。
使用另一個靜態掃描實作
您可以修改 .pipeline-config.yaml
檔,將您自己的自訂 Script 新增至 static-scan
階段,以使用您自己的靜態掃描實作。
進一步瞭解 SonarQube
若要進一步瞭解 SonarQube,請參閱 將 SonarQube 分析整合至工具鏈。