A linter for YAML files.
yamllint does not only check for syntax validity, but for weirdnesses like key repetition and cosmetic problems such as lines length, trailing spaces, indentation, etc.
Written in Python.
https://yamllint.readthedocs.io/
Using pip, the Python package manager:
pip install --user yamllintyamllint is also packaged for all major operating systems, see installation examples (dnf, apt-get...) in the documentation.
# Lint one or more files yamllint my_file.yml my_other_file.yaml ...# Recursively lint all YAML files in a directory yamllint .# Use a pre-defined lint configuration yamllint -d relaxed file.yaml # Use a custom lint configuration yamllint -c /path/to/myconfig file-to-lint.yaml# Output a parsable format (for syntax checking in editors like Vim, emacs...) yamllint -f parsable file.yamlRead more in the complete documentation!
Here is a yamllint configuration file example:
extends: defaultrules: # 80 chars should be enough, but don't fail if a line is longerline-length: max: 80level: warning# don't bother me with this ruleindentation: disableWithin a YAML file, special comments can be used to disable checks for a single line:
This line is waaaaaaaaaay too long # yamllint disable-lineor for a whole block:
# yamllint disable rule:colons - Lorem : ipsumdolor : sit amet,consectetur : adipiscing elit# yamllint enableSpecific files can be ignored (totally or for some rules only) using a .gitignore-style pattern:
# For all rulesignore: | *.dont-lint-me.yaml /bin/ !/bin/*.lint-me-anyway.yamlrules: key-duplicates: ignore: | generated *.template.yamltrailing-spaces: ignore: | *.ignore-trailing-spaces.yaml /ascii-art/*Read more in the complete documentation!
