chore(ai-review): 更新 findings.json 與 exclusions.json
CI / AI Code Review (pull_request) Failing after 43s
CI / AI Code Review (pull_request) Failing after 43s
移除已修復(決定性排序)與多項重複提報的 finding;保留 7 條設計取捨; 新增 6 條不適用/誤報至 exclusions(內部 IP 黑名單會破壞自架 Gitea、 section 排版主觀、無效日期已註記、CI 堆疊輸出無妨、MAX_PAGES 為安全上限、 通用 log 抽象效益低)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
de094c542f
commit
b461f72d43
@@ -70,5 +70,41 @@
|
||||
"role": "Rogue",
|
||||
"original_finding": "為排序而 map 成物件陣列再 map 回原物件,造成多次 O(n) 陣列分配與 GC 壓力,建議減少中間狀態或原地排序。",
|
||||
"reason": "不採納且與前次建議衝突。此 map/sort/map(Schwartzian transform)正是前一輪 Rogue(releases.js:17)要求「排序前預先計算時間戳」的實作,用以避免比較器重複呼叫 Date.parse;release 數量有限,中間陣列開銷可忽略,可讀性更佳。"
|
||||
},
|
||||
{
|
||||
"location": "app/config.js:35",
|
||||
"role": "Assassin",
|
||||
"original_finding": "requireUrl 僅驗證 URL 格式,未阻擋指向內部網路/loopback(localhost、169.254.169.254 等)的位址,容器環境恐 SSRF。建議加入內部 IP 黑名單。",
|
||||
"reason": "不適用且會破壞正常部署。GITEA_SERVER_URL 來自 CI 平台提供的 gitea.server_url,即本 Action 欲操作的 Gitea 實例本身;自架 Gitea 經常部署於內網/私有位址,封鎖內部 IP 會使合法部署無法運作。此非攻擊者可控的任意外連目標。"
|
||||
},
|
||||
{
|
||||
"location": "app/releases.js:46",
|
||||
"role": "Bard",
|
||||
"original_finding": "區段標題層級不一致:『取得成品資訊』內含 info 輸出,『刪除舊版本成品』直接開始邏輯,視覺節奏稍不一致。",
|
||||
"reason": "主觀排版意見。現行 section() 用於標示每個主要階段,語意清楚且符合原 bash 版本結構;不構成功能或可讀性問題。"
|
||||
},
|
||||
{
|
||||
"location": "app/releases.js:20",
|
||||
"role": "Leo",
|
||||
"original_finding": "selectReleasesToDelete 對無法解析的日期視為 0 是隱晦行為,維護者可能不解,建議記錄 warning 或明確處理。",
|
||||
"reason": "已於程式碼註解明確記錄『格式無效或缺漏時視為最舊(0)』;Gitea API 一向回傳有效 created_at,對每筆無效日期發出 runtime warning 將是不會觸發的死碼與雜訊,不採納。"
|
||||
},
|
||||
{
|
||||
"location": "app/logger.js:53",
|
||||
"role": "Assassin",
|
||||
"original_finding": "failError 直接輸出 error.stack 可能洩漏專案目錄結構、內部函式名稱等敏感路徑;建議生產環境隱藏堆疊或僅 debug 模式輸出。",
|
||||
"reason": "不適用。本專案為 CI/CD 清理 Action,堆疊輸出至僅儲存庫維護者可見的 Action 日誌以利除錯,非公開環境;容器內路徑為 /app,不含敏感資訊。隱藏堆疊反而降低可維運性。"
|
||||
},
|
||||
{
|
||||
"location": "app/gitea-client.js:10",
|
||||
"role": "Leo",
|
||||
"original_finding": "MAX_PAGES 寫死於程式碼,建議改為環境變數傳入以增加部署彈性。",
|
||||
"reason": "不採納。MAX_PAGES 為防止無限迴圈的安全上限(backstop),非調校參數;1000 頁遠超任何真實儲存庫的 release/tag 規模,改為環境變數只會增加不必要的設定面與誤設風險。"
|
||||
},
|
||||
{
|
||||
"location": "app/logger.js:46",
|
||||
"role": "Leo",
|
||||
"original_finding": "建議在 logger.js 建立通用 log(level, prefix, stream) 函式,讓 info/warn/fail 等共用以降低重複。",
|
||||
"reason": "不採納。六個輸出函式皆為單行、語意直觀;為此抽象通用 dispatcher 反而增加間接層與閱讀成本,去重效益微小。"
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user