Zadig + SonarQube,為開發過程安全保駕

語言: CN / TW / HK

 

高質量的程式碼、快速拉起的環境基礎設施、充分的業務質量保證。。。每一點都能為產品成功交付加分。在開發源頭對程式碼質量投入,不管是識別程式碼風險防微杜漸,還是建立團隊研發規範,都是一件收益遠大於成本的事情。

社群小夥伴對此的呼聲也越來越高,在六一兒童節釋出的 v1.12.0 版本中,Zadig 支援整合掃描工具啦,為程式碼質量提供掃描服務,為開發過程安全保駕。

本文以最為常用的 SonarQube 掃描工具和開源 Zadig 程式碼倉為例為大家進行介紹。 

專案背景

  • 原始碼:koderover/zadig [1]

  • 目標:對日常高頻變更的 pkg [2] 目錄下程式碼進行掃描,及時嗅探程式碼裡的「壞味道」

如何使用

只需要 3 步,便可在 Zadig 中獲得程式碼掃描的能力,具體操作如下。

系統管理員:整合 SonarQube

  • 登入 SonarQube -> 點選右上角賬號頭像 -> My Account

  • 切換到 Security 頁面,在 Generate Token 中填寫 Token 名稱後點擊右側的Generate Token 按鈕即可。

 
  • 在 Zadig 中依次訪問 系統設定 -> 整合管理 -> Sonar 整合,填寫 SonarQube 伺服器地址以及 Token 資訊後儲存。

 
 

工程師:配置程式碼掃描

進入專案,新建程式碼掃描。

配置細節如下:

  • 名稱zadig-scan
  • 掃描工具:SonarQube
  • 掃描環境:sonar:latest
  • sonar 地址:上一步中整合的 SonarQube 伺服器地址
  • 程式碼資訊:Zadig 程式碼庫
  • 引數配置:參考 SonarQube 文件 [3],本例中配置內容如下
# Sonar 引數sonar.projectKey=zadig-pkgsonar.projectName=zadig-pkgsonar.sources=./pkgsonar.go.file.suffixes=.go

其他程式碼掃描工具可參考 自定義構建映象 [4],先將掃描工具整合進去,掃描工具選擇其他,掃描環境中指定自定義的映象,輸入自定義掃描指令碼即可實現。

工程師:執行並分析結果

點選 執行 按鈕觸發程式碼掃描執行。

 

待程式碼掃描任務執行完畢,點選 檢視 連結。

 

系統會自動跳轉到 SonarQube 系統中。工程師可檢視掃描結果並據此對程式碼中的問題進行修復,做到有的放矢,從源頭提高程式碼質量,降低交付風險。

Webhook 一觸即發

除了在 Zadig 上手動執行掃描任務檢查程式碼質量,還可以基於相關程式碼變更事件配置觸發器,利用 Webhook 的能力自動執行程式碼掃描。

  • 配置程式碼掃描,新增觸發器。

  • 當滿足觸發條件的事件發生時(比如 pull request),程式碼掃描會被自動執行,減少人工介入成本。

掃描結果及時反饋

程式碼庫變更自動觸發程式碼掃描後,掃描結果將會反饋到程式碼倉庫中,目前支援 GitLab 程式碼源,其他程式碼源也進一步支援中。及時的程式碼質量反饋可以為團隊做程式碼審查、程式碼合併等提供資料參考,讓質量溶於每一行程式碼。

此外,程式碼掃描結果自動通知到 IM 的功能也在計劃中,無需切換系統即可便捷地獲得程式碼質量反饋結果,打通工程師日常開發工作的最後一公里。

Zadig,讓工程師更專注創造!歡迎加入   開源吐槽群🔥