adjust api
This commit is contained in:
parent
0e07d08988
commit
b5aa207c26
1 changed files with 15 additions and 17 deletions
|
|
@ -17,29 +17,27 @@ jobs:
|
||||||
MIN_KEEP=50
|
MIN_KEEP=50
|
||||||
TOKEN="${{ secrets.PACKAGE_TOKEN }}"
|
TOKEN="${{ secrets.PACKAGE_TOKEN }}"
|
||||||
|
|
||||||
# Hent alle tags for imaget via Forgejo API
|
# Hent alle pakker af typen container med dette navn, sorteret ældste først (via id)
|
||||||
echo "=== Kalder API ==="
|
# API returnerer en liste af package-objekter, hvert med "id" og "version"
|
||||||
API_URL="https://${REGISTRY}/api/v1/packages/${OWNER}/container/${IMAGE}/tags"
|
RAW=$(curl -s -H "Authorization: token ${TOKEN}" \
|
||||||
echo "URL: ${API_URL}"
|
"https://${REGISTRY}/api/v1/packages/${OWNER}?type=container&q=${IMAGE}&limit=200")
|
||||||
RAW=$(curl -s -H "Authorization: token ${TOKEN}" "${API_URL}")
|
|
||||||
echo "=== Råt API-svar ==="
|
|
||||||
echo "$RAW"
|
|
||||||
echo "=================="
|
|
||||||
|
|
||||||
TAGS=$(echo "$RAW" | tr ',' '\n' | grep '"name"' | sed 's/.*"name":"\([^"]*\)".*/\1/' | sort -r)
|
# Filtrer kun pakker med korrekt navn og udtræk id + created_at, sorter ældste først
|
||||||
|
IDS=$(echo "$RAW" | tr '{' '\n' | grep "\"name\":\"${IMAGE}\"" | \
|
||||||
|
sed 's/.*"id":\([0-9]*\).*/\1/' | sort -n)
|
||||||
|
|
||||||
TOTAL=$(echo "$TAGS" | wc -l)
|
TOTAL=$(echo "$IDS" | grep -c '[0-9]' || true)
|
||||||
echo "Fundet ${TOTAL} tags totalt, beholder ${MIN_KEEP}"
|
echo "Fundet ${TOTAL} pakker totalt, beholder ${MIN_KEEP}"
|
||||||
|
|
||||||
if [ "$TOTAL" -le "$MIN_KEEP" ]; then
|
if [ "$TOTAL" -le "$MIN_KEEP" ]; then
|
||||||
echo "Ingen tags at slette"
|
echo "Ingen pakker at slette"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Slet tags ud over MIN_KEEP (ældste først)
|
# Slet de ældste (laveste id'er) ud over MIN_KEEP
|
||||||
TO_DELETE=$(echo "$TAGS" | tail -n +$((MIN_KEEP + 1)))
|
TO_DELETE=$(echo "$IDS" | head -n $(( TOTAL - MIN_KEEP )))
|
||||||
for TAG in $TO_DELETE; do
|
for ID in $TO_DELETE; do
|
||||||
echo "Sletter tag: ${TAG}"
|
echo "Sletter pakke id: ${ID}"
|
||||||
curl -s -X DELETE -H "Authorization: token ${TOKEN}" \
|
curl -s -X DELETE -H "Authorization: token ${TOKEN}" \
|
||||||
"https://${REGISTRY}/api/v1/packages/${OWNER}/container/${IMAGE}/${TAG}"
|
"https://${REGISTRY}/api/v1/packages/${OWNER}/${ID}"
|
||||||
done
|
done
|
||||||
Loading…
Add table
Add a link
Reference in a new issue