name: Require Review on: pull_request: types: [opened, synchronize, reopened, review_requested] pull_request_review: types: [submitted, dismissed] jobs: check-approval: runs-on: ubuntu-latest steps: - uses: actions/github-script@v7 with: script: | const reviews = await github.rest.pulls.listReviews({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number }); const approved = reviews.data.some(r => r.state === 'APPROVED'); if (!approved) { core.setFailed('❌ PR requires at least one approval'); }