对 YAML 文件进行 lint 的程序?

Program to lint YAML files?

所以我的团队目前正在开发一个使用大量 YAML 的应用程序,我们需要为通用格式强制执行一些规则。最好是一个命令行程序,这样我们就可以将它插入我们的 CI.

最重要的是,我们要强制 2-space 缩进和列表缩进,如下所示:

list:
- not indented
- not indented            # this is BAD

list:
  - indented
  - indented              # this is GOOD

mapping:
     5 space indentation  # this is BAD

此外,如果能防止尾随 space 和无意义的语法,那就太好了。

我找到了一些检查 YAML 有效性(即是否可以加载它)的网站——但没有 linting。 yaml-lint 也是如此,一个 Ruby 应用程序,只有 "checks if your YAML files can be loaded".

是否有用于 YAML 的 linter,类似于 python 的 flake8 或 javascript 的 eslint?

您正在寻找 yamllint。在你的 CI:

sudo pip install yamllint
yamllint file1.yml ...

它是高度可配置的。具体来说,对于 2-space 缩进和强制列表 缩进,conf 将是:

rules:
  indentation: {spaces: 2, indent-sequences: yes}

(它还处理尾随 spaces、行长度等)

玩得开心!