add some hooks

This commit is contained in:
Quentin Rouland 2019-09-21 23:37:05 +02:00
parent c4c4567048
commit 786e5a2d03
3 changed files with 51 additions and 3 deletions

View File

@ -1,5 +1,3 @@
# GitHooks # GitHooks
# HookGit Some hooks for git
Some hooks for git

View File

@ -0,0 +1,23 @@
#!/bin/bash
COMMAND='flake8'
TEMPDIR=`mktemp -d`
while read oldrev newrev refname; do
files=`git diff --name-only ${oldrev} ${newrev}`
for file in ${files}; do
object=`git ls-tree --full-name -r ${newrev} | egrep "(\s)${file}\$" | awk '{ print $3 }'`
if [ -z ${object} ]; then continue; fi
mkdir -p "${TEMPDIR}/`dirname ${file}`" &> /dev/null
git cat-file blob ${object} > ${TEMPDIR}/${file}
done;
done
# Change the filename here if your flake8 configuration
# has a different name.
git show HEAD:tox.ini > ${TEMPDIR}/tox.ini
${COMMAND} ${TEMPDIR}
STATUS=$?
rm -rf ${TEMPDIR} &> /dev/null
echo status $STATUS
exit ${STATUS}

View File

@ -0,0 +1,27 @@
#!/bin/bash
check_commit() {
# check the log message for ticket number
message=`git log --format=%s -1 $1`
ticket=`echo "$message" | grep -o "TG-[0-9]\+"`
if [ "$ticket" = "" ] ; then
echo "The first line of the commit message $1 don't contain a Taiga issue number (TG-<issue number>)"
exit 1
fi
}
NULL_SHA1="0000000000000000000000000000000000000000" # 40 0's
new_list=
any_deleted=false
while read oldsha newsha refname; do
new_list="$new_list $newsha"
done
git rev-list $new_list --not --all |
while read sha1; do
objtype=$(git cat-file -t $sha1)
case $objtype in
commit) check_commit $sha1;;
esac
done