一些现成的钩子用于预提交。
pre-commit-hooks的Python项目详细描述
预提交挂钩
一些现成的挂钩用于预提交。
另请参见:https://github.com/pre-commit/pre-commit" rel="nofollow">https://github.com/pre-commit/pre-commit
将预提交挂钩与预提交一起使用
将此添加到您的.pre commit config.yaml
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0 # Use the ref you want to point at
hooks:
- id: trailing-whitespace
# - id: ...
提供挂钩
检查添加的大文件
-防止提交大文件。- 用
参数:['--maxkb=123']
指定"太大"的值(默认值=500KB)。 - 如果安装了git lfs,将跳过lfs文件
(需要
git lfs>;=2.2.1
)
- 用
检查ast
-只需检查文件是否解析为有效的python即可。检查内置文本
-初始化空或零python内置类型时需要文本语法。- 允许使用位置参数调用构造函数(例如
list('abc')
)。 - 允许从
内置名称空间(
builtins.list()
)调用构造函数。 - 对于具有
--ignore=type1,type2,…
的特定内置类型,忽略此要求 - 禁止使用关键字语法
- 允许使用位置参数调用构造函数(例如
检查字节顺序标记
-禁止具有UTF-8字节顺序标记的文件检查大小写冲突
-检查在 不区分大小写的文件系统,如MacOS HFS+或Windows Fat。首先检查docstring
-检查在 文档字符串。check可执行文件具有shebang
-检查非二进制可执行文件是否具有 适当的释放。检查json
-尝试加载所有json文件以验证语法。检查合并冲突
-检查包含合并冲突字符串的文件。检查符号链接
-检查不指向任何内容的符号链接。检查toml
-尝试加载所有toml文件以验证语法。检查VCS永久链接
-确保指向VCS网站的链接是永久链接。检查XML
-尝试加载所有XML文件以验证语法。检查yaml
-尝试加载所有yaml文件以验证语法。--允许多个文档
-允许使用 多文档语法--unsafe
-不要加载文件,只需分析它们的语法即可。 仅语法检查启用扩展和不安全的构造 否则禁止。使用此选项将删除 可移植到其他yaml实现。 意味着允许多个文档
调试语句
-检查调试器导入和py37+断点()
调用python源代码。检测AWS凭据
-检查是否存在AWS你的秘密 已经设置了aws cli。 以下参数可用:--凭据文件凭据文件 在非标准位置获取配置文件 来自的凭据。可以重复多次。
--允许缺少凭据
-当没有凭据时允许钩子传递 检测到。
检测私钥
-检查是否存在私钥。双引号字符串修饰符
-此钩子替换双引号字符串 带单引号的字符串。文件结尾固定器
-确保文件以换行符结尾,并且只换行符。fix encoding pragma
-在python文件的顶部添加.-*-coding:utf-8-*-
。- 删除编码pragma pass
--remove
(仅在python3代码库中有用)
- 删除编码pragma pass
文件内容排序器
-对指定文件中的行进行排序(默认为字母顺序)。必须提供目标文件列表作为输入。请注意,此挂钩将删除空行,不考虑任何注释。flake8
-在python文件上运行flake8。禁止新的子模块
-禁止添加新的git子模块。混合行尾
-替换或检查混合行尾。--fix={auto,crlf,lf,no}
自动
-自动替换最常用的行尾。这是默认参数。crlf
,lf
-强制替换分别以crlf和lf结尾的行。否
-检查是否有任何混合行结尾,而不修改任何文件。
name tests test
-断言tests中的文件/end in\u test.py
。- 使用
参数:['--django']
匹配测试*.py
。
- 使用
不提交到分支
-保护特定分支不受直接签入的影响。- 使用
参数:[--branch,staging,--branch,master]
设置分支。master
如果未设置分支参数,则为默认值。 -b
/--可以多次指定分支以保护多个 分支机构。
-p
/--模式可用于保护与提供的正则表达式匹配的分支 (例如,
--pattern,release/*
)。可以多次指定。
- 使用
pretty format json
-检查您的所有json文件是否都很漂亮。"漂亮" 这里的意思是键被排序和缩进。您可以将其配置为 以下命令行选项:--autofix
-自动格式化json文件--缩进…
-控制缩进(可以是一个空格数,也可以是一个空格字符串)。默认为4个空格。--无排序键
-自动修复时,保留原始键顺序(而不是排序键)--顶部键逗号,分隔,键
-要保持在映射顶部的键。
requirements txt fixer
-对requirements.txt中的条目进行排序,并删除pkg resources==0.0.0的不正确条目
排序简单yaml
-排序仅由顶级键组成的简单yaml文件,保留注释和块。尾随空格
-修剪尾随空格。- 要保留降价,请使用硬换行符
使用
参数:[--markdown linebreak ext=md]
(或使用的其他扩展名 你的标记文件)。如果出于某种原因您想处理所有文件 作为标记,使用--markdown linebreak ext=*
不推荐使用/替换的挂钩
autopep8包装器
:改为使用 mirrors-autopep8pyflakes
:改为使用flake8
作为独立软件包
如果您想使用这些钩子,它们也可以作为独立的 包装:
简单地pip安装预提交挂钩