Pre-commit app hooks.
Project description
Some useful (more or less) git hooks.
Hooks
check-commit-msg
It provides a simple regex check on commit message.
Supported message header formats:
[type]: [description]
[type]([context]): [description]
[type] #[issue_id]: [description]
[type]([context]) #[issue_id]: [description]
Supported message format (if you need a longer commit message):
[header]
[message]
Here type is a specific commit type tag. Recognized types are:
'fix', # bugfix
'feat', 'feature', # feature
'wip', # work-in-progress changes (not ready to use)
'maint', 'maintenance', # code maintenance (dependences, configs)
'backport', # backport to an older branch
'test', 'tests', # code test related
'doc', 'docs', # documentation related
'style' # code style and minor refactoring
The context keyword is optional. It must be in round brackets if present. You may provide a module name or a service name or any project-specific information to localize the scope of a problem.
The issue_id must be prepended with # if present and it should match an bug report / feature request ID connected to this specific commit.
The description is just a short description of your commit. The maximum length of a description part of a header is 60 symbols.
You also can provide any additional information after the header.
Here are some examples:
fix: fixed possible connection drops in db
feat(cache): added multi-value caching
feature(db) #112: support for sqlalchemy v.2
Added sqlalchemy v.2 support in database services
incl. new table init engine and other bla-bla-bla...
<write text here>
Usage
Add it to your .pre-commit-config.yaml for pre-commit:
- repo: https://github.com/violet-black/hooks-vb
rev: 0.0.2
hooks:
- id: check-commit-msg
Also you can install the package via pip and run the hook from the CLI:
pip install hooks-vb
check-commit-msg my_project_dir
Options
–msg-fmt - different regex format
–categories - different list of type tags
add-version-tag
It automatically adds a version tag to a commit if the __version__ variable in __init__.py has changed and if there’s no such version tag exists in repo. Version tags are checked against PEP440
Examples:
1.0.0
1.2
1.1rc2
Usage
Add it to your .pre-commit-config.yaml for pre-commit:
- repo: https://github.com/violet-black/hooks-vb
rev: 0.0.2
hooks:
- id: add-version-tag
args: [ 'my_package' ]
Also you can install the package via pip and run the hook from the CLI:
pip install hooks-vb
add-version-tag my_project_dir
Options
–skip-tag - skip tagging and only validate a version against PEP440
–version-file - change version file location (__init__.py)
–version-var - change version variable name (__version__)
–remote - change default git remote name to pre-pull tags from (origin)
–branch - change default branch name (master)
publish-package
It will automatically build and publish a package on each version change. You will need a properly configured .pypirc for this. If a package with such version is already present in PyPI then it won’t be built. Version tags are checked against PEP440
Usage
Add it to your .pre-commit-config.yaml for pre-commit:
- repo: https://github.com/violet-black/hooks-vb
rev: 0.0.2
hooks:
- id: publish-package
args: [ 'my_package' ]
Also you can install the package via pip and run the hook from the CLI:
pip install hooks-vb
publish-package my_project_dir
Options
–package-name - alternative package name (package dir name by default)
–dist-type - package type (sdist or wheel)
–output - package storage dir (./dist)
–repository - alternative PyPI repository name (pypi)
–version-file - change version file location (__init__.py)
–version-var - change version variable name (__version__)
Development
You must setup the package in the dev mode and with dev dependencies. The script will automatically install pre-commit and pre-commit hooks for the repository.
git clone https://github.com/violet-black/hooks-vb.git
pip install -e .[dev]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file hooks_vb-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: hooks_vb-0.0.6-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41c2e59c4db680b632f64e133d38f1181b1c1c86e44409f9eb7ecf885918e0e2 |
|
MD5 | 15671a8a6214e368f76d50cd862b1ee6 |
|
BLAKE2b-256 | 41c267c2c65c14db31f519ab5e8d3d247b40b0b81577d95064f43742fa5855f6 |