Files
obsidian-metadata/.pre-commit-config.yaml
2024-01-18 09:26:44 -05:00

137 lines
3.8 KiB
YAML

---
# https://pre-commit.com
default_install_hook_types: [commit-msg, pre-commit]
default_stages: [commit, manual]
fail_fast: true
repos:
- repo: "https://github.com/commitizen-tools/commitizen"
rev: v3.13.0
hooks:
- id: commitizen
- id: commitizen-branch
stages:
- post-commit
- push
- repo: "https://github.com/pre-commit/pygrep-hooks"
rev: v1.10.0
hooks:
- id: python-check-mock-methods
- id: python-no-eval
- id: python-no-log-warn
- id: python-use-type-annotations
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: "https://github.com/pre-commit/pre-commit-hooks"
rev: v4.5.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-builtin-literals
- id: check-case-conflict
- id: check-docstring-first
- id: check-json
exclude: .devcontainer/|.vscode/
- id: check-merge-conflict
- id: check-shebang-scripts-are-executable
- id: check-symlinks
- id: check-toml
exclude: broken_config_file\.toml
- id: check-vcs-permalinks
- id: check-xml
- id: check-yaml
- id: debug-statements
- id: detect-private-key
- id: fix-byte-order-marker
- id: mixed-line-ending
- id: trailing-whitespace
types: [python]
args: [--markdown-linebreak-ext=md]
- id: end-of-file-fixer
types: [python]
- repo: "https://github.com/adrienverge/yamllint.git"
rev: v1.33.0
hooks:
- id: yamllint
files: ^.*\.(yaml|yml)$
entry: yamllint --strict --config-file .yamllint.yml
- repo: "https://github.com/charliermarsh/ruff-pre-commit"
rev: "v0.1.13"
hooks:
- id: ruff
args: ["--extend-ignore", "I001,D301,D401"]
exclude: tests/
- repo: "https://github.com/jendrikseipp/vulture"
rev: "v2.10"
hooks:
- id: vulture
- repo: "https://github.com/crate-ci/typos"
rev: "v1.17.1"
hooks:
- id: typos
- repo: local
hooks:
# This calls a custom pre-commit script.
# Disable if you don't have it.
- id: stopwords
name: stopwords
entry: bash -c '~/bin/git-stopwords ${PWD}/"$@"'
language: system
pass_filenames: true
types: [text]
- id: black
name: black
entry: black
require_serial: true
language: system
types: [python]
- id: shellcheck
name: shellcheck
entry: shellcheck --check-sourced --severity=warning
language: system
types: [shell]
- id: poetry-check
name: poetry check
entry: poetry check
language: system
files: pyproject.toml
pass_filenames: false
- id: interrogate
name: interrogate check
entry: interrogate -c pyproject.toml src/
language: system
types: [python]
pass_filenames: false
- id: mypy
name: mypy
entry: mypy --config-file pyproject.toml
exclude: tests/
language: system
types: [python]
- id: pytest
name: pytest
entry: poe test
language: system
pass_filenames: false
files: |
(?x)^(
src/|
tests/|
poetry\.lock|
pyproject\.toml
)