A utility which detects direct checkins on specific branches.
Project description
detect-direct-checkins
Overview
The detect-direct-checkins
utility can be used to detect non-merge commits on given branches in a Git repository. It
can be run as a pre-commit framework hook.
Example Usage
Command line tool
detect-direct-checkins
is available on PyPI for Python 3.5+ and can be installed with pip
:
python3 -m pip install detect-direct-checkins
If you use Arch Linux or one of its derivatives, you can also install detect-direct-checkins
from the
AUR:
yay -S python-detect-direct-checkins
You also find self-contained executables for 64-bit Linux distributions and macOS High Sierra and newer on the releases page. They are created with PyInstaller and only require glibc >= 2.17 on Linux (should be fine on any recent Linux system).
After the installation, switch your working directory to a Git repository you would like to check and run
detect-direct-checkins --branch release --allow-root
to check a branch release
for non-merge commits (but ignore initial root commits without parents).
Usage as a pre-commit hook
Add
- repo: https://github.com/IngoMeyer441/detect-direct-checkins
rev: 0.1.2
hooks:
- id: detect-direct-checkins
- args: ['--branch=release', '--allow-root']
to your .pre-commit-config.yaml
to detect direct checkins to a branch release
. The --allow-root
switch ignores
root commits (initial commits without parents).
The --branch
argument can be given multiple times to check more than one branch.
This check is a post-commit
check, so make sure to install the pre-commit framework as a post-commit
hook:
pre-commit install --hook-type post-commit
I recommend to set default_stages: ['commit']
in your .pre-commit-config.yaml
. Otherwise, most checks will run
twice (in the pre-commit
and post-commit
stage).
Important note: Since this is a post-commit
hook, this check will not avoid the creation of disallowed
commits. It only tells you that a disallowed commit has been created. However, you can run
pre-commit run --hook-type post-commit
as part of your CI pipeline to enforce this check. Direct-checkins to protected branches will cause this check to fail in a CI job.
Options
These options are supported:
--branch
: Branch which must only contain merge commits, can be given multiple times.--ignore
: Commit hashes which will be ignored, can be given multiple times--allow-root
: Allow root commits (commits without parents).
Contributing
Please open an issue on GitHub if you experience bugs or miss features. Please consider to send a pull request if you can spend time on fixing the issue yourself. This project uses pre-commit itself to ensure code quality and a consistent code style. Run
make git-hooks-install
to install all linters as Git hooks in your local clone of detect-direct-checkins
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for detect-direct-checkins-0.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13714b148f8d6be958cb99c737ab71efb9652f006178b5314500e53c504c6831 |
|
MD5 | a0e2074b24c0a63b71503e352f251a8c |
|
BLAKE2b-256 | 80e68a8d71b6838060c680ae09aab0126401b2c14478904e38f8b6ae8d146702 |
Hashes for detect_direct_checkins-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10163ae168adcbd8c2b519671c3f87bb03495e75c9f6e2c8e1d280aa1cb0f5a7 |
|
MD5 | f1eb9c25aa5c77d6acdcc2690991d6ee |
|
BLAKE2b-256 | 4e8d332be3275f104274f53a6f1c335f9ae314c0ef2fad96e6165599c5318a12 |