All checks were successful
Deploy / changes (push) Successful in 7s
Deploy / build-frontend (push) Has been skipped
Deploy Trade-In / changes (push) Successful in 11s
Deploy / deploy-caddy (push) Has been skipped
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy / build-backend (push) Successful in 3m57s
Deploy Trade-In / test (push) Successful in 4m5s
Deploy / build-worker (push) Successful in 4m59s
Deploy Trade-In / build-backend (push) Successful in 1m53s
Deploy / deploy (push) Successful in 1m58s
Deploy / deploy-status (push) Successful in 1s
Deploy / perimeter-smoke (push) Successful in 11s
Deploy Trade-In / deploy (push) Successful in 2m27s
Deploy Trade-In / deploy-status (push) Successful in 1s
Deploy Trade-In / perimeter-smoke (push) Successful in 9s
55 lines
2.6 KiB
YAML
55 lines
2.6 KiB
YAML
# Local pre-commit hooks. Install once with:
|
||
# pip install pre-commit
|
||
# pre-commit install
|
||
#
|
||
# After install: every `git commit` runs these checks against staged files.
|
||
# Failures abort the commit.
|
||
|
||
repos:
|
||
# Generic hygiene
|
||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||
rev: v4.6.0
|
||
hooks:
|
||
- id: trailing-whitespace
|
||
- id: end-of-file-fixer
|
||
- id: check-yaml
|
||
exclude: ^backend/alembic/script.py.mako$
|
||
- id: check-toml
|
||
- id: check-added-large-files
|
||
args: ["--maxkb=512"]
|
||
# #1966: the frozen backtest regression-gate fixture is gzipped prod
|
||
# inputs (~3 MB). It is re-extracted rarely (only when ground-truth
|
||
# refreshes), so it does not bloat history per estimator change — the
|
||
# per-change artifact is the 3 KB backtest_baseline.json.
|
||
exclude: ^tradein-mvp/backend/tests/fixtures/backtest_full_fixture\.json\.gz$
|
||
- id: check-merge-conflict
|
||
- id: detect-private-key
|
||
|
||
# Python — ruff (lint + format) on backend/ + tradein-mvp/backend/
|
||
# #2864: rev ОБЯЗАН совпадать с версией ruff в backend/uv.lock и tradein-mvp/uv.lock
|
||
# (гейт backend/tests/test_2864_ruff_version_alignment.py). Иначе хук и
|
||
# `uv run ruff format` форматируют по-разному и играют в пинг-понг на каждом коммите.
|
||
# Бампить втроём: rev здесь + `ruff==X` в обоих pyproject.toml + `uv lock` в backend/ и tradein-mvp/.
|
||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||
rev: v0.15.20
|
||
hooks:
|
||
- id: ruff
|
||
args: [--fix]
|
||
files: ^(backend|tradein-mvp/backend)/
|
||
- id: ruff-format
|
||
files: ^(backend|tradein-mvp/backend)/
|
||
|
||
# Frontend — prettier on TS/TSX/JSON.
|
||
# additional_dependencies pins the EXACT prettier engine (3.9.0) so this hook
|
||
# and CI (`openapi-codegen-check` → ./node_modules/.bin/prettier, also 3.9.0
|
||
# via frontend/package.json) format byte-for-byte identically. Без явного pin
|
||
# mirrors-prettier@v4.0.0-alpha.8 тянет CLI-обёртку, а CI `npx prettier`
|
||
# плавает в latest → расхождение формата → codegen-gate RED. Меняешь версию
|
||
# здесь — синхронно меняй prettier в frontend/package.json + lockfile.
|
||
- repo: https://github.com/pre-commit/mirrors-prettier
|
||
rev: v4.0.0-alpha.8
|
||
hooks:
|
||
- id: prettier
|
||
additional_dependencies: ["prettier@3.9.0"]
|
||
files: ^frontend/.*\.(ts|tsx|js|jsx|json|css|md)$
|
||
exclude: ^frontend/(node_modules|\.next|package-lock\.json)/
|