Continuous integration 本地钩子的预提交给出错误:";无法识别的参数:.pre-commit config.yaml";
我在Continuous integration 本地钩子的预提交给出错误:";无法识别的参数:.pre-commit config.yaml";,continuous-integration,pre-commit-hook,pre-commit,pre-commit.com,Continuous Integration,Pre Commit Hook,Pre Commit,Pre Commit.com,我在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
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"]
但它总是给我一个错误:
错误:无法识别的参数:.pre-commit-config.yaml
它将文件名作为参数传递给我的python脚本。我怎样才能防止这种情况发生?我花了相当长的时间来弄清楚是什么导致了这种情况,以及如何解决这种情况。它没有很好的文档记录,最终我通过尝试和错误修复了它。我们必须在钩子中使用
pass\u filenames:false
:
-回购协议:本地
挂钩:
-id:check_pip
名称:检查pip文件
描述:这个钩子检查requirements-dev.txt是否是最新的。
语言:系统
条目:python-m scripts.check\u pip\u需求
传递文件名:false
args:[“--compare”]
我花了相当长的时间弄清楚这是什么原因以及如何解决这一问题。它没有很好的文档记录,最终我通过尝试和错误修复了它。我们必须在钩子中使用pass\u filenames:false
:
-回购协议:本地
挂钩:
-id:check_pip
名称:检查pip文件
描述:这个钩子检查requirements-dev.txt是否是最新的。
语言:系统
条目:python-m scripts.check\u pip\u需求
传递文件名:false
args:[“--compare”]
稍微整理一下您的示例,并使用文件
仅在必要的文件更改时运行:
-回购协议:本地
挂钩:
-id:check_pip
名称:检查pip文件
描述:这个钩子检查requirements-dev.txt是否是最新的。
语言:系统
条目:python-m scripts.check\u pip\u需求——比较
文件:^requirements-dev.txt$
传递文件名:false
请注意,我做了几件事:
对于args
钩子没有意义,你可以把它放在local
entry
(正如您所做的)pre-commit是一个基于将文件名传递给可执行文件的框架,但您可以将其关闭pass\u filenames
:这将使钩子仅在files
更改时才会触发requirements-dev.txt
requirements-dev.txt
之外的更改需要运行此挂钩),您可以删除文件
并使用
免责声明:我是pre-commit的作者,旨在稍微整理一下您的示例,并使用
文件仅在必要的文件更改时运行:
-回购协议:本地
挂钩:
-id:check_pip
名称:检查pip文件
描述:这个钩子检查requirements-dev.txt是否是最新的。
语言:系统
条目:python-m scripts.check\u pip\u需求——比较
文件:^requirements-dev.txt$
传递文件名:false
请注意,我做了几件事:
args
对于local
钩子没有意义,你可以把它放在entry
pass\u filenames
(正如您所做的)
pre-commit
是一个基于将文件名传递给可执行文件的框架,但您可以将其关闭
files
:这将使钩子仅在requirements-dev.txt
更改时才会触发requirements-dev.txt
之外的更改需要运行此挂钩),您可以删除文件
并使用
免责声明:我是pre-commit的作者如果你能改进文档,那就太好了--,一定会的,谢谢你更新的答案和解释。提交了@anthonysottile如果你能改进文档,那就太好了--,一定会的,感谢更新的答案和解释。提交了@anthonysottile原始脚本从conda
environment.yml创建requirements-dev.txt
。因此,将:^environment.yml$
放在文件中有意义吗?因为我们想检查用户需求是否在environment.yml
更改时更新,这是前导。原始脚本从condaenvironment.yml
创建requirements-dev.txt
。因此,将:^environment.yml$
放在文件中有意义吗?因为我们想检查当environment.yml
改变时,用户需求是否被更新,这是最重要的。