Skip to main content

Hookmaster

Some nice git hooks for your pleasure.

Problem:

  • You have a policy where every commit message should mention the jira ticket it applies to. You have them in the branch name, and can't be arsed to type them manually to each commit message. Hookmaster provides you with a nice "default" commit message formatter in prepare-commit-msg hook.
  • You want to specify commands to run as different git hooks, in a file you share with your team in git.

Installation

uv tool install hookmaster

Usage

To add 'hookmaster' hooks to all projects under /my/path

hookmaster add /my/path

Now, you get a nice commit message hook that maps branch

/bugfixes/SOMETICKET-123-do-stuff

to

SOMETICKET-123: Do stuff

The hooks themselves relay the call to hookmaster, e.g. prepare-commit-msg hooks created by hookmaster looks like this:

#!/bin/sh
hookmaster prepare-commit-msg "$@"

This delegates the message creation to globally installed hookmaster application. This means fixes to hookmaster benefit all your repositories at once.

githooks.toml

For any other hooks, you can specify them in githooks.toml:

pre-commit = "python tasks.py format"
pre-post = "pytest"

# empty string does nothing in the hook
commit-msg = ""

The format should be obvious. The specified command will always be run in repository root.

The hook created by this will look like:

#!/bin/sh
hookmaster run pre-commit

The command hookmaster run will load the githooks.toml file, find the hook and run it. You can use command hookmaster run pre-commit to test the hook without actually committing anything.

Usig githooks.toml is optional, if you just want to get the commit message hook.

To easily initalize your repo with githooks.toml, run hookmaster init. It creates a sample githooks.toml and initializes the hooks. Edit the githooks.toml file to customize your hooks.

Release files for hookmaster 1.4.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hookmaster 1.4.5
File Size Uploaded
hookmaster-1.4.5.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hookmaster 1.4.5
File Interpreter ABI Platform
hookmaster-1.4.5-py3-none-any.whl Python 3 none any Details

Total release size: 11.5 kB

Release files / hookmaster-1.4.5.tar.gz

Download URL hookmaster-1.4.5.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ca39edf7300a32254643c3e3c3dd74a4b02038f6604d9ceaa6efb054e0bb222d
BLAKE2b-256 checksum
How to use checksums
d7ae820253c1e8b8e7bb9e60e479b9eb96b92152d21d4f27a3fb5fa68fc7b071
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.8

Release files / hookmaster-1.4.5-py3-none-any.whl

Download URL hookmaster-1.4.5-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2c20fd3c8623586f322514aee76da6332471b3a2e8c21dfee123d5d8a759ba61
BLAKE2b-256 checksum
How to use checksums
2552e2bf67e72edc384c9382aa05dc2eee4eaa740a685addc9e27ea2725fd2a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

1.4.5 This release

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page