name: Auto Merge on: workflow_run: workflows: ["CI"] types: [completed] jobs: auto-merge: runs-on: ubuntu-latest if: > github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' permissions: contents: write pull-requests: write steps: - name: Find and merge master → main PR env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | HEAD_BRANCH="${{ github.event.workflow_run.head_branch }}" echo "Workflow ran on branch: $HEAD_BRANCH" if [ "$HEAD_BRANCH" != "master" ]; then echo "Not a master branch PR, skipping" exit 0 fi PR_NUMBER=$(gh pr list \ --repo "$GITHUB_REPOSITORY" \ --base main \ --head master \ --state open \ --json number \ --jq '.[0].number') if [ -z "$PR_NUMBER" ]; then echo "No open PR from master to main found, skipping" exit 0 fi echo "Merging PR #$PR_NUMBER" gh pr merge "$PR_NUMBER" \ --repo "$GITHUB_REPOSITORY" \ --merge \ --delete-branch=false