forked from phoenix-oss/llama-stack-mirror
# What does this PR do? Add several new pre-commit hooks to improve code quality and security: - no-commit-to-branch: prevent direct commits to protected branches like `main` - check-yaml: validate YAML files - detect-private-key: prevent accidental commit of private keys - requirements-txt-fixer: maintain consistent requirements.txt format and sorting - mixed-line-ending: enforce LF line endings to avoid mixed line endings - check-executables-have-shebangs: ensure executable scripts have shebangs - check-json: validate JSON files - check-shebang-scripts-are-executable: verify shebang scripts are executable - check-symlinks: validate symlinks and report broken ones - check-toml: validate TOML files mainly for pyproject.toml The respective fixes have been included. Signed-off-by: Sébastien Han <seb@redhat.com>
112 lines
3.1 KiB
YAML
112 lines
3.1 KiB
YAML
exclude: 'build/'
|
|
|
|
default_language_version:
|
|
python: python3
|
|
|
|
repos:
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v5.0.0 # Latest stable version
|
|
hooks:
|
|
- id: check-merge-conflict
|
|
args: ['--assume-in-merge']
|
|
- id: trailing-whitespace
|
|
exclude: '\.py$' # Exclude Python files as Ruff already handles them
|
|
- id: check-added-large-files
|
|
args: ['--maxkb=1000']
|
|
- id: end-of-file-fixer
|
|
exclude: '^(.*\.svg)$'
|
|
- id: no-commit-to-branch
|
|
- id: check-yaml
|
|
args: ["--unsafe"]
|
|
- id: detect-private-key
|
|
- id: requirements-txt-fixer
|
|
- id: mixed-line-ending
|
|
args: [--fix=lf] # Forces to replace line ending by LF (line feed)
|
|
- id: check-executables-have-shebangs
|
|
- id: check-json
|
|
- id: check-shebang-scripts-are-executable
|
|
- id: check-symlinks
|
|
- id: check-toml
|
|
|
|
- repo: https://github.com/Lucas-C/pre-commit-hooks
|
|
rev: v1.5.4
|
|
hooks:
|
|
- id: insert-license
|
|
files: \.py$|\.sh$
|
|
args:
|
|
- --license-filepath
|
|
- docs/license_header.txt
|
|
|
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
rev: v0.9.4
|
|
hooks:
|
|
- id: ruff
|
|
args: [ --fix ]
|
|
exclude: ^llama_stack/strong_typing/.*$
|
|
- id: ruff-format
|
|
|
|
- repo: https://github.com/adamchainz/blacken-docs
|
|
rev: 1.19.0
|
|
hooks:
|
|
- id: blacken-docs
|
|
additional_dependencies:
|
|
- black==24.3.0
|
|
|
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
rev: 0.6.3
|
|
hooks:
|
|
- id: uv-lock
|
|
- id: uv-export
|
|
args: [
|
|
"--frozen",
|
|
"--no-hashes",
|
|
"--no-emit-project",
|
|
"--output-file=requirements.txt"
|
|
]
|
|
|
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
rev: v1.15.0
|
|
hooks:
|
|
- id: mypy
|
|
additional_dependencies:
|
|
- uv==0.6.2
|
|
- mypy
|
|
- pytest
|
|
- rich
|
|
- types-requests
|
|
- pydantic
|
|
pass_filenames: false
|
|
|
|
# - repo: https://github.com/tcort/markdown-link-check
|
|
# rev: v3.11.2
|
|
# hooks:
|
|
# - id: markdown-link-check
|
|
# args: ['--quiet']
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: distro-codegen
|
|
name: Distribution Template Codegen
|
|
additional_dependencies:
|
|
- uv==0.6.0
|
|
entry: uv run --extra codegen ./scripts/distro_codegen.py
|
|
language: python
|
|
pass_filenames: false
|
|
require_serial: true
|
|
files: ^llama_stack/templates/.*$|^llama_stack/providers/.*/inference/.*/models\.py$
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: openapi-codegen
|
|
name: API Spec Codegen
|
|
additional_dependencies:
|
|
- uv==0.6.2
|
|
entry: sh -c 'uv run --with ".[dev]" ./docs/openapi_generator/run_openapi_generator.sh > /dev/null'
|
|
language: python
|
|
pass_filenames: false
|
|
require_serial: true
|
|
files: ^llama_stack/apis/|^docs/openapi_generator/
|
|
|
|
ci:
|
|
autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
|
|
autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate
|