我正在使用this库尝试向我的项目添加一个预提交钩子。需要花很多时间,而且我认为我想要的预提交检查不需要他们的大多数示例使用的较大范围。我要做的就是运行一个python文件。我要允许或禁止提交的内容取决于该文件是否已成功退出/完成(IE没有引发异常)。我做了一个.pre-commit-config.yaml
,但是我不知道如何使它仅运行一个文件。
我基本上想输入git commit -m "whatever"
以自动运行python myfile.py
<-,并根据其退出代码,允许或禁止提交。对我的Yaml应该是什么样子有任何想法吗?
这是我到目前为止所拥有的:
repos:
- repo: local
hooks:
- id: translation-file-check
name: Check Translation Files Are Aligned
description: This hook ensures that all translation files share the same set of keys and generates a CSV if there are no issues
language: python
entry: "./dir/subdir/myfile.py"
但是我收到以下错误消息:.An unexpected error has occurred: OSError: [WinError 193] %1 is not a valid Win32 application
我想是因为即使我将language
设置为python,也希望该.py文件是.exe或其他内容。
答案 0 :(得分:2)
非常接近!有两种方法可以使这项工作:
#!/usr/bin/env python
)
pre-commit
仍包含规范化平台并使其在Windows上也能正常工作的代码!使用entry: python ./dir/subdir/myfile.py
repos:
- repo: local
hooks:
- id: translation-file-check
name: Check Translation Files Are Aligned
description: This hook ensures that all translation files share the same set of keys and generates a CSV if there are no issues
language: python
entry: python ./dir/subdir/myfile.py
(免责声明:我是pre-commit
的作者)