--- # yamllint для HomeLab infras. # Цель: ловить реальные поломки YAML (табы, дубли ключей, битые отступы, # незакрытые кавычки), а не навязывать стиль. Всё, что даёт шум на живом # Ansible-коде, ослаблено осознанно — см. комментарии. extends: default # gitignore-style пути, которые линтить не нужно. ignore: | /ansible/.venv/ /ansible/collections/ /ansible/generated/ /archive/ /.opencode/ /tools/ node_modules/ /ansible/inventory/host_vars/*/vault.yml /.direnv/ /result /result-* rules: # Длинные строки — норма: pct/docker/curl-команды в one-line shell, # длинные URL, ZeroTier/OpenVPN-конфиги. Перенос сделал бы их менее читаемыми. line-length: disable # Ansible исторически допускает yes/no наравне с true/false, и часть репо # написана так. Не ошибка — не мешаем. truthy: allowed-values: ['true', 'false', 'yes', 'no'] check-keys: false # Комментарии вида "#comment" и inline-комментарии на одном пробеле # встречаются часто и ни на что не влияют. comments: require-starting-space: true min-spaces-from-content: 1 comments-indentation: disable # Ansible-стиль: списки под ключом с отступом — вопрос вкуса, обе формы валидны. indentation: spaces: 2 indent-sequences: consistent check-multi-line-strings: false # Пустая строка в конце файла обязательна (реальные diff-артефакты), # но лишние пробелы в конце строк — только предупреждение. trailing-spaces: enable new-line-at-end-of-file: enable # Ошибки, которые ломают парсинг или молча меняют смысл — строго. key-duplicates: enable octal-values: forbid-implicit-octal: true forbid-explicit-octal: true # "---" в начале файла — полезная конвенция Ansible, но не критично. document-start: level: warning # braces/brackets: Jinja-выражения в inline-словарях часто дают ложные # срабатывания на пробелах внутри {{ }}. braces: min-spaces-inside: 0 max-spaces-inside: 1 brackets: min-spaces-inside: 0 max-spaces-inside: 1