Files
renovate/lib/modules/manager/pre-commit
Robin Helgelin 2b4c0a2f4a feat(manager/pre-commit): add support digest updating (#36693)
* Successfully extract digest and versions

* Fix linting issues

* - Fix tests
- Added replaceString

* Don't add digest on failures

* Fix return thingie

* Wrap expression in regEx()

* - forEach -> for-of
- Add test file in codeBlock instead

* Fix eslint errors

* Fix

* Lint fixes

* Fixed any typing and isstring comparisson

* Replace yaml comment extraction with regexp step

* Apply suggestion from @viceice

* Apply suggestion from @viceice

---------

Co-authored-by: Rhys Arkins <rhys@arkins.net>
Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-02-17 10:49:45 +00:00
..

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'