Skip to content

Automated Dependency Updates for Pre Commit

Categories: no-category

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 fileMatch value, please follow this link.

Supported datasources

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

Default config

{
  "commitMessageTopic": "pre-commit hook {{depName}}",
  "enabled": false,
  "fileMatch": [
    "(^|/)\\.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 fileMatch 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.

Open items

The below list of features were current when this page was generated on April 26, 2024.

Feature requests

  • Extract and update default_language_version from .pre-commit-config.yaml #26205
  • Support digest pinning in pre-commit manager #22568
  • Support digest updating in pre-commit manager #22567
  • Renovate pre-commit addition dependencies #20780
  • Pre-commit minimum version and docker entry #11166