name: lint-commits

on:
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
  cancel-in-progress: true

jobs:
  checkCommits:
    name: check commits
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
        with:
          fetch-depth: 0

      - name: Get list of commits
        run: |
          read PR_BASE PR_TIP < <(curl -L \
            -H "Accept: application/vnd.github.v3+json" \
            -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
            -H "X-GitHub-Api-Version: 2022-11-28" \
            ${{ github.event.pull_request.url }} | \
            tee /dev/stderr | \
            jq -r '"\(.base.sha) \(.head.sha)"' | \
            tee /dev/stderr)
            echo "PR_TIP=${PR_TIP}" >> "${GITHUB_ENV}"
            echo "PR_BASE=${PR_BASE}" >> "${GITHUB_ENV}"

      - name: Check commit prefixes
        run: |
          if [[ -z "${PR_TIP}" || -z "${PR_BASE}" ]]; then
              echo "::error title=invalid base and head:: Failed to retrieve base and head for Pull Request"
              # Fail workflow
              false
          fi
          START_MARKER='sync: Update libbpf submodule'
          END_MARKER='sync: Pull latest bpftool changes from kernel'
          declare -a PREFIXES=(
              "ci"
              "mirror"
          )

          misformed=0
          syncing=0
          while read commit ; do
              valid=1
              sha="${commit%% *}"
              object="${commit#* }"
              case "${object}" in
                  "${START_MARKER}")
                      syncing=1
                      ;;
                  "${END_MARKER}")
                      syncing=0
                      ;;
                  *)
                      if [[ "${syncing}" == 0 ]]; then
                          valid=0
                          for prefix in "${PREFIXES[@]}"; do
                              if [[ "${object}" =~ ^"${prefix}: " ]]; then
                                  valid=1
                                  break
                              fi
                          done
                      fi
                      ;;
              esac
              if [[ "${valid}" = 1 ]]; then
                  echo "::notice title=valid prefix::${sha} (\"${object}\") has a valid prefix"
              else
                  echo "::error title=invalid prefix::${sha} (\"${object}\") does not have a valid prefix"
                  misformed=$((misformed+1))
              fi
          done < <(git log --format='%h %s' --reverse ${{ env.PR_BASE }}..${{ env.PR_TIP }})

          echo "::notice ::Found ${misformed} invalid commit object(s)"
          if [[ "${misformed}" != 0 ]]; then
              echo "Please ensure all commits not part of kernel sync are prefixed with one of:"
              echo "    ${PREFIXES[@]/%/:}"
              # Fail workflow
              false
          fi
