uv/docs/guides/integration/pre-commit.md
Eva Müller df00189ec5
docs: Explicitly specify to add a new repo entry to the repos list item in the .pre-commit-config.yaml (#10243)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->

## Summary

When creating the `.pre-commit-config.yaml` from scratch, although
following https://pre-commit.com/, it might be easy to overlook that the
pre-commit repo examples need to be added below the `repos` list item to
get a valid `yaml` file.

Additionally, updated the version of the first two examples.

## Test Plan

I followed the `CONTRIBUTING.md` and the result looked fine.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-05-27 16:25:23 +00:00

2.1 KiB

title description
Using uv with pre-commit A guide to using uv with pre-commit to automatically update lock files, export requirements, and compile requirements files.

Using uv in pre-commit

An official pre-commit hook is provided at astral-sh/uv-pre-commit.

To use uv with pre-commit, add one of the following examples to the repos list in the .pre-commit-config.yaml.

To make sure your uv.lock file is up to date even if your pyproject.toml file was changed:

repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv version.
    rev: 0.7.8
    hooks:
      - id: uv-lock

To keep a requirements.txt file in sync with your uv.lock file:

repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv version.
    rev: 0.7.8
    hooks:
      - id: uv-export

To compile requirements files:

repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv version.
    rev: 0.7.8
    hooks:
      # Compile requirements
      - id: pip-compile
        args: [requirements.in, -o, requirements.txt]

To compile alternative requirements files, modify args and files:

repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv version.
    rev: 0.7.8
    hooks:
      # Compile requirements
      - id: pip-compile
        args: [requirements-dev.in, -o, requirements-dev.txt]
        files: ^requirements-dev\.(in|txt)$

To run the hook over multiple files at the same time, add additional entries:

repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv version.
    rev: 0.7.8
    hooks:
      # Compile requirements
      - id: pip-compile
        name: pip-compile requirements.in
        args: [requirements.in, -o, requirements.txt]
      - id: pip-compile
        name: pip-compile requirements-dev.in
        args: [requirements-dev.in, -o, requirements-dev.txt]
        files: ^requirements-dev\.(in|txt)$