40 lines
2.4 KiB
JSON
40 lines
2.4 KiB
JSON
{
|
|
"generatedAt": "2026/07/20 15:20:13",
|
|
"commitSha": "c980add8077dd1316a6e4d62be481bc4f1c94e25",
|
|
"prNumber": 6,
|
|
"tool": {
|
|
"name": "code-review-resolve",
|
|
"version": "0.0.8",
|
|
"model": "(工具預設)"
|
|
},
|
|
"findings": [
|
|
{
|
|
"id": "F002",
|
|
"reviewer": "Maya",
|
|
"focus": "testing",
|
|
"badge": "🧪",
|
|
"severity": "警告",
|
|
"file": "src/index.js",
|
|
"startLine": 306,
|
|
"endLine": 359,
|
|
"problem": "建問題模式的核心流程已大幅改變,但 diff 中沒有對應測試驗證各分支:有保留問題時才建立 issue、暫存留言依序送出、無問題時靜默通過、嚴重與非嚴重問題送往正確位置,以及標籤失敗後仍須回貼 PR 連結。這些分支牽涉多次外部 API 呼叫與狀態切換,未測試時很容易出現漏留言、留言送錯 PR/issue,或在 `issue` 尚未建立時解參考的回歸。",
|
|
"suggestion": "新增主流程測試並 mock Gitea、agent 與 git 操作,至少涵蓋:`kept=[]` 時不建立 issue 且不留言;僅嚴重問題;僅警告/建議;混合問題;建立 issue 或寫入暫存留言失敗;標籤查詢、AI 選標籤及補掛標籤失敗時仍回貼 issue 連結。除了呼叫次數,也應斷言 API 呼叫順序、目標 issue 編號及留言內容。",
|
|
"suggestedCode": ""
|
|
},
|
|
{
|
|
"id": "F004",
|
|
"reviewer": "Maya",
|
|
"focus": "testing",
|
|
"badge": "🧪",
|
|
"severity": "警告",
|
|
"file": "src/lib/gitrepo.js",
|
|
"startLine": 100,
|
|
"endLine": 122,
|
|
"problem": "`resolveMergeBase` 新增多階段 fetch 與淺層 checkout 修復邏輯,但沒有看到測試驗證成功、降級與最終失敗路徑。尤其初次 merge-base 失敗後,淺層與非淺層 repository 會走不同路徑,且多個 `tryGit` 失敗會被刻意吞掉;若參數、refspec 或重試順序有誤,只會在實際 CI checkout 深度不足時才暴露。",
|
|
"suggestion": "以 stub 的 git 執行器或暫存 repository 補齊案例:首次 merge-base 成功;淺層 repository 經 `--unshallow` 後成功;`--unshallow` 失敗但 `--deepen=1000` 後成功;非淺層首次失敗後重試成功;所有策略失敗時拋出含 `baseRef` 且保留原始 `cause` 的錯誤。並斷言 base/head fetch 的 refspec 與執行順序。",
|
|
"suggestedCode": ""
|
|
}
|
|
],
|
|
"excluded": []
|
|
}
|