# install the pre-commit hooks: # # ❯ pre-commit install --hook-type pre-commit # pre-commit installed at .git/hooks/pre-commit # # ❯ pre-commit install --hook-type pre-push # pre-commit installed at .git/hooks/pre-push # # run all linters like: # # ❯ pre-commit run --all-files # ruff-format..............................................................Passed # ruff.....................................................................Passed # mypy.....................................................................Passed # # run a single linter like: # # ❯ pre-commit run --all-files ruff # ruff.....................................................................Passed repos: - repo: local hooks: - id: ruff-format name: ruff format stages: [pre-commit, pre-push, manual] language: system entry: ruff args: - "format" - "--config" - ".github/ruff.toml" - "capa/" - "scripts/" - "tests/" - "web/rules/scripts/" always_run: true pass_filenames: false - repo: local hooks: - id: ruff name: ruff stages: [pre-commit, pre-push, manual] language: system entry: ruff args: - "check" - "--fix" - "--config" - ".github/ruff.toml" - "capa/" - "scripts/" - "tests/" - "web/rules/scripts/" always_run: true pass_filenames: false - repo: local hooks: - id: mypy name: mypy stages: [pre-push, manual] language: system entry: mypy args: - "--check-untyped-defs" - "--ignore-missing-imports" - "--config-file=.github/mypy/mypy.ini" - "capa/" - "scripts/" - "tests/" - "web/rules/scripts/" always_run: true pass_filenames: false - repo: local hooks: - id: deptry name: deptry stages: [pre-push, manual] language: system entry: deptry . always_run: true pass_filenames: false - repo: local hooks: - id: pytest-fast name: pytest (fast) stages: [manual] language: system entry: pytest args: - "tests/" - "--ignore=tests/test_binja_features.py" - "--ignore=tests/test_ghidra_features.py" - "--ignore=tests/test_viv_features.py" - "--ignore=tests/test_idalib_features.py" - "--ignore=tests/test_main.py" - "--ignore=tests/test_scripts.py" always_run: true pass_filenames: false