mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 14:25:08 +00:00
- mypy.ini parses again (multi-line exclude and inline value comments made mypy reject the file); the mypy pre-commit hook is manual-only until the ~500 existing errors in src/ are paid down, and CONTRIBUTING says so - .gitignore: ignore all of config/ except the templates (ytm_auth.json and others weren't ignored) - .gitattributes: LF for .sh and .service - claude-code-review: skip fork PRs, which have no secrets - check_system_compatibility.sh: 3.13 supported, <3.10 an error - docs/scripts drift: emulator guide, README API Metrics, route count, docs index, scripts README; pyflakes nits in dev scripts Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
# Pre-commit hooks for LEDMatrix
|
|
# Install: pip install pre-commit && pre-commit install
|
|
# Run manually: pre-commit run --all-files
|
|
|
|
repos:
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v4.5.0
|
|
hooks:
|
|
- id: trailing-whitespace
|
|
- id: end-of-file-fixer
|
|
- id: check-yaml
|
|
- id: check-json
|
|
- id: check-added-large-files
|
|
args: ['--maxkb=1000']
|
|
- id: check-merge-conflict
|
|
|
|
- repo: https://github.com/PyCQA/flake8
|
|
rev: 7.0.0
|
|
hooks:
|
|
- id: flake8
|
|
args: ['--select=E9,F63,F7,F82,B', '--ignore=E501']
|
|
additional_dependencies: [flake8-bugbear]
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: no-bare-except
|
|
name: Check for bare except clauses
|
|
entry: bash -c 'if grep -rn "except:\s*pass" src/; then echo "Found bare except:pass - please handle exceptions properly"; exit 1; fi'
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
|
|
- id: no-hardcoded-paths
|
|
name: Check for hardcoded user paths
|
|
entry: bash -c 'if grep -rn "/home/chuck/" src/; then echo "Found hardcoded user paths - please use relative paths or config"; exit 1; fi'
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
|
|
# Manual only: src/ still has ~500 type errors, so running this on every
|
|
# commit would block every contributor. Run it with
|
|
# pre-commit run mypy --hook-stage manual
|
|
# and don't add new errors in the files you touch. mypy.ini's `files = src`
|
|
# is what gives it a target, since pass_filenames is off.
|
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
rev: v1.8.0
|
|
hooks:
|
|
- id: mypy
|
|
additional_dependencies: [types-requests, types-pytz]
|
|
args: [--ignore-missing-imports, --no-error-summary]
|
|
pass_filenames: false
|
|
files: ^src/
|
|
stages: [manual]
|
|
|
|
- repo: https://github.com/PyCQA/bandit
|
|
rev: 1.8.3
|
|
hooks:
|
|
- id: bandit
|
|
args:
|
|
- '-r'
|
|
- '-ll'
|
|
- '-c'
|
|
- 'bandit.yaml'
|
|
- '-x'
|
|
- './tests,./test,./venv,./.venv,./scripts/prove_security.py,./rpi-rgb-led-matrix-master'
|
|
|
|
- repo: https://github.com/gitleaks/gitleaks
|
|
rev: v8.24.3
|
|
hooks:
|
|
- id: gitleaks
|