Simple CLI tool to check and update pre-commit hooks.
pre-commit-update is a simple CLI tool to check and update pre-commit hooks.
Table of contents
pre-commit is a nice little tool that helps you polish your code before releasing it into the wild.
It is fairly easy to use. A single
pre-commit-config.yaml file can hold multiple hooks (checks) that will go through
your code or repository and do certain checks. The trick is that file is static and once you pin your hook versions
after a while they get outdated.
pre-commit has a CLI that helps with that by making use of
pre-commit autoupdate command so the question is
why the f* are you reading this?
pre-commit-update was created mostly because there is no easy way to update your hooks by using
pre-commit autoupdate and avoiding non-stable (alpha, beta, ...) hook versions.
with a CLI that can be configured to solve that problem - along with other use cases.
Other than that - I was bored ^^
pre-commit-update is available on PyPI:
$ python -m pip install pre-commit-update
Python >= 3.7 is supported.
NOTE: Please make sure that
git is installed.
pre-commit-update CLI can be used as below:
Usage: pre-commit-update [OPTIONS] Options: -d, --dry-run Dry run only checks for the new versions without updating -a, --all-versions Include the alpha/beta versions when updating -v, --verbose Display the complete output -e, --exclude TEXT Exclude specific repo(s) by the `repo` url trim -k, --keep TEXT Keep the version of specific repo(s) by the `repo` url trim (still checks for the new versions) -h, --help Show this message and exit.
If you want to just check for updates (without updating
pre-commit-config.yaml), for example, you would use:
pre-commit-update -d OR pre-commit-update --dry-run
NOTE: If you are to use the
keep options, please pass the repo url trim as a parameter.
Keep in mind that if you have multiple hooks (id's) configured for a single repo and you
exclude that repo,
NONE of the hooks will be updated, whole repo will be excluded.
Example of repo url trim: https://github.com/ambv/black ->
black (you will only pass
black as a parameter to
Pipeline usage example
pre-commit-hooks-update: stage: update script: # install git if not present in the image - pip install pre-commit-update - pre-commit-update --dry-run except: - main when: manual allow_failure: true
NOTE: This is just an example, feel free to do your own configuration
pre-commit hook usage example
You can also use
pre-commit-update as a hook in your
- repo: https://gitlab.com/vojko.pribudic/pre-commit-update rev: v0.0.9 hooks: - id: pre-commit-update args: [--dry-run --exclude black --keep isort]
pyproject.toml usage example
You can configure
pre-commit-update in your
pyproject.toml as below (feel free to do your own configuration):
[tool.pre-commit-update] dry_run = true all_versions = false verbose = true exclude = ["isort"] keep = ["black"]
NOTE: If some of the options are missing (for example
will use default value for that option (default for
exclude option would be an empty list).
IMPORTANT If you invoke
pre-commit-update with any flags (e.g.
pyproject.toml configuration will be ignored. If you configure
you should only run
pre-commit-update (without any flags / arguments).
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for pre_commit_update-0.1.0-py3-none-any.whl