name: Lint Commit Messages
on:
  pull_request:
    types:
      - opened
      - edited
      - reopened
      - synchronize

concurrency:
  group: commitlint-${{ github.ref }}
  cancel-in-progress: true

jobs:
  commit-lint:
    runs-on: ubuntu-latest
    permissions:
      issues: read
      pull-requests: write
      contents: read
    steps:
      - name: Checkout code
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - name: Use Node.js
        uses: actions/setup-node@v5

      - name: Check for DONTMERGE
        run: |
          result=$(find . \
            -type f \
            ! -path './.github/workflows/commit-lint.yml' \
            ! -name '*.snap' \
            -exec grep -Hn 'DONTMERGE' {} \;)
          if [[ ! -z "$result" ]]; then
            echo "$result"
            exit 1
          fi
      - uses: nearform-actions/github-action-check-linked-issues@v1
        id: check-linked-issues
        if: false
        with:
          exclude-branches: 'release/**, dependabot/**, project-common/**'
          loose-matching: true
      - name: Install commitlint
        run: |
          npm install --save-dev @commitlint/{config-conventional,cli}
      - name: Lint commits
        run: |
          npx commitlint --from=origin/main --to=HEAD --config ./.github/workflows/configs/commitlint.config.js
