Skip to content

pre-commit에서 uv 사용하기

공식 pre-commit 훅은 astral-sh/uv-pre-commit에서 제공한다.

pyproject.toml 파일이 변경되었을 때 uv.lock 파일을 최신 상태로 유지하려면 .pre-commit-config.yaml에 다음 내용을 추가한다:

.pre-commit-config.yaml
repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv 버전
    rev: 0.6.2
    hooks:
      - id: uv-lock

requirements.txt 파일을 pre-commit을 통해 업데이트하려면:

.pre-commit-config.yaml
repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv 버전
    rev: 0.6.2
    hooks:
      - id: uv-export

pre-commit을 통해 요구 사항을 컴파일하려면 .pre-commit-config.yaml에 다음 내용을 추가한다:

.pre-commit-config.yaml
repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv 버전
    rev: 0.6.2
    hooks:
      # 요구 사항 컴파일
      - id: pip-compile
        args: [requirements.in, -o, requirements.txt]

다른 파일을 컴파일하려면 argsfiles를 수정한다:

.pre-commit-config.yaml
repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv 버전
    rev: 0.6.2
    hooks:
      # 요구 사항 컴파일
      - id: pip-compile
        args: [requirements-dev.in, -o, requirements-dev.txt]
        files: ^requirements-dev\.(in|txt)$

여러 파일에 동시에 훅을 실행하려면:

.pre-commit-config.yaml
repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    # uv 버전
    rev: 0.6.2
    hooks:
      # 요구 사항 컴파일
      - 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)$