name: PR Lint on: pull_request: # By default, a workflow only runs when a pull_request's activity type is opened, synchronize, or reopened. We # explicity override here so that PR titles are re-linted when the PR text content is edited. # # Possible values: https://help.github.com/en/actions/reference/events-that-trigger-workflows#pull-request-event-pull_request types: [opened, edited, reopened, synchronize] # Serialize runs per PR without cancelling: the `edited` trigger means a PR # opened and then edited has two queued runs for the same head SHA. On # first-time-contributor PRs those runs start together when a maintainer # approves workflows, and cancel-in-progress lets the older run cancel the # newer one — leaving a permanently-cancelled required check on the head SHA # that blocks merging until manually re-run. This job takes seconds, so let # queued runs complete instead. concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} cancel-in-progress: false jobs: lint-check: runs-on: ubuntu-26.04 permissions: contents: read pull-requests: write steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false submodules: recursive - uses: ./.github/actions/pr-lint-action with: title-regex: "^(build|chore|ci|docs|feat|fix|perf|refactor|style|test|other)(\\(.+\\))?(\\!)?:\\s.+" on-failed-regex-fail-action: true on-failed-regex-request-changes: false on-failed-regex-create-review: false on-failed-regex-comment: "Please format your PR title to match: `%regex%`!" repo-token: "${{ github.token }}"