File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Delete Old Releases
2+
3+ on :
4+ schedule :
5+ - cron : ' 0 3 * * *' # Daily at 03:00 UTC
6+ workflow_dispatch : # Manual trigger
7+
8+ jobs :
9+ clean_releases :
10+ runs-on : ubuntu-latest
11+ steps :
12+ - name : Delete old releases
13+ env :
14+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
15+ run : |
16+ # Get all releases (handle pagination)
17+ releases=$(gh api --paginate repos/${{ github.repository }}/releases)
18+
19+ # Process full releases
20+ full_releases=$(echo "$releases" | jq -c '[.[] | select(.prerelease == false)] | sort_by(.created_at) | reverse')
21+ full_to_delete=$(echo "$full_releases" | jq '.[3:] | .[].id')
22+ for id in $full_to_delete; do
23+ echo "Deleting old full release ID: $id"
24+ gh api --method DELETE repos/${{ github.repository }}/releases/$id
25+ done
26+
27+ # Process pre-releases
28+ pre_releases=$(echo "$releases" | jq -c '[.[] | select(.prerelease == true)] | sort_by(.created_at) | reverse')
29+ pre_to_delete=$(echo "$pre_releases" | jq '.[3:] | .[].id')
30+ for id in $pre_to_delete; do
31+ echo "Deleting old pre-release ID: $id"
32+ gh api --method DELETE repos/${{ github.repository }}/releases/$id
33+ done
You can’t perform that action at this time.
0 commit comments