如何解决预提交本地挂钩会产生错误:“无法识别的参数:.pre-commit-config.yaml”
我在pre-commit
文件.pre-commit-config.yaml
中有以下存储库
- repo: local
hooks:
- id: check_pip
name: Check pip file
description: This hook checks if requirements-dev.txt is up to date.
language: system
entry: python -m scripts.check_pip_requirements
args: ["--compare"]
但是它总是给我错误:
当它将文件名作为参数传递给我的python脚本时。我该如何预防?
解决方法
稍微整理一下示例-并使用files
仅在必要文件更改时运行:
- repo: local
hooks:
- id: check_pip
name: Check pip file
description: This hook checks if requirements-dev.txt is up to date.
language: system
entry: python -m scripts.check_pip_requirements --compare
files: ^requirements-dev.txt$
pass_filenames: false
请注意,我做了几件事:
-
args
对于local
钩子实际上没有意义,您可以将其放入entry
-
pass_filenames
(与您一样)-pre-commit
是一个基于将文件名传递给可执行文件的框架,但是您可以将其关闭 -
files
:这样做可以使挂钩仅在requirements-dev.txt
发生变化时被触发
或者(如果您希望requirements-dev.txt
之外的更改需要运行此挂钩),则可以放下files
并使用always_run: true
免责声明:我是预先提交的作者
,我花了很多时间弄清楚是什么原因造成的,以及如何解决。没有很好的记录,最终我通过反复试验修复了它。我们必须在钩子中使用pass_filenames: false
:
- repo: local
hooks:
- id: check_pip
name: Check pip file
description: This hook checks if requirements-dev.txt is up to date.
language: system
entry: python -m scripts.check_pip_requirements
pass_filenames: false
args: ["--compare"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。