release: 將 AI 程式碼審查 action 發布到 master #2

Merged
admin merged 32 commits from develop into master 2026-07-03 10:07:51 +00:00
Member

變更摘要

develop 上完整的 AI 程式碼審查 Gitea Node action 發布到 master(領先 32 個 commit)。此為首個正式版本:一個以多角色 LLM 審查 PR diff、產生 findings、發布 Gitea Review、並具記憶/收斂能力的 action。

主要內容

  • 核心管線(src/main.js,Step1–Step11):前置驗證 → 自動提交檢查 → PR 對話收斂 → 6 角色分析產生 findings → 合併去重 → 排除規則+防守方誤報裁決 → 發布 Review → JSON 驗證 → 記憶區 commit/push → 嚴重問題把關。
  • 參數自動接線(config.jsINPUT_* 優先,PR 參數自 runner 事件 payload 帶入;使用端只需 with: token
  • LLM 抽象(llm.js:自動偵測 codex / claude / antigravity / opencode CLI;mapWithConcurrency 讓角色分析、補行號、誤報裁決以並行 sub-agent 執行(預設不限併發,AI_ASSISTANT_CONCURRENCY 可限流)。
  • diff 過濾(.reviewignore + gitea.js:外部化排除清單,並強制排除任意深度 node_modules/,避免超過 LLM 輸入上限。
  • 前置模型檢查(preflight.js:Step2 向 codex 模型清單端點確認 auth 有效且 model 可用,提早分辨「認證失效」與「模型無權限」。
  • 測試:13 個模組 + main 管線整合測試,共約 300+ 筆,全數通過。

影響範圍

  • 依賴採 vendored node_modules(隨 repo 進版控,runner 不需 npm install)。
  • CI:test(AI 審查)只在目標為 develop 時執行;目標為 master 時跳過(本 release PR 即不會觸發自我審查)。

風險 / 注意事項

  • config.js 全域關閉 TLS 憑證驗證(NODE_TLS_REJECT_UNAUTHORIZED=0)以相容內部自簽憑證,僅限受信任內網。
  • exclusions.json 中登記了數個「已知的安全設計待辦」(信任邊界:.reviewignoreexclusions 信任 PR head、可偽造的 bot-skip marker、resolve 全留言)——這些是經決策暫時接受、尚未修復的真實問題,合併到 master 後仍為後續強化項目。

驗證

  • 全套件 309 pass / 0 fail
  • 已於本機煙霧測試確認 node src/main.js 會實際啟動 pipeline(修復先前 node action runtime 空跑的回歸)。
## 變更摘要 將 `develop` 上完整的 **AI 程式碼審查 Gitea Node action** 發布到 `master`(領先 32 個 commit)。此為首個正式版本:一個以多角色 LLM 審查 PR diff、產生 findings、發布 Gitea Review、並具記憶/收斂能力的 action。 ## 主要內容 - **核心管線(`src/main.js`,Step1–Step11)**:前置驗證 → 自動提交檢查 → PR 對話收斂 → 6 角色分析產生 findings → 合併去重 → 排除規則+防守方誤報裁決 → 發布 Review → JSON 驗證 → 記憶區 commit/push → 嚴重問題把關。 - **參數自動接線(`config.js`)**:`INPUT_*` 優先,PR 參數自 runner 事件 payload 帶入;使用端只需 `with: token`。 - **LLM 抽象(`llm.js`)**:自動偵測 codex / claude / antigravity / opencode CLI;`mapWithConcurrency` 讓角色分析、補行號、誤報裁決以並行 sub-agent 執行(預設不限併發,`AI_ASSISTANT_CONCURRENCY` 可限流)。 - **diff 過濾(`.reviewignore` + `gitea.js`)**:外部化排除清單,並強制排除任意深度 `node_modules/`,避免超過 LLM 輸入上限。 - **前置模型檢查(`preflight.js`)**:Step2 向 codex 模型清單端點確認 auth 有效且 model 可用,提早分辨「認證失效」與「模型無權限」。 - **測試**:13 個模組 + `main` 管線整合測試,共約 **300+ 筆**,全數通過。 ## 影響範圍 - 依賴採 vendored `node_modules`(隨 repo 進版控,runner 不需 `npm install`)。 - CI:`test`(AI 審查)只在**目標為 develop** 時執行;目標為 master 時跳過(本 release PR 即不會觸發自我審查)。 ## 風險 / 注意事項 - `config.js` 全域關閉 TLS 憑證驗證(`NODE_TLS_REJECT_UNAUTHORIZED=0`)以相容內部自簽憑證,僅限受信任內網。 - **`exclusions.json` 中登記了數個「已知的安全設計待辦」**(信任邊界:`.reviewignore`/`exclusions` 信任 PR head、可偽造的 bot-skip marker、resolve 全留言)——這些是**經決策暫時接受、尚未修復**的真實問題,合併到 master 後仍為後續強化項目。 ## 驗證 - 全套件 **309 pass / 0 fail**。 - 已於本機煙霧測試確認 `node src/main.js` 會實際啟動 pipeline(修復先前 node action runtime 空跑的回歸)。
jiantw83 added 32 commits 2026-07-03 10:07:10 +00:00
chore(專案設定): 更新 CI workflow 並移除範本 package.json
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 1s
CI / 3. RESULT (pull_request) Has been skipped
e15f3f41f3
fix(config): comment token 缺省時回退至 token
CI / 2. TEST (pull_request) Failing after 1s
CI / 3. RESULT (pull_request) Has been skipped
CI / 1. BUILD (pull_request) Successful in 2s
7c35dc0601
fix(ci): 串接 build→test 的 VERSION 輸出
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 33s
CI / 3. RESULT (pull_request) Has been skipped
64af9e9e92
test(preflight): 補 codex 模型檢查與 auth 失效測試
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 38s
CI / 3. RESULT (pull_request) Has been skipped
51e9568ccf
test(llm): 補 extractMeaningfulError 測試
CI / 1. BUILD (pull_request) Successful in 1s
CI / 2. TEST (pull_request) Failing after 32s
CI / 3. RESULT (pull_request) Has been skipped
9e70bb2245
test(gitea): 補 filterDiff 排除 node_modules/lock 測試
CI / 1. BUILD (pull_request) Successful in 1s
CI / 2. TEST (pull_request) Failing after 6m15s
CI / 3. RESULT (pull_request) Has been skipped
3393e43877
chore: update ai-review findings [ai-review-bot][failure]
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 29s
CI / 3. RESULT (pull_request) Has been skipped
fc5baf32db
chore(ai-review 狀態): 移除已修與誤報 findings、登記 exclusions
CI / 1. BUILD (pull_request) Successful in 2s
CI / 3. RESULT (pull_request) Has been skipped
CI / 2. TEST (pull_request) Failing after 28m13s
1a9a6bce5c
chore: update ai-review findings [ai-review-bot][failure]
CI / 2. TEST (pull_request) Failing after 28s
CI / 3. RESULT (pull_request) Has been skipped
CI / 1. BUILD (pull_request) Successful in 1s
4b4b934cda
test(gitea): 補 .reviewignore 解析與載入測試
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 26m13s
CI / 3. RESULT (pull_request) Has been skipped
1279cae575
chore: update ai-review findings [ai-review-bot][failure]
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 29s
CI / 3. RESULT (pull_request) Has been skipped
94d86809d5
test(llm): 補 mapWithConcurrency 測試
CI / 1. BUILD (pull_request) Successful in 1s
CI / 2. TEST (pull_request) Failing after 11m17s
CI / 3. RESULT (pull_request) Has been skipped
93142e2250
chore: update ai-review findings [ai-review-bot][failure]
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 28s
CI / 3. RESULT (pull_request) Has been skipped
0be25e667c
chore(workflows): CI 目標非 develop 跳過 test job、CD 加印 gitea context 與 fetch-tags
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 12m14s
CI / 3. RESULT (pull_request) Has been skipped
11205d5b82
chore: update ai-review findings [ai-review-bot][failure]
CI / 3. RESULT (pull_request) Has been skipped
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Failing after 29s
fda3331dd4
chore(ai-review 狀態): 解決 critical #2、其餘 findings 轉入 exclusions
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Successful in 28s
CI / 3. RESULT (pull_request) Successful in 1s
d1293bb950
test(main): 設 AI_REVIEW_SKIP_MAIN 略過自動執行
CI / 2. TEST (pull_request) Successful in 9m44s
CI / 3. RESULT (pull_request) Successful in 1s
CI / 1. BUILD (pull_request) Successful in 1s
5c2c37f9d1
Merge pull request 'feat: 導入 AI 程式碼審查 action 並修正進入點與參數接線' (#1) from ai-review-resolve/develop-20260702-160700 into develop
CI / 2. TEST (pull_request) Has been skipped
CI / 3. RESULT (pull_request) Has been skipped
CI / 1. BUILD (pull_request) Successful in 2s
c2f41b16eb
Reviewed-on: #1
admin merged commit ec61b282fa into master 2026-07-03 10:07:51 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: actions/ai-code-review#2