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:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v1.0.0
hooks:
- id: some-hook-id `
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'