logo
0
0
WeChat Login
feat: 实现 focus 聚焦检查能力

logo
尾行检查插件

尾行检查插件用来检查文件末尾是否以换行符结尾。文件内容以换行符结尾是一个重要的编码规范,主要原因如下:

  1. POSIX 标准定义。根据 POSIX(可移植操作系统接口)标准:
    • 文本文件的每一行都必须以换行符 \n 结尾
    • 文件的最后一行也必须以换行符结尾
    • 不以换行符结尾的行被视为"不完整的行"
  2. 避免编译器/解释器警告。例如 GCC、Go 编译器和 Git 差异显示都会在没有换行符结尾的文件中出现一些特殊警告和提示。
  3. 命令行工具兼容性。很多 Unix 工具都假设文件以换行符结尾,若不符合规范可能造成显示不准确或结果异常。
  4. 文件拼接安全。合并多个文件时,没有换行符会导致内容粘连。

用法

.cnb.yml 中添加:

$: pull_request: eof_check: stages: - name: check end of line image: docker.cnb.cool/cnb/plugins/cnbcool/eof-newline-checker:latest settings: mode: all ignore: - "*.svg" - ".cnb/web_trigger.yml" focus: - "*.md" - ".gitignore" - "**/Dockerfile*"

参数解释:

  1. mode:检查模式。这是一个可选参数,仅支持以下值:

    • all:全量检查。默认值。检查所有文件的结尾是否以换行符结尾。
    • changed:增量检查。只检查发生变更的文件,对其它文件不检查。
  2. ignore:忽略项。这是一个可选参数,表示要忽略检查的文件。支持 glob 通配符。

  3. focus:关注项。这是一个可选参数,表示要关注的文件。无论 mode 取值如何,focus 中列出的文件都会被检查。如果一个文件同时匹配了 ignorefocus,那么 focus 的优先级要高于 ignore,即该文件会被检查。