Skip to content

Instantly share code, notes, and snippets.

@metalg0su
Last active September 10, 2020 14:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metalg0su/b3505f82cbccae7d7495c8bcd9bb380f to your computer and use it in GitHub Desktop.
Save metalg0su/b3505f82cbccae7d7495c8bcd9bb380f to your computer and use it in GitHub Desktop.
python: git hooks
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
project_root=$(git rev-parse --show-toplevel)
echo "==linting=="
result=$(flake8 ${project_root})
if [ $? -eq 1 ]; then
echo "Lint failed."
echo ${result}
exit 1
fi
echo "==sorting imports=="
isort ${project_root}/src --check-only || exit 1
echo "==testing=="
result=$(pytest ${project_root})
if [ $? -eq 1 ]; then
echo "Test failed."
echo ${result}
exit 1
fi
echo ">>> Good to go."
exit 0
#!/bin/bash
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".
# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
branch="$(git rev-parse --abbrev-ref HEAD)"
echo "branch: ${branch}"
if echo ${branch} | grep -v "feature"; then
echo "no feature in here"
exit 0
fi
prefix="[$(echo ${branch} | cut -d "/" -f2)]"
commit_contents=$(cat ${COMMIT_MSG_FILE})
echo "${prefix} ${commit_contents}" > $1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment