# See https://pre-commit.com for more information # See https://pre-commit.ci for more information ci: # Attempts to use networking and fails at name resolution, local hook # skip: [bundler-audit, pylint, latexmk, exiftool] # Forĝejo/Gitea mirrors will autoclose pull requests. This should decrease # the frequency of unnecessary PRs. # https://github.com/pre-commit-ci/issues/issues/83 autoupdate_schedule: quarterly # Override hook language versions from system defaults default_language_version: python: pypy3 repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: check-added-large-files - id: check-case-conflict - id: check-yaml - id: check-executables-have-shebangs - id: check-shebang-scripts-are-executable - id: destroyed-symlinks - id: detect-private-key - id: end-of-file-fixer exclude: .*\.nginx$ - id: fix-byte-order-marker - id: trailing-whitespace # Let's not touch LICENSE files or reuse.software directory exclude: ^LICENSES\/.*|LICENSE$ # File types depending on trailing whitespace. Use identify-cli exclude_types: [svg, markdown, tsv] - repo: https://github.com/pre-commit-ci/pre-commit-ci-config rev: v1.6.1 hooks: - id: check-pre-commit-ci-config # Markdown Table of Contents generation. - repo: https://github.com/thlorenz/doctoc rev: v2.2.0 hooks: - id: doctoc # https://github.com/Mikaela/gist/blob/master/doctoc.txt args: [--update-only, --notitle] # Python type checking # - repo: https://github.com/pre-commit/mirrors-mypy # rev: "v1.3.0" # hooks: # - id: mypy # GitHub Actions etc. configuration validity checking - repo: https://github.com/python-jsonschema/check-jsonschema rev: 0.27.0 hooks: #- id: check-dependabot #- id: check-github-actions #- id: check-github-workflows - id: check-gitlab-ci # - repo: https://github.com/jumanjihouse/pre-commit-hooks # rev: 3.0.0 # hooks: # - id: bundler-audit # https://github.com/jumanjihouse/pre-commit-hooks/issues/111 #- id: check-mailmap # Easierish licensing when attempting reuse compliancy - repo: https://github.com/fsfe/reuse-tool rev: v2.1.0 hooks: - id: reuse # prettier & editorconfig checker should probably be ran last # prettier, opinionated code formatter - repo: https://github.com/pre-commit/mirrors-prettier rev: "v3.0.3" hooks: - id: prettier exclude_types: [python, pyi, jupyter] #additional_dependencies: #[ # https://www.npmjs.com/package/prettier #"prettier@3.0.1", # https://www.npmjs.com/package/prettier-plugin-nginx #"prettier-plugin-nginx@1.0.3", # https://www.npmjs.com/package/prettier-plugin-toml #"prettier-plugin-toml@1.0.0", #] # Black, opinionated Python code formatter # - repo: https://github.com/psf/black # rev: 23.3.0 # hooks: # - id: black #- id: black-jupyter # Shell code formatter, requires Go - repo: https://github.com/scop/pre-commit-shfmt rev: v3.7.0-1 hooks: - id: shfmt #- id: shfmt-docker # .editorconfig validity checking - repo: https://github.com/editorconfig-checker/editorconfig-checker.python rev: "2.7.2" hooks: - id: editorconfig-checker alias: ec # I don't actually care about line lengths as more than a guideline args: [-disable-max-line-length] exclude: .*\.nginx$ # # Python linter # - repo: local # hooks: # - id: pylint # name: pylint # entry: pylint # language: system # types_or: [python, pyi] # # Checking that LaTeX compiles # - repo: local # hooks: # - id: latexmk # name: latexmk # entry: latexmk -quiet # language: system # types: [text, tex] # Fedora: perl-Image-ExifTool # - repo: local # hooks: # - id: exiftool # name: Remove all EXIF metadata using exiftool # entry: exiftool -all= # language: system # types: [image]