Skip to main content

hookmaster

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hookmaster-1.4.5.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hookmaster-1.4.5-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file hookmaster-1.4.5.tar.gz.

File metadata

  • Download URL: hookmaster-1.4.5.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for hookmaster-1.4.5.tar.gz
Algorithm Hash digest
SHA256 ca39edf7300a32254643c3e3c3dd74a4b02038f6604d9ceaa6efb054e0bb222d
MD5 db3395fafce5aab2c3a91157e28025c6
BLAKE2b-256 d7ae820253c1e8b8e7bb9e60e479b9eb96b92152d21d4f27a3fb5fa68fc7b071

See more details on using hashes here.

File details

Details for the file hookmaster-1.4.5-py3-none-any.whl.

File metadata

  • Download URL: hookmaster-1.4.5-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for hookmaster-1.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2c20fd3c8623586f322514aee76da6332471b3a2e8c21dfee123d5d8a759ba61
MD5 43a02f5b55594258f80db5901f119aae
BLAKE2b-256 2552e2bf67e72edc384c9382aa05dc2eee4eaa740a685addc9e27ea2725fd2a1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page