mirror of
https://github.com/mandiant/capa.git
synced 2025-12-12 15:49:46 -08:00
122 lines
3.3 KiB
YAML
122 lines
3.3 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: [commit, push]
|
||
language: system
|
||
entry: isort
|
||
args:
|
||
- "--length-sort"
|
||
- "--profile"
|
||
- "black"
|
||
- "--line-length=120"
|
||
- "--skip-glob"
|
||
- "*_pb2.py"
|
||
- "capa/"
|
||
- "scripts/"
|
||
- "tests/"
|
||
always_run: true
|
||
pass_filenames: false
|
||
|
||
- repo: local
|
||
hooks:
|
||
- id: black
|
||
name: black
|
||
stages: [commit, push]
|
||
language: system
|
||
entry: black
|
||
args:
|
||
- "--line-length=120"
|
||
- "--extend-exclude"
|
||
- ".*_pb2.py"
|
||
- "capa/"
|
||
- "scripts/"
|
||
- "tests/"
|
||
always_run: true
|
||
pass_filenames: false
|
||
|
||
- repo: local
|
||
hooks:
|
||
- id: ruff
|
||
name: ruff
|
||
# ruff is fast, so run during commit
|
||
stages: [commit, push]
|
||
language: system
|
||
entry: ruff
|
||
args:
|
||
- "check"
|
||
- "--config"
|
||
- ".github/ruff.toml"
|
||
- "capa/"
|
||
- "scripts/"
|
||
- "tests/"
|
||
always_run: true
|
||
pass_filenames: false
|
||
|
||
- repo: local
|
||
hooks:
|
||
- id: flake8
|
||
name: flake8
|
||
# flake8 is kinda slow, so only run upon push, or like:
|
||
#
|
||
# pre-commit run flake8 --hook-stage push
|
||
stages: [commit, push]
|
||
language: system
|
||
entry: flake8
|
||
args:
|
||
- "--max-line-length=120"
|
||
# E203: whitespace before ':' (black does this)
|
||
# F401: `foo` imported but unused (prefer ruff)
|
||
# F811 Redefinition of unused `foo` (prefer ruff)
|
||
# E501 line too long (prefer black)
|
||
# B010 Do not call setattr with a constant attribute value
|
||
# G200 Logging statement uses exception in arguments
|
||
- "--extend-ignore=E203,F401,F811,E501,B010,G200"
|
||
- "--extend-exclude"
|
||
- "capa/render/proto/capa_pb2.py"
|
||
- "capa/"
|
||
- "scripts/"
|
||
- "tests/"
|
||
always_run: true
|
||
pass_filenames: false
|
||
|
||
- repo: local
|
||
hooks:
|
||
- id: mypy
|
||
name: mypy
|
||
stages: [commit, push]
|
||
language: system
|
||
entry: mypy
|
||
args:
|
||
- "--check-untyped-defs"
|
||
- "--ignore-missing-imports"
|
||
- "--config-file=.github/mypy/mypy.ini"
|
||
- "capa/"
|
||
- "scripts/"
|
||
- "tests/"
|
||
always_run: true
|
||
pass_filenames: false
|