Configuration

yamllint uses a set of rules to check sources files for problems. Each rule is independent from the others, and can be enabled, disabled or tweaked. All these settings can be gathered in a configuration file.

To use a custom configuration file, either name it .yamllint in your working directory, or use the -c option:

yamllint -c ~/myconfig file.yml

Default configuration

Unless told otherwise, yamllint uses its default configuration:

---

rules:
  braces:
    min-spaces-inside: 0
    max-spaces-inside: 0
  brackets:
    min-spaces-inside: 0
    max-spaces-inside: 0
  colons:
    max-spaces-before: 0
    max-spaces-after: 1
  commas:
    max-spaces-before: 0
    min-spaces-after: 1
    max-spaces-after: 1
  comments:
    level: warning
    require-starting-space: yes
    min-spaces-from-content: 2
  comments-indentation:
    level: warning
  document-end: disable
  document-start:
    level: warning
    present: yes
  empty-lines:
    max: 2
    max-start: 0
    max-end: 0
  hyphens:
    max-spaces-after: 1
  indentation:
    spaces: 2
    indent-sequences: yes
    check-multi-line-strings: no
  key-duplicates: {}
  line-length:
    max: 80
    allow-non-breakable-words: yes
  new-line-at-end-of-file: {level: error}
  new-lines:
    type: unix
  trailing-spaces: {}

Details on rules can be found on the rules page.

Extending the default configuration

When writing a custom configuration file, you don’t need to redefine every rule. Just extend the default configuration (or any already-existing configuration file).

For instance, if you just want to disable the comments-indentation rule, your file could look like this:

# This is my first, very own configuration file for yamllint!
# It extends the default conf by adjusting some options.

extends: default

rules:
  comments-indentation: disable  # don't bother me with this rule

Similarly, if you want to set the line-length rule as a warning and be less strict on block sequences indentation:

extends: default

rules:
  # 80 chars should be enough, but don't fail if a line is longer
  line-length:
    max: 80
    level: warning

  # accept both     key:
  #                   - item
  #
  # and             key:
  #                 - item
  indentation:
    indent-sequences: whatever

Errors and warnings

Problems detected by yamllint can be raised either as errors or as warnings.

In both cases, the script will output them (with different colors when using the standard output format), but the exit code can be different. More precisely, the script will exit will a failure code only when there is one or more error(s).