diff --git a/.github/workflows/auto-review.yml b/.github/workflows/auto-review.yml new file mode 100644 index 0000000..cfb26f0 --- /dev/null +++ b/.github/workflows/auto-review.yml @@ -0,0 +1,48 @@ +# This is a single-maintainer project but I want to require reviews before +# merge, which means that I need a bot to review my own work. +name: Automatic pull request approvals +on: + pull_request_target: + types: + - opened + - reopened + - synchronize + - ready_for_review + check_suite: + types: + - completed +jobs: + auto-approve: + runs-on: ubuntu-latest + if: > + github.event.pull_request.head.repo.full_name == github.repository && + github.event.pull_request.draft == false && ( + github.event.action == 'opened' || + github.event.action == 'reopened' || + github.event.action == 'synchronize' + ) && ( + github.actor == 'jaqx0r' + ) + permissions: + # wait on check + checks: read + # create review + pull-requests: write + steps: + - uses: lewagon/wait-on-check-action@v1.1.1 + with: + ref: ${{ github.event.pull_request.head.sha }} + check-name: test + repo-token: ${{ github.token }} + wait-interval: 60 + + - uses: "actions/github-script@v5" + with: + github-token: ${{ github.token }} + script: | + await github.rest.pulls.createReview({ + event: "APPROVE", + owner: context.repo.owner, + pull_number: context.payload.pull_request.number, + repo: context.repo.repo, + })