Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jim60105/4c9b72d08095a85ab94442d781451ad9 to your computer and use it in GitHub Desktop.
Save jim60105/4c9b72d08095a85ab94442d781451ad9 to your computer and use it in GitHub Desktop.
#!/bin/bash
# 設定變數
PACKAGE_NAME=""
TAG_PREFIX=""
PER_PAGE=100
PAGE=1
# 循環處理所有頁面
while true; do
# 查詢當前頁面
RESPONSE=$(gh api -H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/user/packages/container/$PACKAGE_NAME/versions?per_page=$PER_PAGE&page=$PAGE")
# 偵測是否有結果
if [[ $(echo "$RESPONSE" | jq '. | length') -eq 0 ]]; then
echo "已讀取所有頁面,停止查詢。"
break
fi
# 篩選匹配的標籤並提取版本 ID
MATCHED_IDS=$(echo "$RESPONSE" | jq -r --arg TAG_PREFIX "$TAG_PREFIX" '
.[] | select(.metadata.container.tags[] | startswith($TAG_PREFIX)) | .id')
# 刪除匹配的版本
for ID in $MATCHED_IDS; do
echo "刪除版本 ID: $ID"
gh api -X DELETE "/user/packages/container/$PACKAGE_NAME/versions/$ID"
done
# 下一頁
echo "已處理第 $PAGE 頁。"
PAGE=$((PAGE + 1))
done
echo "批量刪除完成!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment