shell-things/.pre-commit-config.yaml

145 lines
4.2 KiB
YAML

# 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: python3.11
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.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.26.3
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]