From 24bcad714104dd78daad031fd3eaac0fef1abdda Mon Sep 17 00:00:00 2001 From: Jeffery Date: Fri, 26 Jun 2026 13:59:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(release-cleanup):=20cleanupReleases=20?= =?UTF-8?q?=E9=98=B2=E7=A6=A6=20null/=E7=95=B0=E5=B8=B8=E7=B5=90=E6=A7=8B?= =?UTF-8?q?=E7=9A=84=20release=20=E9=A0=85=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在刪除迴圈中先檢查項目為非 null 物件,避免對非預期結構解構時拋出未捕捉例外。 Co-Authored-By: Claude Opus 4.8 (1M context) --- app/releases.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/releases.js b/app/releases.js index bb373a4..b338a17 100644 --- a/app/releases.js +++ b/app/releases.js @@ -58,6 +58,12 @@ export async function cleanupReleases(client, config) { const toDelete = selectReleasesToDelete(releases, config.keepCount) for (const release of toDelete) { + // 防禦非預期結構(null/非物件),避免解構時拋出未捕捉例外。 + if (release === null || typeof release !== 'object') { + warn('略過格式異常的成品項目') + continue + } + const { id, tag_name: tag, name } = release // 要求 id 為正整數(Gitea release id 本即正整數);非整數一律略過,不僅依賴 URL 編碼防護。