一些现成的钩子用于预提交。

pre-commit-hooks的Python项目详细描述


构建状态azure devops coverage

预提交挂钩

一些现成的挂钩用于预提交。

另请参见: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代码库中有用)
  • 文件内容排序器-对指定文件中的行进行排序(默认为字母顺序)。必须提供目标文件列表作为输入。请注意,此挂钩将删除空行,不考虑任何注释。
  • flake8-在python文件上运行flake8。
  • 禁止新的子模块-禁止添加新的git子模块。
  • 混合行尾-替换或检查混合行尾。
    • --fix={auto,crlf,lf,no}
      • 自动-自动替换最常用的行尾。这是默认参数。
      • crlflf-强制替换分别以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=*

不推荐使用/替换的挂钩

作为独立软件包

如果您想使用这些钩子,它们也可以作为独立的 包装:

简单地pip安装预提交挂钩

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
数据库java操作符是如何工作的?   带有JSON迭代器的java类型安全警告   java@NotNull类型注释Solrj   JDBC无法将19y旧Java连接到新的SQL Server。它在旧服务器上运行良好   java两个线程获得相同的值   java阶乘方法工作不好!   java Android体系结构决策   java如何使用JSON中的@RequestBody绑定自定义对象的映射   java Android ActionBarSherlock定制topbar?   java自定义DozerConverter仅在SpringBoot测试中调用   java为什么Hibernate试图映射@Transient方法?   MongoDB Java自己的编解码器不工作   java无法从MySQL中的存储引擎读取自动增量值   java使用SwingFXUtils将BuffereImage(awt)转换为Image(JavaFx)   java Camel hdfs2到文件协议文件传输   java什么是GZIP JSFSeam web应用程序页面的最佳方法