Azure DevOps(二)Azure Pipeline 整合 SonarQube 維護程式碼質量和安全性

Grant_Allen發表於2023-04-27

一,引言

  對於今天所分析的 SonarQube,首先我們得了解什麼是 SonarQube ? SonarQube 又能幫我們做什麼?我們是否在專案開發的過程中遇到人為 Review 程式碼稽核規範?帶著以上問題,開始今天的分析內容吧 !!!

1)什麼是 SonarQube ?

SonarQube 是一種自動程式碼審查工具,用於檢測程式碼中的錯誤、漏洞和程式碼問題。

2)SonarQube 能幫助我們做什麼?

它可以與我們現有的工作流程整合,以實現跨專案分支和拉取請求的持續程式碼檢查。

SonarQube 與 Azure DevOps 的整合允許我們在 Azure DevOps 儲存庫中維護程式碼質量和安全性。同時支援 Azure DevOps Server (本地)和 Azure DevOps Services (雲端)。在 Azure Pipelines 作業中執行的 SonarQube 擴充套件可以自動檢測正在構建的分支或拉取請求。

重點:SonarQube 也有版本的區分

  SonarQube Cloud:Saas 化的產品,託管在 AWS 上的,無需擔心安裝和維護

  SonarQube Server:SonarQube 服務和資料庫都是需要我們安裝到自己的伺服器或者雲端伺服器,這就需要我們自行維護

兩種產品基本上都涵蓋了支援多種語言的程式碼分析,共享相同的底層靜態分析引擎來捕獲錯誤,漏洞等。那麼讓我們正式開始今天的內容

--------------------Azure DevOps 系列--------------------

1,Azure DevOps(一)基於 Net6.0 的 WPF 程式如何進行持續整合、持續編譯

2,Azure DevOps(二)Azure Pipeline 整合 SonarQube 維護程式碼質量和安全性

二,正文

1,建立 SonarQube 專案

登入 sonarCoud.io 選擇 Azure DevOps 登入

點選 “+” 選擇 “Analyze new project” 建立新專案

選擇本次實驗的程式碼專案,點選 “Set Up“ 進行設定

2,配置與 Azure Pipeline 的整合

點選 ”With Azure DevOps Pipelines“ 開始配置

首先需要在 Visual Studio Marketplace 獲取、安裝 SonarCloud 擴充套件

選擇 "Pipelines =》“”Service connection" ,點選 “New service connection” 新增新的服務連線

在我們的新的 SonarCloud service connection 輸入以下引數,引數也來源於剛剛在 sonarcloud 上建立好的專案

點選 “Verify and save”

接下來就是 Pipeline 中新增 Sonar 的 Task了,開啟已經編輯好的 Azure Pipeline 的 YAML 檔案

1)搜尋新增 “Prepare Analysis Configuration”

輸入以下引數

SonarCloud Service Endpoint 選擇:“SonarCloud”

Organization 選擇:“SonarQube_Test”

Project Key:“AllenMaster_NetCore_WPF_Sample”

Project Name:"NetCore_WPF_Sample"

點選 ”Add“ 

Project Key 可以在 SonarCloud 的專案配置中可以找到

2)搜尋新增 “Run Code Analysis” 並新增 Task

 3)搜尋新增 “Publish Quality Gate Result” 並新增 Task

配置完成後,點選 ”Save“ 儲存 YAML 檔案,並將修改內容提交到 master 分支

最後,我們可以嘗試執行 Pipeline,並在 SonarCloud 上檢視程式碼分析報告

報告了主要有以下幾個個指標

Bugs :程式碼中的重大 bug 錯誤,可能影響到專案的正常執行。

Code Smells:無關緊要的編碼不規範問題,建議改正,點開詳情可以看到規範的使用案例。

Vulnerabilities:專案中存在的漏洞,需要進行改正。

Coverage:專案的單元測試情況。

Duplications:專案中的重複程式碼塊,建議重構。

三,結尾

  使用 sonarqube 分析專案程式碼程式碼的實驗全部過程已經完成了。大家也多多操作練習,本文所分享的內容也存在著很多我自己的一些理解,有理解不到位的,還希望多多包涵,並且指出不足之處。

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章