| name: Check labels | |
| on: | |
| pull_request: | |
| types: [opened, reopened, labeled, unlabeled, synchronize] | |
| permissions: | |
| contents: read | |
| jobs: | |
| label-dnm: | |
| name: DO-NOT-MERGE | |
| if: github.repository_owner == 'python' | |
| runs-on: ubuntu-slim | |
| permissions: | |
| pull-requests: read | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Check there's no DO-NOT-MERGE | |
| uses: mheap/github-action-required-labels@23e10fde7e062233401931a0eece796cd9bf3177 # v5.6.0 | |
| with: | |
| mode: exactly | |
| count: 0 | |
| labels: | | |
| DO-NOT-MERGE | |
| label-reviews: | |
| name: Unresolved review | |
| if: github.repository_owner == 'python' | |
| runs-on: ubuntu-slim | |
| permissions: | |
| pull-requests: read | |
| 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@23e10fde7e062233401931a0eece796cd9bf3177 # v5.6.0 | |
| 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@23e10fde7e062233401931a0eece796cd9bf3177 # v5.6.0 | |
| 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@23e10fde7e062233401931a0eece796cd9bf3177 # v5.6.0 | |
| with: | |
| mode: exactly | |
| count: 1 | |
| labels: | | |
| awaiting merge | |
| message: >- | |
| This PR is labelled type-feature. All features require approval from a | |
| core team member before merge. Found: {{ applied }} |