Automated Dependency Updates for pre-commit (original) (raw)

Categories: python

Renovate supports updating pre-commit dependencies.

Enabling

pre-commit functionality is currently in beta testing, so you must opt-in to test it. To enable it, add a configuration like this to either your bot config or your renovate.json:

{ "pre-commit": { "enabled": true } }

If you find any bugs, please create a new discussion first. If you find that it works well, then let us know too.

File Matching

By default, Renovate will check any files matching the following regular expression: /(^|/)\.pre-commit-config\.ya?ml$/.

For details on how to extend a manager's managerFilePatterns value, please follow this link.

Supported datasources

This manager supports extracting the following datasources: github-tags, gitlab-tags.

Dependency types

This manager extracts the following depType values:

depType Description
repository Pre-commit hook repository reference
pre-commit-node Node.js additional dependency for a pre-commit hook
pre-commit-python Python additional dependency for a pre-commit hook
pre-commit-golang Go additional dependency for a pre-commit hook

Default config

{ "commitMessageTopic": "pre-commit hook {{depName}}", "enabled": false, "managerFilePatterns": [ "/(^|/)\\.pre-commit-config\\.ya?ml$/" ], "prBodyNotes": [ "Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://github.com/renovatebot/renovate/discussions/new) if you have any questions." ] }

Additional Information

Important note: The pre-commit manager is disabled by default and must be opted into through config. Renovate's approach to version updating is not fully aligned with pre-commit autoupdate and this has caused frustration for pre-commit's creator/maintainer. Attempts to work with the pre-commit project to fix these gaps have been rejected, so we have chosen to disable the manager by default indefinitely. Please do not contact the pre-commit project/maintainer about any Renovate-related topic. To view a list of open issues related to the pre-commit manager in Renovate, see the filtered list using the manager:pre-commit label.

When enabled, Renovate supports updating of Git dependencies within pre-commit configuration .pre-commit-config.yaml files or other YAML files that use the same format (via managerFilePatterns configuration). Updates are performed if the files follow the conventional format used in typical pre-commit files:

`repos:

To enable the pre-commit manager, add the following config:

{ "pre-commit": { "enabled": true } }

Alternatively, add :enablePreCommit to your extends array.

Additional Dependencies

Renovate has partial support for additional_dependencies, currently Go, Node.js and Python only.

You will need to explicitly add the language to your hooks with additional_dependencies to let Renovate know what kind of dependencies they are.

Examples for the supported languages are listed below.

Go

- repo: https://github.com/rhysd/actionlint rev: v1.7.7 hooks: - id: actionlint language: golang additional_dependencies: - 'github.com/wasilibs/go-shellcheck/cmd/shellcheck@v0.10.0'

Node.js

- repo: https://github.com/pre-commit/mirrors-prettier rev: v3.1.0 hooks: - id: prettier language: node additional_dependencies: - '@trivago/prettier-plugin-sort-imports@^5.2.2' - prettier@^3.6.2

Python

- repo: https://github.com/psf/black rev: 19.3b0 hooks: - id: black language: python additional_dependencies: - 'requests==1.1.1'