| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- name: Run gitlint
- on: [pull_request]
- jobs:
- run_gitlint:
- runs-on: ubuntu-20.04
- steps:
- - name: Checkout source code
- uses: actions/checkout@master
- - name: Install gitlint
- run: |
- sudo apt-get update
- sudo apt install gitlint
- - name: Set auth header
- if: endsWith(github.repository, 'enterprise')
- run: |
- echo 'AUTH_HEADER<<EOF' >> $GITHUB_ENV
- echo "Authorization: token ${{ secrets.CI_GIT_TOKEN }}" >> $GITHUB_ENV
- echo 'EOF' >> $GITHUB_ENV
- - name: Run gitlint
- shell: bash
- run: |
- pr_number=$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')
- messages="$(curl --silent --show-error \
- --header "${{ env.AUTH_HEADER }}" \
- --header "Accept: application/vnd.github.v3+json" \
- "https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/${pr_number}/commits")"
- len=$(echo $messages | jq length)
- result=true
- for i in $( seq 0 $(($len - 1)) ); do
- message=$(echo $messages | jq -r .[$i].commit.message)
- echo "commit message: $message"
- status=0
- echo $message | gitlint -C ./.github/workflows/.gitlint || status=$?
- if [ $status -ne 0 ]; then
- result=false
- fi
- done
- if ! ${result} ; then
- echo "Some of the commit messages are not structured as The Conventional Commits specification. Please check CONTRIBUTING.md for our process on PR."
- exit 1
- fi
- echo "success"
|