Sign inSign up

dominichc/codereview

By dominichc

•Updated 6 months ago

Image
0

775

dominichc/codereview repository overview

⁠dominichc/codereview

GitLab CI 專用的 自動化程式碼審查 Docker 映像。
在每次 commit 後,自動呼叫 AI 產生 Code Review 報告,並可發佈到 GitLab Wiki 與 Telegram。


⁠🔖 穩定版本:1.10.14

1.10.14 版本內建:

  • AI Review Shell:run_review.sh

    • 讀取專案中的審查模板(例如 git_commit_review.md)
    • 收集本次 commit 的基礎資訊(作者、時間、變更統計)
    • 呼叫 AI 產出 commit_review_*.md 報告(Markdown)
    • 雙認證模式:支援 OAuth Token 或 API Key
    • Token 自動切換:OAuth 模式下額度用盡時自動切換到備用 token
  • 通知 Shell:notify_review.sh

    • 將 commit_review_*.md 上傳為 GitLab Wiki 子頁
    • 依環境變數設定,選擇性發送 Telegram 通知(包含 commit 摘要與 Wiki 連結)
  • Claude 執行環境

    • 內建 Claude CLI v2.0.24
    • 附帶常用工具:bash、git、curl、jq、tzdata …
    • 適合搭配 GitLab Runner(docker executor)直接使用

⁠✨ 主要特色

  • 專為 GitLab CI 設計,容易在多個專案共用
  • 審查內容可涵蓋品質、安全、效能、架構等面向(由模板決定)
  • 審查結果以 Markdown 寫入 GitLab Wiki,方便後續追蹤與稽核
  • 支援 Telegram 通知,讓相關人員即時掌握審查狀態
  • 透過環境變數與模板即可客製各專案的審查規則與輸出格式
  • 雙認證模式:OAuth Token(個人訂閱)或 API Key(按量計費)二擇一
  • Token 自動切換:OAuth 模式下額度用盡時自動使用下一個 token

⁠🔐 認證模式設定

支援兩種認證方式,擇一設定即可:

模式環境變數說明
OAuth(優先)CLAUDE_CODE_OAUTH_TOKENClaude Pro 個人訂閱,有額度限制
API KeyANTHROPIC_API_KEYAnthropic API,按量計費

運作方式:

  • 優先檢查 CLAUDE_CODE_OAUTH_TOKEN,有則使用 OAuth 模式
  • 沒有則檢查 ANTHROPIC_API_KEY,有則使用 API 模式
  • 兩者都沒有則報錯

⁠🔧 多 Token 設定(僅 OAuth 模式)

當單一 OAuth token 額度不足時,可設定多個備用 token:

GitLab CI 變數設定:

變數名稱說明
CLAUDE_CODE_OAUTH_TOKEN主要 token(必填)
CLAUDE_CODE_OAUTH_TOKEN_1備用 token 1(選填)
CLAUDE_CODE_OAUTH_TOKEN_2備用 token 2(選填)

運作方式:

  • 正常情況使用主 token 處理所有 commit
  • 偵測到 Spending cap reached 時自動切換到 _1
  • _1 也用盡則切換到 _2,依此類推
  • 所有 token 用盡時報錯結束

注意:API Key 模式不支援輪替,額度由帳單控制。


⁠📝 更新紀錄

⁠1.10.14(目前建議使用)
  • 新增雙認證模式
    • 支援 ANTHROPIC_API_KEY(API 模式)
    • 支援 CLAUDE_CODE_OAUTH_TOKEN(OAuth 模式,優先)
    • 兩者擇一設定即可
  • OAuth 模式保留 Token 輪替功能
  • API 模式不輪替,額度由帳單控制
⁠1.10.13
  • 新增 Token 自動切換機制
    • 偵測到額度用盡時自動切換到下一個 token
    • 無需設定,向下相容單 token 用戶
  • 改善 Log 輸出:顯示目前使用的 token 名稱
⁠1.10.5
  • 修正一次 push 含多個 commit 時,未逐一產生 review 報告的問題
  • 改善 Telegram 通知:當本次含多個 commit 時,會逐筆列出每個 commit 的訊息與對應 Wiki URL
⁠1.9
  • 整合並簡化 AI Review 流程,由 run_review.sh 統一產生 commit_review_*.md
  • 新增獨立的 notify_review.sh,專責 GitLab Wiki 上傳與 Telegram 通知
  • 清理參數與錯誤處理邏輯:
    • Wiki / Telegram 相關變數未設定時只顯示提示訊息並略過,不影響 CI Job 成功與否
    • 核心依賴(Token、模板檔案、Review 結果檔)缺少時會明確讓 Job 失敗
  • 更新並固定 Claude CLI 版本為 2.0.24

Tag summary

Content type

Image

Digest

sha256:efc1cad38…

Size

147.8 MB

Last updated

6 months ago

docker pull dominichc/codereview:1.10.14