我可以排除文件从每个预提交钩子除了一个没有重复自己?



我想做一个Git的回购是重用兼容。我想使用重用预提交挂钩来帮助确保我是合规的。重用规范要求我创建一个名为"许可证"的文件夹,其中包含我的项目使用的每个许可证。我正在使用其他几个钩子,我不希望这些钩子检查或修改LICENSES/文件夹中的任何内容。我希望除了重用之外的每个钩子都排除LICENSES/。(旁注:目前,看起来重用钩子不受排除LICENSES/的影响,但这应该是固定的)。以下是我到目前为止所做的尝试:

exclude: '^LICENSES/'
repos:
-
repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: check-case-conflict
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
# I’m using identity instead of reuse here for testing and to better
# illustrate the problem.
-
repo: meta
hooks:
-
id: identity
exclude: "^$"

那没有用。看起来,除了全局模式之外,每个钩子的排除模式也适用。我希望应用每个钩子的排除模式,而不是全局模式。

我可以在每个钩子上使用每个钩子排除模式,除了一个:

repos:
-
repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
-
id: check-case-conflict
exclude: &exclude_pattern '^LICENSES/'
-
id: end-of-file-fixer
exclude: *exclude_pattern
-
id: mixed-line-ending
exclude: *exclude_pattern
-
id: trailing-whitespace
exclude: *exclude_pattern
# I’m using identity instead of reuse here for testing and to better
# illustrate the problem.
-
repo: meta
hooks:
- id: identity

但是,那样我就会重复自己的话。我想我可能可以少重复使用合并键,但我不认为这些是支持的。有没有什么方法可以避免重复或者减少重复呢?

在每个钩子上都必须指定一个exclude

顶层的exclude是应用于所有钩子的快捷方式

我建议将exclude添加到钩子中,修改LICENSES

免责声明:我创建了预提交

最新更新