default_install_hook_types: ["pre-commit", "pre-push"] exclude: > (?x)( LICENSE$| \.snap$| \.map$| \.map\.js$| ^src/sentry/static/sentry/vendor/| ^src/.*/locale/| ^src/sentry/data/ ) repos: # Many of these hooks are local because people use a variety of IDEs # with autoformatters that need to call out to things like `black` directly. # pre-commit run is not the same, and something like pre-commit exec does # not exist yet. - repo: local hooks: - id: pyupgrade name: pyupgrade entry: pyupgrade args: ['--py38-plus', '--keep-runtime-typing'] language: system types: [python] # Configuration for black exists in pyproject.toml, # but we let pre-commit take care of the file filtering. - id: black name: black entry: black language: system types: [python] require_serial: true # Configuration for isort exists in pyproject.toml, # but we let pre-commit take care of the file filtering. - id: isort name: isort entry: isort language: system types: [python] # Configuration for flake8 exists in setup.cfg, # but we let pre-commit take care of the file filtering. - id: flake8 name: flake8 entry: flake8 language: system types: [python] log_file: '.artifacts/flake8.pycodestyle.log' - id: lint-requirements name: lint-requirements entry: python -m tools.lint_requirements language: python files: requirements-.*\.txt$ # exclude the overrides file from this linter -- it doesn't apply at all exclude: ^requirements-getsentry-overrides\.txt$ additional_dependencies: [packaging==21.3] - id: check-mypy-bypass name: do not bypass the type checker entry: '(^# *mypy: *ignore-errors|^# *type: *ignore|\bno_type_check\b)' language: pygrep types: [python] exclude: ^src/sentry/metrics/minimetrics.py$ - id: prevent-push name: prevent pushing master stages: [pre-push] entry: bash -c 'test "$PRE_COMMIT_REMOTE_BRANCH" != "refs/heads/master"' always_run: true pass_filenames: false language: system - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.10.0 hooks: - id: python-use-type-annotations - repo: https://github.com/python-jsonschema/check-jsonschema rev: 0.24.1 hooks: - id: check-github-actions - id: check-github-workflows args: [--verbose] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.3.0 hooks: - id: check-case-conflict - id: check-executables-have-shebangs - id: check-merge-conflict - id: check-symlinks - id: check-yaml - id: end-of-file-fixer exclude_types: [svg] exclude: ^fixtures/ - id: trailing-whitespace exclude_types: [svg] exclude: ^(fixtures/|scripts/patches/) - id: debug-statements - id: name-tests-test args: [--pytest-test-first]