mirror of
https://github.com/michaeldv/pit.git
synced 2025-12-09 16:05:35 +00:00
Added sample git commit hook
This commit is contained in:
52
tools/commit-msg
Executable file
52
tools/commit-msg
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Sample Pit integration hook.
|
||||||
|
#
|
||||||
|
# 1. Appends Pit task number to the commit message when you use
|
||||||
|
# task number as your git branch name.
|
||||||
|
#
|
||||||
|
# 2. Lets you specify task status and updates it in Pit accordingly.
|
||||||
|
#
|
||||||
|
# 3. Creates task note with the complete commit massage.
|
||||||
|
#
|
||||||
|
# Drop into .git/hooks/commit-msg
|
||||||
|
# chmod +x .git/hooks/commit-msg
|
||||||
|
|
||||||
|
pit="/usr/local/bin/pit"
|
||||||
|
exec < /dev/tty
|
||||||
|
|
||||||
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
||||||
|
branch=${ref#refs/heads/}
|
||||||
|
|
||||||
|
if [[ $branch =~ ^([0-9]+)$ ]]
|
||||||
|
then
|
||||||
|
pit_task=${BASH_REMATCH[1]}
|
||||||
|
|
||||||
|
echo "What is the status of task ${pit_task}?"
|
||||||
|
echo " (I)n progress"
|
||||||
|
echo " (P)ostponed"
|
||||||
|
echo " (O)pen"
|
||||||
|
echo " (D)one"
|
||||||
|
echo "Enter the status for task ${pit_task} [D]: "
|
||||||
|
read selection
|
||||||
|
|
||||||
|
status="done"
|
||||||
|
case $selection in
|
||||||
|
'i'|'I' )
|
||||||
|
status="in progress"
|
||||||
|
;;
|
||||||
|
'p'|'P' )
|
||||||
|
status="postponed"
|
||||||
|
;;
|
||||||
|
'o'|'O' )
|
||||||
|
status="open"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
commit="`grep -v "^#" $1`"
|
||||||
|
append="[task ${pit_task}, status:${status}]"
|
||||||
|
echo >&2 "$append" >> "$1"
|
||||||
|
"${pit}" task -e "${pit_task}" -s "${status}"
|
||||||
|
"${pit}" note -c "${commit} ${append}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user