name: Hold Label Check on: pull_request: types: [labeled, unlabeled, opened, reopened, synchronize] # cancel previous workflow jobs for PRs concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} cancel-in-progress: true jobs: check-hold-label: runs-on: ubuntu-latest steps: - name: Check for 'hold' label uses: actions/github-script@v7 with: github-token: ${{secrets.GITHUB_TOKEN}} script: | const payload = context.payload.pull_request const holdLabelPresent = !!payload.labels.find(label => label.name.includes('hold')) if (holdLabelPresent) { core.setFailed('Hold label is present, merge is blocked.') }