Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

automatically prepend branch name in git commit message, useful when working with feature/branches and a jira for example

License

Notifications You must be signed in to change notification settings

Oppodelldog/git-commit-hook

Repository files navigation

Go Report Card License Linux build

git-commit-hook

configureable git commit hook

1. Install

Downlod the binary, put it into a folder of your $PATH (for example. /usr/local/bin).

Ensure your user has execution permissions on that file.

2. Configure

There are several places you can put the configuration.

Create a config file named git-commit-hook.yaml.

Create the configuration below your user folder:

/home/user/.config/git-commit-hook

 "project xyz":
   # path to the git repository
   path: "/home/nils/projects/xyz/.git"

   # define types of branch and a pattern to identify the type for the current branch you are working on
   branch:
      master: "^(origin\\/)*master"

   # define a commit message template per branch type, or as here for all (*) branch types
   template:
     "*": "{.BranchName}: {.CommitMessage}"

   # define validation rules per branch type
   validation:
      master:
        "^.*(#\\d*)+.*$" : must have a ticket reference (eg. #267)

Watch out the test fixture for full feature sample

3. Activate

Use the subcommand install to activate the commit-message-hook in your repository.

Sub-Commands

There are some useful subcommands which ease the use of the commit-message hook.

git-commit-hook install

Installs the commit-hook in the configured repositories.

You need to specify either -p or -a.

  • -p to install in the given repository (eg. -p "project xyz")
  • -a to install in all configured repositories

If there's already a commit-message-hook installed, you can overwrite by adding -f.

git-commit-hook uninstall

Uninstalls the commit-hook from the configured repositories.

You need to specify either -p or -a.

  • -p to uninstall from the given repository (eg. -p "project xyz")
  • -a to uninstall from all configured repositories

git-commit-hook diag

Gives an overview of the configuration and the installed commit hooks

git-commit-hook test

The test command is useful to test configuration and simulate a commit-situation.

You may input the following parameters:

  • -p project name
  • -b branch name
  • m commit message

Sample:

git-commit-hook test -m "short commit message" -b master -p testrepo

in this case, validation will fail, since it's required to give a ticket/issue reference in the commit message.

testing configuration '/home/nils/.config/git-commit-hook/git-commit-hook.yaml':
project        : testrepo
branch         : master
commit message : short commit message

validation error for branch 'master'
at least expected one of the following to match
 - must have a ticket reference (eg. #267)

If you pass a valid commit message

git-commit-hook test -m "fix #121" -b master -p testrepo

shows not validation errors, but shows the finally rendered message.

testing configuration '/home/nils/.config/git-commit-hook/git-commit-hook.yaml':
project        : testrepo
branch         : master
commit message : fix #121

would generate the following commit message:
fix #121

About

automatically prepend branch name in git commit message, useful when working with feature/branches and a jira for example

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.