name: Check labels on: pull_request: types: [opened, reopened, labeled, unlabeled, synchronize] permissions: issues: write pull-requests: write jobs: label-dnm: name: DO-NOT-MERGE if: github.repository_owner == 'python' runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Check there's no DO-NOT-MERGE uses: mheap/github-action-required-labels@v5 with: mode: exactly count: 0 labels: | DO-NOT-MERGE label-reviews: name: Unresolved review if: github.repository_owner == 'python' runs-on: ubuntu-latest timeout-minutes: 10 steps: # Check that the PR is not awaiting changes from the author due to previous review. - name: Check there's no required changes uses: mheap/github-action-required-labels@v5 with: mode: exactly count: 0 labels: | awaiting changes awaiting change review - id: is-feature name: Check whether this PR is a feature (contains a "type-feature" label) uses: mheap/github-action-required-labels@v5 with: mode: exactly count: 1 labels: | type-feature exit_type: success # don't fail the check if the PR is not a feature, just record the result # In case of a feature PR, check for a complete review (contains an "awaiting merge" label). - id: awaiting-merge if: steps.is-feature.outputs.status == 'success' name: Check for complete review uses: mheap/github-action-required-labels@v5 with: mode: exactly count: 1 labels: | awaiting merge