From b4c9edcd695952efa6ac0367bbe022fa6ee1b234 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Mon, 1 Dec 2025 14:33:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E8=BC=B8=E5=87=BA?= =?UTF-8?q?=E8=88=87=E8=A8=BB=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cleanup-releases.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/cleanup-releases.sh b/cleanup-releases.sh index 7cd8434..50b4729 100644 --- a/cleanup-releases.sh +++ b/cleanup-releases.sh @@ -17,8 +17,8 @@ fi echo "開始清理舊版本,保留最新 $KEEP_COUNT 個版本" -# 獲取所有 releases 並按創建時間排序 -echo "正在獲取 releases 列表..." +# 獲取所有發佈並按創建時間排序 +echo "正在獲取發佈列表..." RELEASES_RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}" \ "$GITEA_SERVER/api/v1/repos/$REPOSITORY/releases" \ -H "Authorization: token $TOKEN" \ @@ -27,9 +27,9 @@ RELEASES_RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}" \ HTTP_STATUS=$(echo "$RELEASES_RESPONSE" | grep -o "HTTP_STATUS:[0-9]*" | cut -d: -f2) RELEASES_JSON=$(echo "$RELEASES_RESPONSE" | sed '/HTTP_STATUS:/d') -# 檢查是否成功獲取 releases +# 檢查是否成功獲取發佈 if [[ "$HTTP_STATUS" != "200" ]] || [[ -z "$RELEASES_JSON" ]] || [[ "$RELEASES_JSON" == "null" ]]; then - echo "❌ 錯誤:無法獲取 releases 列表 (HTTP Status: $HTTP_STATUS)" + echo "❌ 錯誤:無法獲取發佈列表 (HTTP Status: $HTTP_STATUS)" exit 1 fi @@ -37,16 +37,16 @@ fi SORTED_RELEASES=$(echo "$RELEASES_JSON" | jq -e 'sort_by(.created_at) | reverse') if [[ $? -ne 0 ]]; then - echo "❌ 錯誤:無法解析 releases 資料" + echo "❌ 錯誤:無法解析發佈資料" exit 1 fi TOTAL_COUNT=$(echo "$SORTED_RELEASES" | jq 'length') -echo "目前總共有 $TOTAL_COUNT 個 releases" +echo "目前總共有 $TOTAL_COUNT 個發佈" # 如果總數量小於等於保留數量,則無需清理 if [[ $TOTAL_COUNT -le $KEEP_COUNT ]]; then - echo "✅ releases 數量 ($TOTAL_COUNT) 未超過保留數量 ($KEEP_COUNT),無需清理" + echo "✅ 發佈數量 ($TOTAL_COUNT) 未超過保留數量 ($KEEP_COUNT),無需清理" exit 0 fi @@ -54,14 +54,14 @@ fi DELETE_COUNT=$((TOTAL_COUNT - KEEP_COUNT)) echo "需要刪除 $DELETE_COUNT 個舊版本" -# 獲取要刪除的 releases(跳過前 keep-count 個) +# 獲取要刪除的發佈(跳過前 keep-count 個) TO_DELETE=$(echo "$SORTED_RELEASES" | jq -c ".[$KEEP_COUNT:]") # 初始化刪除計數器 DELETED_COUNT=0 FAILED_COUNT=0 -# 處理每個要刪除的 release +# 處理每個要刪除的發佈 echo "$TO_DELETE" | jq -c '.[]' | while IFS= read -r release; do if [[ -z "$release" ]] || [[ "$release" == "null" ]]; then continue @@ -76,7 +76,7 @@ echo "$TO_DELETE" | jq -c '.[]' | while IFS= read -r release; do fi if [[ "$DRY_RUN" == "true" ]]; then - echo "🔍 [模擬執行] 會刪除 release: $RELEASE_TAG ($RELEASE_NAME)" + echo "🔍 [模擬執行] 會刪除發佈: $RELEASE_TAG ($RELEASE_NAME)" else # 實際刪除 DELETE_RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}" \ @@ -86,9 +86,9 @@ echo "$TO_DELETE" | jq -c '.[]' | while IFS= read -r release; do HTTP_STATUS=$(echo "$DELETE_RESPONSE" | grep -o "HTTP_STATUS:[0-9]*" | cut -d: -f2) if [[ "$HTTP_STATUS" == "204" ]] || [[ "$HTTP_STATUS" == "200" ]]; then - echo "✅ 成功刪除 release: $RELEASE_TAG ($RELEASE_NAME)" + echo "✅ 成功刪除發佈: $RELEASE_TAG ($RELEASE_NAME)" else - echo "❌ 刪除失敗 release: $RELEASE_TAG ($RELEASE_NAME), HTTP 狀態: $HTTP_STATUS" + echo "❌ 刪除失敗發佈: $RELEASE_TAG ($RELEASE_NAME), HTTP 狀態: $HTTP_STATUS" fi fi done @@ -114,7 +114,7 @@ else NEW_TOTAL_COUNT=$(echo "$NEW_RELEASES_JSON" | jq 'length') ACTUAL_DELETED=$((TOTAL_COUNT - NEW_TOTAL_COUNT)) echo "✅ 清理完成!實際刪除了 $ACTUAL_DELETED 個版本" - echo "📊 目前剩餘 $NEW_TOTAL_COUNT 個 releases" + echo "📊 目前剩餘 $NEW_TOTAL_COUNT 個發佈" else echo "✅ 清理完成(無法驗證最終數量)" fi