name: Test & auto merge

on:
  pull_request:
    branches: [ "master" ]

permissions:
  contents: read

jobs:
  tests:
    uses: ./.github/workflows/test.yaml
  auto_merge:
    name: Auto merge
    runs-on: ubuntu-latest
    needs: tests
    permissions:
      pull-requests: write
      contents: write
    if: >-
      github.event.pull_request
      && github.event.pull_request.merged == false
      && (
        github.event.pull_request.user.login == 'crocmagnon-pr[bot]'
        || github.event.pull_request.user.login == 'pre-commit-ci[bot]'
        || github.event.pull_request.user.login == 'dependabot[bot]'
      )
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Generate token
        uses: tibdex/github-app-token@v1
        id: generate-token
        with:
          app_id: ${{ secrets.PR_APP_ID }}
          private_key: ${{ secrets.PR_APP_PRIVATE_KEY }}
      - name: Auto merge
        run: GITHUB_TOKEN=${{ steps.generate-token.outputs.token }} gh pr merge ${{github.event.pull_request.number}} --delete-branch --rebase
