如何无需重复配置即可让LICENSES目录仅被指定pre-commit hook处理
方案1:YAML锚点复用排除规则(最稳定可靠)
pre-commit支持YAML原生的锚点引用能力(仅不支持合并键<<),你可以在配置顶部预先定义公共排除规则的锚点,所有需要排除LICENSES目录的hook直接引用即可,无需重复编写匹配规则,修改时只需更新顶部锚点的值就能全局生效:
# 顶部预定义公共排除规则锚点 exclude_licenses: &exclude_licenses '^LICENSES/' repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 hooks: - id: check-case-conflict exclude: *exclude_licenses - id: end-of-file-fixer exclude: *exclude_licenses - id: mixed-line-ending exclude: *exclude_licenses - id: trailing-whitespace exclude: *exclude_licenses # 此处替换为实际的reuse hook配置即可,无需加排除规则 - repo: meta hooks: - id: identity
方案2:子目录配置覆写(适合hook数量较多的场景)
如果你的仓库hook数量特别多,逐个添加排除规则的成本过高,可以在LICENSES目录下新建一个空的.pre-commit-config.yaml文件,内容为:
repos: []
pre-commit扫描到子目录的配置文件时会优先使用该配置,LICENSES目录下的文件会直接跳过所有通用hook的校验,仅保留根目录配置的reuse hook扫描逻辑。
内容的提问来源于stack exchange,提问作者Ginger Jesus
相关产品推荐
相关产品推荐

