本文介紹如何設計屬於您業務情境的代碼檢測方案。
代碼檢測使用雲效 Flow 流水線資源運行,運行並發數和運行時間長度通過流水線資源進行計算,在資源額度內可正常使用檢測,如果超出流水線資源額度,可開通資源隨用隨付擷取更多運行資源,參見隨用隨付規則。
步驟一:建立檢測方案
登入雲效代碼管理 Codeup首頁,單擊左側導覽列。

配置檢測方案。
平台已內建部分方案供參考使用,您也可以結合自身的業務情境複製或建立適合自己的檢測方案。
內建方案
可以根據自身情況通過圖示方式複製或建立自己的方案。

複製方案
選擇適合您的推薦檢測方案進行複製。

建立檢測方案

步驟二:按需調整方案內容
選擇檢測方案後,可以按需調整方案中已有的規則內容和方案配置。
方案建立者或Codeup組織管理員可以編輯和刪除方案,其他人只能查看和複製方案。
調整檢測規則內容。
針對每一條規則,支援編輯其問題等級,部分規則允許自訂檢測參數,如通過Regex限制檢測範圍。同時還支援停用不適合的規則或重新啟用規則。警告停用規則有以下影響:
規則已發現的問題將在下一次檢測後自動關閉。
運行當前檢測方案時將不再執行對應規則。

檢測方案關聯檢測任務。

建立檢測任務。

針對檢測方案的修改行為,都將記錄在方案的變更歷史中,供追溯查看。

調整檢測方案設定。
在方案的【設定】頁面,可以調整方案的名稱,填寫方案的描述,設定檢測的檔案白名單,單擊儲存。
白名單路徑下的檔案將自動跳過檢測,即不執行檢測。
重要刪除方案時,需要確保當前方案未與任何檢測任務關聯,否則需要先與檢測任務解除綁定,然後刪除方案,避免對啟動並執行檢測任務造成影響。
步驟三:將檢測方案關聯至程式碼程式庫
將方案關聯到程式碼程式庫後形成可啟動並執行檢測任務,一個程式碼程式庫最多建立一個檢測任務,該任務可選擇不同分支多次運行。
。

選擇合適的檢測任務項。

除了手動觸發外,支援設定檢測任務的自動觸發方式,包括提交觸發方式和合并請求觸發,若選擇提交觸發,需要指定關注的分支,支援正則匹配。若選擇合并請求觸發,則該庫發生的合并請求,將對源分支合并到目標分支的代碼進行檢測。
步驟四:查看檢測結果
基於檢測任務查看檢測結果。
進入檢測任務,選擇概覽,查看當前分支最近一次成功的全量檢測結果和問題列表。
概覽內容:
檢測結果:通過狀態,以及對應的問題個數和門禁閾值。
問題總覽:查看未解決的問題個數和已解決的問題個數。
問題嚴重等級分布:警告、嚴重和建議問題個數分布情況。
問題類型分布:安全和規範類問題個數分布。
引入人分布:列出不同使用者引入的各類問題數量。
嚴重問題最多的規則分布:命中嚴重問題數最多的規則排名。
問題趨勢:查看各等級問題的存量趨勢。

問題列表
問題列表以嚴重等級和解決狀態排序,單擊問題行可查看問題詳情,針對不關心的問題可以進行忽略,忽略後該問題在該分支將不會再報出。

運行歷史
代碼檢測使用雲效Flow流水線運行,針對檢測運行失敗的情況,支援單擊頁面查看作業記錄前往雲效流水線產品Flow查看對應錯誤記錄檔快速定位和解決問題。



如果最近一次檢測運行失敗了,進入檢測任務詳情將保留最近一次成功的檢測結果,同時提醒最近一次檢測失敗和時間資訊,支援前往執行日誌查看問題並快速解決。
在程式碼程式庫提交和合并請求中查看檢測結果
提交檢測結果
在提交、分支視圖下,如果對應Commit有存在代碼檢測結果,在列表上可以通過卡片快捷查看,單擊可查看檢測問題詳情。

合并請求檢測結果
當選擇了合并請求觸發,在合并請求列表和合并詳情的合并條件中可以看到自動化檢測的結果。


運行完成後,單擊「查看詳情」可以在當前合并請求的檔案變更視圖中查看檢測出的問題詳情,單擊可直接跳轉至問題程式碼。

常見問題
1. 如何將檢測設定為合并請求卡點?
代碼檢測作為評審的輔助手段,可以減輕程式碼檢閱的成本,通過自動化的方式對代碼中的規範、安全性漏洞進行篩查,並快速暴露出來。
在合并請求中,除了人工評審之外,支援將代碼檢測作為合并代碼前的卡點,當檢測設定的門禁不通過時,不允許任何人合并代碼,避免品質不佳的代碼被合并到生產分支。
步驟一:設定檢測閾值門禁
首先,需要設定期望卡點的門禁閾值。
進入當前庫的檢測任務中,可以看到合并請求門禁設定項,預設不允許存在嚴重問題,不限警告和建議問題數,可以根據業務情況自行修改。

步驟二:設定保護分支卡點
接下來,點擊上圖中的「前往設定合并請求卡點」,或者開啟庫設定-分支設定-保護分支規則。
針對期望被合并保護的分支建立保護分支規則,選擇分支名,然後在規則設定中開啟「要求合并前通過自動化執行檢查」,勾選代碼檢測任務。

卡點的檢測任務被刪除的處理說明
如果檢測任務已經被設定為卡點,即使手動刪除了檢測任務,合并的檢測卡點仍然是生效的,避免沒經過檢測的代碼被合并為保護分支。
此時合并請求中舊的已刪除的檢測任務卡點是失效狀態,這種情況需要管理員在當前庫建立檢測任務,新的檢測任務將自動替換舊的檢測任務繼續作為合并請求卡點生效。
2. 代碼檢測資源消耗如何計算?
檢測將使用雲效Flow流水線資源進行運行,啟動並執行並發數和運行時間長度將通過流水線資源進行計算,在流水線資源額度內可正常使用檢測,如果超出流水線資源額度,可開通資源隨用隨付擷取更多流水線運行資源。
具體當月資源消耗情況可前往雲效流水線Flow頁面左下角「資源」中進行查看。

3.如何關閉代碼檢測?
進入程式碼程式庫,刪除對應倉庫的檢測任務即可,對應系統流水線將自動刪除。
