mirror of
https://github.com/mandiant/capa.git
synced 2025-12-05 20:40:05 -08:00
146 lines
3.8 KiB
YAML
146 lines
3.8 KiB
YAML
# 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 liks:
|
||
#
|
||
# ❯ pre-commit run --all-files
|
||
# isort....................................................................Passed
|
||
# black....................................................................Passed
|
||
# ruff.....................................................................Passed
|
||
# flake8...................................................................Passed
|
||
# mypy.....................................................................Passed
|
||
#
|
||
# run a single linter like:
|
||
#
|
||
# ❯ pre-commit run --all-files isort
|
||
# isort....................................................................Passed
|
||
|
||
repos:
|
||
- repo: local
|
||
hooks:
|
||
- id: isort
|
||
name: isort
|
||
stages: [pre-commit, pre-push, manual]
|
||
language: system
|
||
entry: isort
|
||
args:
|
||
- "--length-sort"
|
||
- "--profile"
|
||
- "black"
|
||
- "--line-length=120"
|
||
- "--skip-glob"
|
||
- "*_pb2.py"
|
||
- "capa/"
|
||
- "scripts/"
|
||
- "tests/"
|
||
- "web/rules/scripts/"
|
||
always_run: true
|
||
pass_filenames: false
|
||
|
||
- repo: local
|
||
hooks:
|
||
- id: black
|
||
name: black
|
||
stages: [pre-commit, pre-push, manual]
|
||
language: system
|
||
entry: black
|
||
args:
|
||
- "--line-length=120"
|
||
- "--extend-exclude"
|
||
- ".*_pb2.py"
|
||
- "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"
|
||
- "--config"
|
||
- ".github/ruff.toml"
|
||
- "capa/"
|
||
- "scripts/"
|
||
- "tests/"
|
||
- "web/rules/scripts/"
|
||
always_run: true
|
||
pass_filenames: false
|
||
|
||
- repo: local
|
||
hooks:
|
||
- id: flake8
|
||
name: flake8
|
||
stages: [pre-push, manual]
|
||
language: system
|
||
entry: flake8
|
||
args:
|
||
- "--config"
|
||
- ".github/flake8.ini"
|
||
- "--extend-exclude"
|
||
- "capa/render/proto/capa_pb2.py,capa/features/extractors/binexport2/binexport2_pb2.py"
|
||
- "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_ida_features.py"
|
||
- "--ignore=tests/test_viv_features.py"
|
||
- "--ignore=tests/test_main.py"
|
||
- "--ignore=tests/test_scripts.py"
|
||
always_run: true
|
||
pass_filenames: false
|
||
|