repos: # General hooks for all files - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-merge-conflict - id: check-added-large-files - id: check-yaml - id: check-json - id: check-toml - id: mixed-line-ending # TOML linting - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks rev: v2.14.0 hooks: - id: pretty-format-toml args: [--autofix] # Python backend linting and formatting with ruff - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.6.9 hooks: # Linter - id: ruff args: [--fix] files: ^backend/ # Formatter - id: ruff-format files: ^backend/ # Python type checking with pyright - repo: https://github.com/RobertCraigie/pyright-python rev: v1.1.384 hooks: - id: pyright files: ^backend/ additional_dependencies: [fastapi, uvicorn, sqlalchemy, pydantic] # Frontend linting and formatting - repo: local hooks: # ESLint - id: eslint name: eslint entry: bash -c 'cd frontend && npm run lint:fix' language: system files: ^frontend/.*\.(js|ts|vue)$ pass_filenames: false # Prettier - id: prettier name: prettier entry: bash -c 'cd frontend && npm run format' language: system files: ^frontend/.*\.(js|ts|vue|json|css|scss|md)$ pass_filenames: false # TypeScript type checking - id: typescript-check name: typescript-check entry: bash -c 'cd frontend && npm run type-check' language: system files: ^frontend/.*\.(ts|vue)$ pass_filenames: false