diff --git a/.commit-check.yml b/.commit-check.yml new file mode 100644 index 00000000000..b7fa3a27f2d --- /dev/null +++ b/.commit-check.yml @@ -0,0 +1,17 @@ +# format as outlined in https://github.com/commit-check/commit-check/blob/main/.commit-check.yml +# further information in https://github.com/commit-check/commit-check/blob/main/README.rst +checks: + - check: message + regex: '^OAK-\d+\s\S+.*' + error: "The commit message must start with 'OAK- ' followed by some descriptive text" + suggest: Please check your commit message whether it matches above regex + + - check: author_name + regex: ^[A-Za-z ,.\'-]+$|.*(\[bot]) + error: The committer name seems invalid + suggest: run command `git config user.name "Your Name"` + + - check: author_email + regex: ^.+@.+$ + error: The committer email seems invalid + suggest: run command `git config user.email yourname@example.com` \ No newline at end of file diff --git a/.github/workflows/commit-check.yml b/.github/workflows/commit-check.yml new file mode 100644 index 00000000000..c07b61b58f8 --- /dev/null +++ b/.github/workflows/commit-check.yml @@ -0,0 +1,32 @@ +name: Commit Check + +on: + pull_request: + branches: 'trunk' + +jobs: + commit-check: + runs-on: ubuntu-latest + permissions: # use permissions because of use pr-comments + contents: read + pull-requests: write + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} # checkout PR HEAD commit + fetch-depth: 0 # required for merge-base check + # https://github.com/commit-check + # must be pinned due to https://infra.apache.org/github-actions-policy.html + - uses: commit-check/commit-check-action@8d507e12899a9feb405c3ed546252ff9508724e0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # use GITHUB_TOKEN because of use pr-comments + with: + # check commit message formatting convention + message: true + branch: true + author-name: true + author-email: true + commit-signoff: false + merge-base: false + job-summary: true + pr-comments: ${{ github.event_name == 'pull_request' }}