From 7fcb1efcb9c3aca4353549ca77fad8171bc3504a Mon Sep 17 00:00:00 2001 From: sebas_correa Date: Tue, 28 Jul 2026 17:38:37 -0300 Subject: [PATCH 1/2] ci: auto-merge release-please PRs using GitHub App token Merging with the default GITHUB_TOKEN would not trigger the downstream push-triggered release workflow (GitHub's Actions loop-prevention). Using a token minted from the App avoids that, so the release tag/GitHub Release gets created automatically right after this auto-merge. --- .github/workflows/auto-merge-release.yml | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/auto-merge-release.yml diff --git a/.github/workflows/auto-merge-release.yml b/.github/workflows/auto-merge-release.yml new file mode 100644 index 0000000..026c1a6 --- /dev/null +++ b/.github/workflows/auto-merge-release.yml @@ -0,0 +1,31 @@ +name: auto-merge-release-pr + +on: + pull_request: + types: [opened, synchronize, labeled] + +permissions: + contents: write + pull-requests: write + +jobs: + automerge: + if: | + github.event.pull_request.user.login == 'github-actions[bot]' && + contains(github.event.pull_request.labels.*.name, 'autorelease: pending') + runs-on: ubuntu-24.04 + steps: + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ secrets.APP_RELEASE_ID }} + private-key: ${{ secrets.APP_RELEASE_PRIVATE_KEY }} + + - name: Wait for checks and merge release PR + env: + GH_TOKEN: ${{ steps.app-token.outputs.token }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + gh pr checks "$PR_NUMBER" --repo "$GITHUB_REPOSITORY" --watch --fail-fast + gh pr merge "$PR_NUMBER" --repo "$GITHUB_REPOSITORY" --merge From 62ee1931cd7bb2f22247d7506e2abb2161280d56 Mon Sep 17 00:00:00 2001 From: sebas_correa Date: Tue, 28 Jul 2026 17:51:51 -0300 Subject: [PATCH 2/2] ci: delegate release PR auto-merge to reusable actions-nullplatform workflow Replaces the inline logic with a call to the new auto-merge-release.yml reusable workflow (nullplatform/actions-nullplatform#83), so the same logic can be reused across other module repos. --- .github/workflows/auto-merge-release.yml | 27 ++++-------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/.github/workflows/auto-merge-release.yml b/.github/workflows/auto-merge-release.yml index 026c1a6..4acb541 100644 --- a/.github/workflows/auto-merge-release.yml +++ b/.github/workflows/auto-merge-release.yml @@ -4,28 +4,9 @@ on: pull_request: types: [opened, synchronize, labeled] -permissions: - contents: write - pull-requests: write - jobs: automerge: - if: | - github.event.pull_request.user.login == 'github-actions[bot]' && - contains(github.event.pull_request.labels.*.name, 'autorelease: pending') - runs-on: ubuntu-24.04 - steps: - - name: Generate GitHub App token - id: app-token - uses: actions/create-github-app-token@v1 - with: - app-id: ${{ secrets.APP_RELEASE_ID }} - private-key: ${{ secrets.APP_RELEASE_PRIVATE_KEY }} - - - name: Wait for checks and merge release PR - env: - GH_TOKEN: ${{ steps.app-token.outputs.token }} - PR_NUMBER: ${{ github.event.pull_request.number }} - run: | - gh pr checks "$PR_NUMBER" --repo "$GITHUB_REPOSITORY" --watch --fail-fast - gh pr merge "$PR_NUMBER" --repo "$GITHUB_REPOSITORY" --merge + uses: nullplatform/actions-nullplatform/.github/workflows/auto-merge-release.yml@main + secrets: + app-id: ${{ secrets.APP_RELEASE_ID }} + app-private-key: ${{ secrets.APP_RELEASE_PRIVATE_KEY }}