name: Check PR Labels

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

permissions:
  pull-requests: read
  contents: read

jobs:
  check-label:
    runs-on: ubuntu-latest
    steps:
      - name: Check for PR labels
        uses: actions/github-script@v8
        with:
          script: |
            const labels = context.payload.pull_request.labels.map(label => label.name);
            const requiredLabels = ['bugfix', 'enhancement', 'hardware-support', 'dependencies', 'submodules', 'github_actions', 'trunk', 'cleanup'];
            const hasRequiredLabel = labels.some(label => requiredLabels.includes(label));
            if (!hasRequiredLabel) {
              core.setFailed(`PR must have at least one of the following labels before it can be merged: ${requiredLabels.join(', ')}.`);
            }
