From 43dde84c8be55b431042689165f70f39e40a23e0 Mon Sep 17 00:00:00 2001 From: Charles Vien Date: Tue, 19 May 2026 22:36:23 -0700 Subject: [PATCH 1/2] Add nightly cleanup of stale draft releases --- .github/workflows/cleanup-draft-releases.yml | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/cleanup-draft-releases.yml diff --git a/.github/workflows/cleanup-draft-releases.yml b/.github/workflows/cleanup-draft-releases.yml new file mode 100644 index 000000000..cbf2a9ab0 --- /dev/null +++ b/.github/workflows/cleanup-draft-releases.yml @@ -0,0 +1,31 @@ +name: Cleanup Draft Releases + +on: + schedule: + - cron: "0 0 * * *" + workflow_dispatch: + +concurrency: + group: cleanup-draft-releases + cancel-in-progress: false + +jobs: + cleanup: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Delete draft releases older than 1 hour + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPO: ${{ github.repository }} + run: | + CUTOFF=$(date -u -d "1 hour ago" +%Y-%m-%dT%H:%M:%SZ) + echo "Cutoff (UTC): $CUTOFF" + gh api --paginate "repos/$REPO/releases" \ + --jq ".[] | select(.draft == true) | select(.created_at < \"$CUTOFF\") | .id" \ + | while read -r release_id; do + [ -z "$release_id" ] && continue + echo "Deleting draft release $release_id" + gh api -X DELETE "repos/$REPO/releases/$release_id" + done From 070c9bfbb111fa03e8cd3c56218fe6c1e3536c24 Mon Sep 17 00:00:00 2001 From: Charles Vien Date: Tue, 19 May 2026 22:49:20 -0700 Subject: [PATCH 2/2] address greptile feedback --- .github/workflows/cleanup-draft-releases.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cleanup-draft-releases.yml b/.github/workflows/cleanup-draft-releases.yml index cbf2a9ab0..3dba38c33 100644 --- a/.github/workflows/cleanup-draft-releases.yml +++ b/.github/workflows/cleanup-draft-releases.yml @@ -15,12 +15,13 @@ jobs: permissions: contents: write steps: - - name: Delete draft releases older than 1 hour + - name: Delete draft releases older than 24 hours env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPO: ${{ github.repository }} run: | - CUTOFF=$(date -u -d "1 hour ago" +%Y-%m-%dT%H:%M:%SZ) + set -o pipefail + CUTOFF=$(date -u -d "24 hours ago" +%Y-%m-%dT%H:%M:%SZ) echo "Cutoff (UTC): $CUTOFF" gh api --paginate "repos/$REPO/releases" \ --jq ".[] | select(.draft == true) | select(.created_at < \"$CUTOFF\") | .id" \