name: Changelog

on:
  pull_request:
    types: [labeled, unlabeled, opened, synchronize, reopened]

# Only cancel in-progress jobs or runs for the current workflow
#   This cancels the already triggered workflows for a specific PR without canceling
#   other instances of this workflow (other PRs, scheduled triggers, etc) when something
#   within that PR re-triggers this CI
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  changelog:
    name: Confirm changelog entry
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Grep for PR number in CHANGES.rst
        run: grep -P '\[[^\]]*#${{github.event.number}}[,\]]' CHANGES.rst
        if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-changelog-entry-needed') }}
