對于今天所分析的 SonarQube,首先我們得了解什么是 SonarQube ? SonarQube 又能幫我們做什么?我們是否在項目開發(fā)的過程中遇到人為 Review 代碼審核規(guī)范?帶著以上問題,開始今天的分析內容吧 !!!
1)什么是 SonarQube ?
(資料圖)
SonarQube 是一種自動代碼審查工具,用于檢測代碼中的錯誤、漏洞和代碼問題。
2)SonarQube 能幫助我們做什么?
它可以與我們現(xiàn)有的工作流程集成,以實現(xiàn)跨項目分支和拉取請求的持續(xù)代碼檢查。
SonarQube 與 Azure DevOps 的集成允許我們在 Azure DevOps 存儲庫中維護代碼質量和安全性。同時支持Azure DevOps Server (本地)和 Azure DevOps Services (云端)。在 Azure Pipelines 作業(yè)中運行的 SonarQube 擴展可以自動檢測正在構建的分支或拉取請求。
重點:SonarQube 也有版本的區(qū)分
SonarQube Cloud:Saas 化的產(chǎn)品,托管在 AWS 上的,無需擔心安裝和維護
SonarQube Server:SonarQube 服務和數(shù)據(jù)庫都是需要我們安裝到自己的服務器或者云端服務器,這就需要我們自行維護
兩種產(chǎn)品基本上都涵蓋了支持多種語言的代碼分析,共享相同的底層靜態(tài)分析引擎來捕獲錯誤,漏洞等。那么讓我們正式開始今天的內容
--------------------Azure DevOps 系列--------------------
1,Azure DevOps(一)基于 Net6.0 的 WPF 程序如何進行持續(xù)集成、持續(xù)編譯2,Azure DevOps(二)Azure Pipeline 集成 SonarQube 維護代碼質量和安全性二,正文1,創(chuàng)建 SonarQube 項目登錄 sonarCoud.io選擇 Azure DevOps 登錄
點擊 “+” 選擇 “Analyze new project” 創(chuàng)建新項目
選擇本次實驗的代碼項目,點擊 “Set Up“ 進行設置
2,配置與 Azure Pipeline 的集成點擊 ”With Azure DevOps Pipelines“ 開始配置
首先需要在 Visual Studio Marketplace 獲取、安裝 SonarCloud 擴展
選擇 "Pipelines =》“”Service connection" ,點擊 “New service connection” 添加新的服務連接
在我們的新的 SonarCloud service connection 輸入以下參數(shù),參數(shù)也來源于剛剛在 sonarcloud 上創(chuàng)建好的項目
點擊 “Verify and save”
接下來就是 Pipeline 中添加 Sonar 的 Task了,打開已經(jīng)編輯好的 Azure Pipeline 的 YAML 文件
1)搜索添加 “Prepare Analysis Configuration”
輸入以下參數(shù)
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:無關緊要的編碼不規(guī)范問題,建議改正,點開詳情可以看到規(guī)范的使用案例。
Vulnerabilities:項目中存在的漏洞,需要進行改正。
Coverage:項目的單元測試情況。
Duplications:項目中的重復代碼塊,建議重構。
三,結尾使用 sonarqube 分析項目代碼代碼的實驗全部過程已經(jīng)完成了。大家也多多操作練習,本文所分享的內容也存在著很多我自己的一些理解,有理解不到位的,還希望多多包涵,并且指出不足之處。
github:https://github.com/yunqian44/Standard.Tool.Platform作者:Allen
版權:轉載請在文章明顯位置注明作者及出處。如發(fā)現(xiàn)錯誤,歡迎批評指正。