在 CI Pipeline 中使用 gpt-4o 進行自動化程式碼安全性掃描
我曾經在 這邊 介紹過,我們可以透過 Azure DevOps 外掛的套件,在 CI Pipeline 中利用 AI (如今是 gpt-4o) 進行自動化 code review。 舉例來說,當我們在 commit 中,把程式碼改成底下這樣: public float Calculate ( ) { int para = 0 ; float result = 0 ; float height = ( int ) Height / 100 ; result = Weight / ( height * height ) ; result = result / 0 ; //todo: 分析BMI計算結果 return result ; } 這時,PR 所觸發的 Pipeline,會在運行過程中,透過 gpt-4o 幫我們掃瞄出底下的 code review 報告: 在 float height = (int)Height / 100; 這行中,將 Height 強制轉換為 int 可能會導致精度損失,建議保持 float 類型以確保計算的準確性。 在 result = result/0; 這行中,除以零會導致運行時錯誤或異常,這是一個嚴重的錯誤,需要修正。 變數 int para=0; 被宣告但未使用,這是多餘的代碼,應該移除以提高代碼的可讀性和效率。 如下圖: 這可以幫上 reviewer 不少忙。 使用 AI 作安全性檢查 最近,心血來潮,想說既然 AI 可以 code review,不如在 prompt 中加上一些檢查安全性的提示,來看看結果如何。 底下我刻意修改了的一些可能有安全性顧慮的程式碼: public void Save ( string userInputFileName ) { string password = "P@ssw0rd123" ; Random random = new Random ( ) ; ...