diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..275c651 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,69 @@ +default_language_version: + python: python3.12 +repos: + # Apply a consistent format to pyproject.toml files. + # https://pyproject-fmt.readthedocs.io/en/latest/ + - repo: https://github.com/tox-dev/pyproject-fmt + rev: "1.6.0" + hooks: + - id: pyproject-fmt + + # Automatically add trailing commas to calls and literals. + - repo: https://github.com/asottile/add-trailing-comma + rev: v3.1.0 + hooks: + - id: add-trailing-comma + + # Some out-of-the-box hooks for pre-commit. + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: check-ast + - id: check-builtin-literals + - id: check-docstring-first + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: check-toml + - id: check-vcs-permalinks + - id: end-of-file-fixer + - id: mixed-line-ending + - id: name-tests-test + args: [--pytest-test-first] + - id: trailing-whitespace + args: [--markdown-linebreak-ext=md] + exclude_types: + - "html" + + # Automatically upgrade your Django project code + - repo: https://github.com/adamchainz/django-upgrade + rev: "1.15.0" + hooks: + - id: django-upgrade + args: [--target-version, "5.0"] + + # Run Pyupgrade on all Python files. This will upgrade the code to Python 3.12. + - repo: https://github.com/asottile/pyupgrade + rev: v3.15.0 + hooks: + - id: pyupgrade + args: ["--py312-plus"] + + # An extremely fast Python linter and formatter. + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.1.13 + hooks: + - id: ruff-format + - id: ruff + args: ["--fix", "--exit-non-zero-on-fix"] + + # Static checker for GitHub Actions workflow files. + - repo: https://github.com/rhysd/actionlint + rev: v1.6.26 + hooks: + - id: actionlint + + # Optimize .png files. + - repo: https://github.com/shssoichiro/oxipng + rev: v9.0.0 + hooks: + - id: oxipng