lcombs15 / git-hooks

Small, lightweight tool to ensure ticket numbers make it into your Git commit messages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

git-hooks

  codecov   GitHub tag (latest SemVer)

What is git-hooks?

Git hooks is a commit hook that works with git to make sure your issue, ticket, Jira, and story numbers make it to the commit message.

For example:

git checkout -b feature/GH-123-example-branch
...
# stage some work
...
git commit -m "Completed work and unit tests"
...
git log -n 1 --format=oneline
afb126992c7e780939ef9b931f38c2cb0c47f91f (HEAD -> feature/GH-123-example-branch) GH-123: Completed work and unit tests

Notice that the issue number, GH-123, was copied into the commit message.

Our hook can even handle the lack of a ticket:

git checkout -b need-this-yesterday
...
git commit -m "PROD FIX"
...
git log -n 1 --format=oneline
75d23ddd3a9bd613dde8bbe447fb6a45c7af0a3b (HEAD -> need-this-yesterday) NOGH: PROD FIX

How do I install?

Visit our releases to download the most recent binary.

Setup a central git hooks directory:

  • Windows users can use: C:\Users\<you>\.githooks\
cd ~
mkdir .githooks
git config --global core.hooksPath ~/.githooks

In the zip you downloaded from releases, you will find 3 folders:

  • Linux
  • Mac
  • Windows

Copy all files from the zip directory of your respective OS to: ~/.githooks

On Linux & Mac, make the hook executable:

chmod +x ~/.githooks/commit-msg

Lastly, edit this config file to your liking:

~/.githooks/commit-msg-config.yml

If you run into issues

  • The hook is not being triggered

    • Check your core.hooksPath - this setting can be --global or by repository. Check this first.
  • The hook is having a runtime error

    • Please submit an issue with the terminal output you received here with as much detail as possible.

Development details

For Mac, you must install some dependencies via brew. Simply run os_specific_requirements.py and you'll be good to go!

About

Small, lightweight tool to ensure ticket numbers make it into your Git commit messages

License:MIT License


Languages

Language:Python 100.0%