mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-09 05:44:23 +00:00
2.6 KiB
2.6 KiB
Pre-commit
Table of contents
TL;DR
# Generate a very basic configuration.
pre-commit sample-config > .pre-commit-config.yaml
# Manually run checks.
pre-commit run --all-files
pre-commit run "ansible-lint" --files "ansible/"
# Automatically run checks at every commit.
pre-commit install
# Update all hooks to the latest version available.
# It is *not* always the latest *stable* release.
pre-commit autoupdate
# Skip check on commit.
SKIP="flake8" git commit -m "foo"
---
# File .pre-commit-config.yaml
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
# See https://github.com/pre-commit/identify/blob/main/identify/extensions.py for the list of file types by extension
exclude: ^FIXME/.*$ # ignore all files matching the regexp
fail_fast: true # stop at the first error
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-json
- id: check-yaml
args: [--allow-multiple-documents]
- id: check-xml
- id: trailing-whitespace
args:
- --markdown-linebreak-ext=md # ignore markdown's line break
- id: end-of-file-fixer
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
rev: v9.5.0
hooks:
- id: commitlint
stages: [commit-msg] # limit to specific stages
additional_dependencies: ['@commitlint/config-conventional']
- repo: https://github.com/markdownlint/markdownlint
rev: v0.12.0
hooks:
- id: markdownlint
types: [markdown] # limit target types
args:
- -r "~MD013" # ignore line-length rule
- repo: https://github.com/ansible-community/ansible-lint
rev: v6.19.0
hooks:
- id: ansible-lint
name: ansilint # use an alias
Troubleshooting
Some files are skipped during a run
Check they are tracked (have been added to the repository).
Further readings
- Pre-commit's website
- List of supported hooks