diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 0000000..e0b572d --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,35 @@ +name: Auto Merge + +on: + workflow_run: + workflows: + - Build + types: + - completed + +jobs: + auto-merge: + if: > + github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.event == 'pull_request' && + github.event.workflow_run.actor.login == 'scala-steward-gatling[bot]' + runs-on: ubuntu-latest + steps: + - name: Merge pull request + env: + GH_TOKEN: ${{ secrets.GATLING_CI_TOKEN }} + run: | + PR_NUMBER=$(gh api \ + "repos/${{ github.repository }}/pulls" \ + --jq "[.[] | select(.head.sha == \"${{ github.event.workflow_run.head_sha }}\") | .number] | first") + + if [ -z "$PR_NUMBER" ] || [ "$PR_NUMBER" = "null" ]; then + echo "No open PR found for commit ${{ github.event.workflow_run.head_sha }}" + exit 0 + fi + + echo "Auto-merging PR #$PR_NUMBER" + gh pr merge "$PR_NUMBER" \ + --repo "${{ github.repository }}" \ + --rebase \ + --delete-branch