PyPI Python Versions PyPI Latest Version PyPI Distribution Format

flowtool-githooks

Some functionality to use granular git hooks.

The main concept behind flowtool-githooks is, that instead of running one single hook script the package will ‘run’ a directory instead. The directory will be created right next to where the hook is in .git/hooks and it has the name of the hook plus .d. So for example the directory for the pre-commit hook is .git/hooks/pre-commit.d right next to the hook script: .git/hooks/pre-commit

flowtool-githooks ships the runner script and adds some commands to manage the content of the hook directories.

Scripts inside the hooks directory, .git/hooks/pre-commit.d and .git/hooks/commit-msg.d currently, are only executed, if the are executable. This is an old way of activating and deactivating the scripts by the management command.

Installation

Currently the flowtool-githooks package contains only the runner and the management commands. To get some pre configured hooks check the flowtool-githooks-demo package, and (for python-related hooks) flowtool-python.

Once you have flowtool-githooks and it’s requirements installed, you can run

flowtool githooks-install   # install the runner (asks before overwriting anything)

from inside a git repository to install the hooks. When they are installed, they can be configred interactively by running

flowtool githooks-config    # interactively configure git hooks (needs other hook-pkgs also)

And you can also just get the status of githooks in the current repo:

flowtool githooks-status

Custom hook scripts

Currently it is better supported to create symlinks in the hook directory. To introduce arbitrary scripts/executables as git hooks use the command:

$ flowtool githooks-introduce --hook <hook_name> /path/to/file
$ flowtool githooks-introduce --help  # might be helpful as well

More to come

There is also a small library of “discovery functions” contained in this package. It is used by some hook scripts to find files to take care of.