Commit Graph
69 Commits
Author SHA1 Message Date
JefferyandClaude Opus 4.8 154ab032bf fix(release-cleanup): 強化輸入驗證、請求逾時與錯誤處理
解決 AI review 的安全性與健壯性問題:
- 驗證 GITEA_SERVER_URL 為合法 http/https URL(降低 SSRF 風險)
- 驗證 GITEA_REPOSITORY 為 owner/repo 形式並拒絕路徑穿越
- 為所有 fetch 請求加上 30 秒逾時(AbortSignal.timeout),避免卡死
- fetchAllPages 解析前檢查 content-type,非 JSON 時拋出明確錯誤
- selectReleasesToDelete 對無效 created_at 防呆,避免 NaN 排序
- index.js 匯出 main 並加上直接執行守衛,錯誤輸出含類型與堆疊

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:55:45 +08:00
JefferyandClaude Opus 4.8 1f27a46f7b docs(README): 建立專案 README 與功能/使用範例
新增專案列表、公開功能列表(連結至 develop 上的原始碼行)與使用範例;
連結指向 develop 分支以確保合併後仍有效。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:46:20 +08:00
JefferyandClaude Opus 4.8 7e6f9ef3f6 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>
2026-06-26 10:46:20 +08:00
AI Review Bot 7082fd7311 chore: update ai-review findings [ai-review-bot][failure] 2026-06-26 02:38:03 +00:00
JefferyandClaude Opus 4.8 4bcc6a5014 docs(release-cleanup): 補上 index.js JSDoc 與 ci/cd workflow 註解
CI / AI Code Review (pull_request) Failing after 40s
為進入點主流程 main() 補上 JSDoc;為 ci.yaml/cd.yaml 加上用途說明與逐行註解。
皆為註解變更,不影響任何執行邏輯。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:36:25 +08:00
JefferyandClaude Opus 4.8 15ffa4ffb6 test(release-cleanup): 新增 validate/releases/tags/gitea-client 單元測試
以 node:test 內建測試器涵蓋純函式(isEmptyOrNull/requireValue/requireInteger、
selectReleasesToDelete、categorizeTags)與 GiteaClient 分頁/刪除邏輯,共 19 項測試。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:35:19 +08:00
JefferyandClaude Opus 4.8 b1aa8730a2 refactor(release-cleanup): 將清理邏輯由 bash 改寫為 Node.js 模組
依功能分組為 logger/validate/config/gitea-client/releases/tags 模組,
entrypoint.sh 改為呼叫 node /app/index.js,Dockerfile 改用 node:20-alpine 基底。
對外行為(清理舊 release 與未指定 release 的 tag)維持不變。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:35:19 +08:00
admin b478872c5f 更新 .gitea/workflows/ci.yaml 2026-06-25 16:32:34 +00:00
jiantw83 fef4eaebca 更新 .gitea/workflows/cd.yaml 2026-06-25 14:10:49 +00:00
jiantw83 a9b6f4d7fa 更新 .gitea/workflows/ci.yaml 2026-06-25 14:09:16 +00:00
jiantw83 5e9b7cfea6 更新 .gitea/workflows/ci.yaml 2026-06-25 14:04:35 +00:00
jiantw83 e1c50286ce 更新 .gitea/workflows/cd.yaml 2026-06-25 14:00:02 +00:00
admin 3b0e5225c6 更新 action.yaml 2026-06-25 13:47:57 +00:00
jiantw83 0e91eb6cf3 fix(release cleanup): 改用 GITEA_TOKEN 呼叫 API 2026-06-25 10:58:56 +00:00
jiantw83 034c1ce67b chore(Gitea Actions): 修正工作流程路徑與發版設定 2026-06-25 10:57:32 +00:00
jiantw83 2f0a1b72c1 style(Dockerfile): 整理空白與檔尾換行 2026-06-25 10:57:32 +00:00
jiantw83 91dee30262 fix(release cleanup): 修正 action token 傳遞與中繼資料 2026-06-25 10:57:32 +00:00
jiantw83 3bf8cab832 Enhance Docker Action: Add curl and jq to Dockerfile, update action.yaml inputs, and improve entrypoint.sh with error handling and release management logic. 2026-06-25 09:08:44 +00:00
jiantw83 609bf90842 Initial commit 2026-06-25 09:03:06 +00:00