From 32e4fdf3073c220cf215f1e93b3387d2042441d3 Mon Sep 17 00:00:00 2001 From: Jonathan Langevin Date: Fri, 8 May 2026 06:16:20 -0400 Subject: [PATCH 1/3] ci: keep GoReleaser releases draft during upload --- .goreleaser.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index dc7d20b..281c7da 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -30,3 +30,6 @@ checksum: changelog: sort: asc + +release: + draft: true From 1b4737fd27f4147fa7471261b71f915f29b67948 Mon Sep 17 00:00:00 2001 From: Jon Langevin Date: Fri, 8 May 2026 06:25:03 -0400 Subject: [PATCH 2/3] ci: publish GoReleaser draft releases after upload --- .github/workflows/release.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a7729b9..1e2a3bd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,3 +23,8 @@ jobs: args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Publish GitHub release + if: ${{ success() }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release edit "${{ github.ref_name }}" --draft=false --repo "${{ github.repository }}" From 451c9026a6d86098ebf1159d4a5e3cfdb2007ebc Mon Sep 17 00:00:00 2001 From: Jon Langevin Date: Fri, 8 May 2026 10:08:09 -0400 Subject: [PATCH 3/3] ci: publish draft releases through GitHub API --- .github/workflows/release.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1e2a3bd..bf2868c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,18 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Publish GitHub release - if: ${{ success() }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release edit "${{ github.ref_name }}" --draft=false --repo "${{ github.repository }}" + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.RELEASES_TOKEN || github.token }} + script: | + const tag = context.ref.replace('refs/tags/', ''); + const { owner, repo } = context.repo; + const { data: release } = await github.rest.repos.getReleaseByTag({ owner, repo, tag }); + if (release.draft) { + await github.rest.repos.updateRelease({ + owner, + repo, + release_id: release.id, + draft: false, + }); + }