docs(release-cleanup): 補齊 config/gitea-client/releases/tags 的 JSDoc
為 loadConfig、GiteaClient(含 fetchAllPages/deleteResource)、 selectReleasesToDelete/cleanupReleases、categorizeTags/cleanupOrphanTags 補上完整 JSDoc(參數、回傳、例外、行為說明)。僅註解變更。 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
7082fd7311
commit
7e6f9ef3f6
+14
-8
@@ -5,11 +5,11 @@ import { section, info, success, fail, warn } from './logger.js'
|
||||
import { isEmptyOrNull } from './validate.js'
|
||||
|
||||
/**
|
||||
* 依建立時間由新到舊排序,保留最新的 keepCount 筆,回傳其餘待刪除的成品。
|
||||
* 純函式,方便單元測試。
|
||||
* @param {any[]} releases 成品清單
|
||||
* @param {number} keepCount 要保留的筆數
|
||||
* @returns {any[]} 需要刪除的成品(較舊者)
|
||||
* 依 `created_at` 建立時間由新到舊排序,保留最新的 `keepCount` 筆,回傳其餘(較舊)待刪除的成品。
|
||||
* 以展開運算子複製陣列後再排序,不會改動傳入的原陣列。為純函式,方便單元測試。
|
||||
* @param {any[]} releases 成品清單,每個元素預期含有 `created_at` 欄位
|
||||
* @param {number} keepCount 要保留的最新筆數;為 0 時代表全部刪除
|
||||
* @returns {any[]} 需要刪除的成品陣列(較舊者),依新到舊排序
|
||||
*/
|
||||
export function selectReleasesToDelete(releases, keepCount) {
|
||||
const sorted = [...releases].sort(
|
||||
@@ -19,9 +19,15 @@ export function selectReleasesToDelete(releases, keepCount) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 讀取成品清單,刪除超出保留數量的舊版本成品。
|
||||
* @param {import('./gitea-client.js').GiteaClient} client
|
||||
* @param {ReturnType<import('./config.js').loadConfig>} config
|
||||
* 讀取全部成品清單,刪除超出保留數量的舊版本成品。
|
||||
*
|
||||
* 流程:取得所有 release → 若總數不超過 `keepCount` 則直接結束(無需清理)→
|
||||
* 否則以 [[selectReleasesToDelete]] 取出待刪除清單,逐筆刪除(略過沒有 `id` 的項目),
|
||||
* 依回應狀態碼 204 判定成功與否並輸出結果。
|
||||
*
|
||||
* @param {import('./gitea-client.js').GiteaClient} client 用於讀取與刪除的 Gitea 客戶端
|
||||
* @param {ReturnType<import('./config.js').loadConfig>} config 設定物件,使用其 `releaseApiUrl` 與 `keepCount`
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
export async function cleanupReleases(client, config) {
|
||||
section('取得成品資訊')
|
||||
|
||||
Reference in New Issue
Block a user