我可以从每个预提交挂钩中排除文件而不重复自己吗?
Can I exclude files from every pre-commit hook except for one without repeating myself?
我想创建一个 Git 回购协议,REUSE compliant. I want to use the reuse pre-commit hook to help ensure that I’m compliant. The REUSE Specification 要求我创建一个名为“LICENSES”的文件夹,其中包含我的项目使用的每个许可证。我正在使用其他几个挂钩,我不希望这些挂钩检查或修改 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
但是,我会重复自己的话。我认为我可以使用合并键减少重复自己,但是 I don’t think that those are supported。有什么避免重复或少重复的方法吗?
没有在每个挂钩上指定 exclude
,正如您所发现的那样
顶层exclude
是快捷方式applied to all hooks
我建议只将 exclude
添加到 会 修改 LICENSES
的挂钩
免责声明:我创建了预提交
我想创建一个 Git 回购协议,REUSE compliant. I want to use the reuse pre-commit hook to help ensure that I’m compliant. The REUSE Specification 要求我创建一个名为“LICENSES”的文件夹,其中包含我的项目使用的每个许可证。我正在使用其他几个挂钩,我不希望这些挂钩检查或修改 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
但是,我会重复自己的话。我认为我可以使用合并键减少重复自己,但是 I don’t think that those are supported。有什么避免重复或少重复的方法吗?
没有在每个挂钩上指定 exclude
,正如您所发现的那样
顶层exclude
是快捷方式applied to all hooks
我建议只将 exclude
添加到 会 修改 LICENSES
免责声明:我创建了预提交