OpenCodeReview 本地程式碼審查教學:模型配置、Git Diff、全文件掃描與 CI 接入

Ali OpenCodeReview 使用指南,涵蓋本地安裝、模型端點、Git Diff 審查、ocr scan 全檔案掃描、誤報處理和 CI 安全邊界。

OpenCodeReview 的本篇教學圍繞著標題中的具體任務。程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和手動判斷驗證建議。

下面使用測試環境和可撤銷資料演示。涉及帳號、金鑰、機器控制、投資或緊急通訊時,必須再做人工確認。

OpenCodeReview 與普通 LLM 貼程式碼的差異

這一節只處理「OpenCodeReview 與普通 LLM 貼程式碼的差異」。先保存目前狀態,再執行最小測試,不要同時改變多個條件。

1
git diff --stat

對 OpenCodeReview 來說,判斷結果時必須結合這一邊界:程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和人工判斷驗證建議。

如果結果無法重複,記錄版本、輸入和日誌,然後縮小測試範圍。

安裝前固定 Python 與 Git 版本

建議按以下順序執行:

  1. 核對實際版本與來源。
  2. 使用測試帳號、測試目錄或測試設備。
  3. 執行一個可撤銷動作。
  4. 儲存輸出、退出碼或截圖。
  5. 恢復修改並重新驗證。
1
2
python --version
git --version

完成標準是「安裝前固定 Python 與 Git 版本」得到可核驗結果,而不是指令剛好沒有報錯。

模型配置先從低成本樣本開始

檢查項 通過標準 停止訊號
模型配置先從低成本樣本開始 輸入、輸出和權限範圍明確 工具自動擴大操作範圍
來源 能回到官方倉庫或原始資料 依賴未知鏡像或二手結論
安全 日誌中沒有秘密值 出現 Token、Cookie 或隱私資料
復原 能回到執行前狀態 沒有備份或撤銷方法
1
Get-ChildItem Env: | Select-String -Pattern 'OPENAI|ANTHROPIC'

出現停止訊號時先恢復,不要繼續下一步。

只審查當前 Git Diff

這一節只處理「只審查當前 Git Diff」。先保存目前狀態,再執行最小測試,不要同時改變多個條件。

1
git diff -- .

對 OpenCodeReview 來說,判斷結果時必須結合這一邊界:程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和人工判斷驗證建議。

如果結果無法重複,記錄版本、輸入和日誌,然後縮小測試範圍。

排除鎖定檔案、建置產物和金鑰目錄

建議按以下順序執行:

  1. 核對實際版本與來源。
  2. 使用測試帳號、測試目錄或測試設備。
  3. 執行一個可撤銷動作。
  4. 儲存輸出、退出碼或截圖。
  5. 恢復修改並重新驗證。
1
git status --short

完成標準是「排除鎖定檔案、建置產物和金鑰目錄」得到可核驗結果,而不是指令剛好沒有報錯。

第一次審查選擇十幾行改動

檢查項 通過標準 停止訊號
第一次審查選擇十幾行變更 輸入、輸出和權限範圍明確 工具自動擴大操作範圍
來源 能回到官方倉庫或原始資料 依賴未知鏡像或二手結論
安全 日誌中沒有秘密值 出現 Token、Cookie 或隱私資料
復原 能回到執行前狀態 沒有備份或撤銷方法
1
git diff --numstat

出現停止訊號時先恢復,不要繼續下一步。

如何判斷建議屬於真問題

這一節只處理「如何判斷建議屬於真問題」。先保存目前狀態,再執行最小測試,不要同時改變多個條件。

1
git diff --check

對 OpenCodeReview 來說,判斷結果時必須結合這一邊界:程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和人工判斷驗證建議。

如果結果無法重複,記錄版本、輸入和日誌,然後縮小測試範圍。

全文件掃描與 diff 掃描何時切換

建議按以下順序執行:

  1. 核對實際版本與來源。
  2. 使用測試帳號、測試目錄或測試設備。
  3. 執行一個可撤銷動作。
  4. 儲存輸出、退出碼或截圖。
  5. 恢復修改並重新驗證。
1
git ls-files | Measure-Object

完成標準是「全檔案掃描與 diff 掃描何時切換」得到可核驗結果,而不是指令剛好沒有報錯。

OCR scan 指令名稱如何核對

檢查項 通過標準 停止訊號
OCR scan 指令名稱如何核對 輸入、輸出和權限範圍明確 工具自動擴大操作範圍
來源 能回到官方倉庫或原始資料 依賴未知鏡像或二手結論
安全 日誌中沒有秘密值 出現 Token、Cookie 或隱私資料
復原 能回到執行前狀態 沒有備份或撤銷方法
1
ocr --help

出現停止訊號時先恢復,不要繼續下一步。

把嚴重程度對應到團隊規則

這一節只處理「把嚴重程度映射到團隊規則」。先保存目前狀態,再執行最小測試,不要同時改變多個條件。

1
# blocker / warning / suggestion

對 OpenCodeReview 來說,判斷結果時必須結合這一邊界:程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和人工判斷驗證建議。

如果結果無法重複,記錄版本、輸入和日誌,然後縮小測試範圍。

CI 中只發布摘要而不自動修改

建議按以下順序執行:

  1. 核對實際版本與來源。
  2. 使用測試帳號、測試目錄或測試設備。
  3. 執行一個可撤銷動作。
  4. 儲存輸出、退出碼或截圖。
  5. 恢復修改並重新驗證。
1
git diff --exit-code

完成標準是「CI 中只發布摘要而不自動修改」得到可核驗結果,而不是命令剛好沒有報錯。

Fork PR 為什麼不能拿到生產金鑰

檢查項 通過標準 停止訊號
Fork PR 為什麼無法拿到生產金鑰 輸入、輸出和權限範圍明確 工具自動擴大操作範圍
來源 能回到官方倉庫或原始資料 依賴未知鏡像或二手結論
安全 日誌中沒有秘密值 出現 Token、Cookie 或隱私資料
復原 能回到執行前狀態 沒有備份或撤銷方法
1
git remote -v

出現停止訊號時先恢復,不要繼續下一步。

評論數量突然增加如何降噪

這一節只處理「評論數量突然增加如何降噪」。先保存目前狀態,再執行最小測試,不要同時改變多個條件。

1
git diff --stat origin/main...HEAD

對 OpenCodeReview 來說,判斷結果時必須結合這一邊界:程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和人工判斷驗證建議。

如果結果無法重複,記錄版本、輸入和日誌,然後縮小測試範圍。

模型費用用哪些指標估算

建議按以下順序執行:

  1. 核對實際版本與來源。
  2. 使用測試帳號、測試目錄或測試設備。
  3. 執行一個可撤銷動作。
  4. 儲存輸出、退出碼或截圖。
  5. 恢復修改並重新驗證。
1
git diff --numstat origin/main...HEAD

完成標準是「模型費用用哪些指標估算」得到可核驗結果,而不是指令剛好沒有報錯。

審查器不可用時退回哪些檢查

檢查項 通過標準 停止訊號
審查器不可用時退回哪些檢查 輸入、輸出和權限範圍明確 工具自動擴大操作範圍
來源 能回到官方倉庫或原始資料 依賴未知鏡像或二手結論
安全 日誌中沒有秘密值 出現 Token、Cookie 或隱私資料
復原 能回到執行前狀態 沒有備份或撤銷方法
1
2
git diff --check
git status --short

出現停止訊號時先恢復,不要繼續下一步。

合併前保留可複查的證據

這一節只處理「合併前保留可複查的證據」。先保存目前狀態,再執行最小測試,不要同時改變多個條件。

1
git log -1 --oneline

對 OpenCodeReview 來說,判斷結果時必須結合這一邊界:程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和人工判斷驗證建議。

如果結果無法重複,記錄版本、輸入和日誌,然後縮小測試範圍。

二進位檔案和產生檔案如何排除

建議按以下順序執行:

  1. 核對實際版本與來源。
  2. 使用測試帳號、測試目錄或測試設備。
  3. 執行一個可撤銷動作。
  4. 儲存輸出、退出碼或截圖。
  5. 恢復修改並重新驗證。
1
git diff --name-only --diff-filter=ACMRT

完成標準是「二進位檔案和產生檔案如何排除」得到可核驗結果,而不是指令剛好沒有報錯。

讓審查建議指向準確行號

檢查項 通過標準 停止訊號
讓審查建議指向準確行號 輸入、輸出和權限範圍明確 工具自動擴大操作範圍
來源 能回到官方倉庫或原始資料 依賴未知鏡像或二手結論
安全 日誌中沒有秘密值 出現 Token、Cookie 或隱私資料
復原 能回到執行前狀態 沒有備份或撤銷方法
1
git diff --unified=3

出現停止訊號時先恢復,不要繼續下一步。

人工拒絕建議也要留下原因

這一節只處理「人工拒絕建議也要留下原因」。先保存目前狀態,再執行最小測試,不要同時改變多個條件。

1
git status --short

對 OpenCodeReview 來說,判斷結果時必須結合這一邊界:程式碼審查輸出只能作為審查線索;必須限定 diff、排除秘密文件,並用測試和人工判斷驗證建議。

如果結果無法重複,記錄版本、輸入和日誌,然後縮小測試範圍。

OpenCodeReview 的最終核對

  • 使用的版本和來源已經記錄。
  • 測試輸入與正式資料已經隔離。
  • 命令、配置和實際輸出能夠對應。
  • 失敗路徑至少主動測試過一次。
  • 金鑰、帳號和私人資料沒有進入 Git 或日誌。
  • 升級、停止和恢復都有明確動作。

如果仍無法解釋結果如何產生,就繼續把 OpenCodeReview 保持在測試環境,不要擴大權限或取代現有穩定流程。