1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2020, Intel Corporation
#
# Used to check whether all the commit messages in a pull request
# follow the GIT/RPMA guidelines.
#
# usage: ./check-commit.sh commit
#
if [ -z "$1" ]; then
echo "Usage: check-commit.sh commit-id"
exit 1
fi
echo "Checking $1"
subject=$(git log --format="%s" -n 1 $1)
if [[ $subject =~ ^Merge.* ]]; then
# skip
exit 0
fi
if [[ $subject =~ ^Revert.* ]]; then
# skip
exit 0
fi
# valid area names
AREAS="rpma\|test\|tools\|examples\|doc\|common"
prefix=$(echo $subject | sed -n "s/^\($AREAS\)\:.*/\1/p")
if [ "$prefix" = "" ]; then
echo "FAIL: subject line in commit message does not contain valid area name"
echo
`dirname $0`/check-area.sh $1
exit 1
fi
commit_len=$(git log --format="%s%n%b" -n 1 $1 | wc -L)
if [ $commit_len -gt 73 ]; then
echo "FAIL: commit message exceeds 72 chars per line (commit_len)"
echo
git log -n 1 $1 | cat
exit 1
fi
|