chore: add package fetch review exclusion

This commit is contained in:
2026-05-15 06:12:29 +00:00
parent 355f20874c
commit 83f6c5c2df
+5
View File
@@ -9,6 +9,11 @@
"location": "entrypoint.sh:305",
"title": "process_candidates N+1 delete requests",
"reason": "刪除候選版本時對每個版本發出獨立的 DELETE API 請求(N+1 典型案例),若候選數量大會產生大量 API 請求與延遲。呼叫內部也多次對 `owner`、`package_name`、`version` 執行 `url_encode`/`jq`,增加重複開銷。建議:檢查 Gitea 是否支援批次刪除或改為先一次取得所有版本再批次處理;對每個路徑欄位只 URL encode 一次並重用編碼結果;將外部工具呼叫合併或改為更有效的處理方式以降低啟動次數與延遲。"
},
{
"location": "entrypoint.sh",
"title": "collect_package_candidates N+1 package fetch",
"reason": "在 `collect_package_candidates` 函數中,目前對 `INPUT_PACKAGE_NAMES` 的每個套件都分別呼叫 `fetch_package_versions`,導致 N+1 查詢與大量 API 請求,當套件數量多時會增加網路延遲與 Gitea 伺服器負載。建議:改為先一次或少次呼叫以取得 owner 下所有 NuGet 套件與其版本(例如用 `/api/v1/packages/${owner}?type=nuget` 或 `fetch_all_pages`),在本地用 `jq group_by(.name)` 或等效邏輯分組並依 `TARGET_PACKAGES` 篩選;如此可大幅減少不必要的 API 請求、網路流量與本地處理負擔,避免 N+1 問題並提升效能與擴展性。"
}
]
}