feat(ai-code-review): 建問題模式導向 issue,並整併流程調整、文件與 CI #13
Notifications
Due Date
No due date set.
Blocks
#6 feat(ai-code-review): 建問題模式導向 issue,並整併流程調整、文件與 CI
node-actions/ai-code-review
Reference: node-actions/ai-code-review#13
Reference in New Issue
Block a user
變更摘要
本 PR 將 ai-code-review action 分支的完整成果併入
develop,主要含四塊:create-issue: 'true'時,審查留言(工具/diff/角色/嚴重問題/警告+建議)全部改發到追蹤 issue、不再張貼到 PR;不執行「舊留言標過時/resolve」;issue 延後到「確定有保留問題」才建立;無保留問題或無可審查變更則不建 issue、PR 也完全不留言(靜默通過);有問題時最後在 PR 回貼一則 issue 連結並補掛標籤,形成雙向關聯。action.yml/src各模組文件、重建readme.md,新增.gitea/workflows/ci.yaml(多工具 code review 驗證)並啟用建問題模式。影響範圍
src/index.jsmain()依模式分流:留言去向、跳過 resolveOldComments、issue 延後建立、severe/others 導向 issue、有問題才在 PR 回貼連結src/lib/gitea.js新增addLabelsToIssuesrc/lib/templates.js新增issueLinkCommentsrc/lib/review.js新增postSevereToIssue,移除createIssueWithFindings、sortFindingsForIssuesrc/lib/gitrepo.js補抓淺層 checkout 的 base 歷史readme.md、action.yml、.gitea/workflows/ci.yaml、.gitea/workflows/readme.md風險與注意事項
readme.md尚未反映「建問題模式導向 issue」的最新行為與新/移除的函式,建議後續以 doc-funcs 重建文件。2026/07/17 18:49:58,未刷新。🤖 AI Code Review|審查工具
codexcodex-cli 0.144.6491c170d366b162d758334732ff97fac5bc08b19📋 變更摘要(送審 git diff)
action.ymlreadme.mdsrc/index.jssrc/lib/agents.jssrc/lib/context.jssrc/lib/gitea.jssrc/lib/gitrepo.jssrc/lib/review.jssrc/lib/roles.jssrc/lib/templates.js⚔️ 攻擊方登場
🛡️ 防守方登場
🟠 警告|⚡ Rogue
位置:
src/lib/gitrepo.js第 132–133 行問題描述
淺層 checkout 一遇到首次 merge-base 失敗,就優先執行
git fetch --unshallow origin,會直接下載遠端 refspec 涵蓋的完整歷史;大型或長壽 repo 可能多抓數 GB 資料、耗費數分鐘與大量磁碟,後面的--deepen=1000幾乎失去節省資源的意義。修改建議
先針對 base 與 HEAD 做有限深度補抓並重試 merge-base,採 100/500/1000 等漸進深度;只有各級仍失敗時,才把
--unshallow當最後手段。建議寫法
🟠 警告|🎼 Bard
位置:
src/lib/review.js第 42–61 行問題描述
agentFailureDetail的文件自相矛盾:開頭宣稱「原始輸出預設隱藏」,後文卻明言預設附上經遮罩的stderr與stdout片段;另提到ACTIONS_STEP_DEBUG,函式內卻沒有相應分支。註解與實作各唱各的調,維護者無法從文件判斷實際日誌行為。修改建議
統一文件敘述為實際行為:預設輸出經遮罩且限長的診斷片段;若目前並未依
ACTIONS_STEP_DEBUG改變輸出,就移除該段說明,或待真正實作開關後再補上。🔵 建議|🎼 Bard
位置:
readme.md第 41–49 行問題描述
流程圖從步驟 8 倒跳至步驟 2,使「步驟」同時承擔邏輯編號與執行順序兩種含義;
src/index.js也以「步驟 2(延後執行)」呼應此安排。讀者必須反覆校準數字,流程的節奏因而走調。修改建議
若數字代表執行順序,請依實際順序重新編號;若「清理舊留言」必須保留既有代號,則改用具語義的階段名稱,例如「準備」、「分析」、「裁決」、「發布前清理」,避免以倒序數字描述流程。
🧩 code-review-resolve 處理進度
本議題為 AI Code Review 建問題模式的追蹤議題。以
--issue all併同.gitea/ai-review/findings/逐條處理後結果如下(對照目前程式碼與exclusions.json):src/lib/gitrepo.js第 132–133 行src/lib/review.js第 42–61 行readme.md第 41–49 行小計:✅ 已解決 1 條、🚫 誤報(已列入 exclusions)1 條、⏭️ 待人工處理 1 條。
resolveMergeBase補抓策略調整、deepen PR HEAD改用 head SHA、留言閉包改名、push-tokeninput 移除等)。.gitea/ai-review/exclusions.json既有裁決等價,不重複新增排除條目。處理完成,依 code-review-resolve 流程關閉本議題。