标签: pre-commit

使用子文件夹中的 setup.cfg 预提交 flake8

flake8与一堆插件一起使用(,,flake8-docstrings)。我已将它们全部预安装到.flake8-isortflake8-blackvenv

\n

我的仓库要检查pre-commit

\n
    \n
  • 根文件夹有两个包
  • \n
  • 每个都有自己的\n
      \n
    • pyproject.toml(配置blackisort
    • \n
    • setup.cfg(配置flake8pydocstyle
    • \n
    \n
  • \n
\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 foo\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.cfg\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 (the package)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bar\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.cfg\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 (the package)\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 venv\n
Run Code Online (Sandbox Code Playgroud)\n

我想为这两个包调用flake8via 。pre-commit

\n

这是我目前的做法:

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 foo\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.cfg\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 (the package)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bar\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.cfg\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 (the package)\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 venv\n …
Run Code Online (Sandbox Code Playgroud)

pre-commit pre-commit-hook flake8 pre-commit.com

12
推荐指数
1
解决办法
7510
查看次数

如何确保所有预提交钩子在 CI/CD 中通过

我的团队在我们的存储库中使用预提交来运行各种代码检查和格式化程序。我的大多数队友都使用它,但有些人通过使用git commit --no-verify. 无论如何,是否可以在 CI/CD 中运行某些内容以确保所有预提交挂钩都通过(我们正在使用 GitHub 操作)。如果至少有一个钩子失败,则抛出一个错误。

pre-commit pre-commit-hook pre-commit.com

12
推荐指数
1
解决办法
1万
查看次数

Husky 需要为每个新分支提供可执行文件

如果husky hook 没有运行,我们需要执行命令chmod +x .husky/*但我每次去新的分支机构都需要运行。chmod +x .husky/*否则,它会显示此错误:

提示:“.husky/pre-commit”挂钩被忽略,因为它未设置为可执行文件。

谁能告诉我如何解决这个问题?

我用的是哈士奇7.0.1

pre-commit husky

12
推荐指数
2
解决办法
1万
查看次数

使用 pre-commit、flake8、black、isort、pylint 等简化行长度

当使用多个检查或格式化 python 文件的工具时,有没有办法一次性设置行长度?

目前我有:

.flake8文件:

max-line-length = 120
Run Code Online (Sandbox Code Playgroud)

.isort.cfg文件:

line-length = 120
Run Code Online (Sandbox Code Playgroud)

.black文件:

line-length = 120
Run Code Online (Sandbox Code Playgroud)

.pylintrc文件:

max-line-length = 120
Run Code Online (Sandbox Code Playgroud)

python pre-commit flake8 pylintrc isort

12
推荐指数
2
解决办法
9176
查看次数

如何在预提交挂钩之前运行自定义 shell 脚本文件

在我的 python 项目中,我有 pre-commit-config.YAML,我想在其中创建我的自定义文件。

如果 python lint 错误大于特定数字,则此文件的目的是使 git commit 失败。以下命令将用于计算行数

pylint api/ | wc -l
Run Code Online (Sandbox Code Playgroud)

有人可以建议一些方法。我是 MAC 和 Python 生态系统的新手?

编辑 sh 文件看起来像这样。

#!/bin/sh
a=$(pylint source/ | wc -l)
b=20

errorsCount="$(echo "${a}" | tr -d '[:space:]')"

if [ $errorsCount -gt $b ]
then
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

我试过

repos:
- repo: local
  hooks:
    - id: custom-script-file
      name: custom-script-file
      entry: hooks/pre-commit.sh
      language: script
      types: [python]
      pass_filenames: false
Run Code Online (Sandbox Code Playgroud)

但它不会奏效。

python git pre-commit pre-commit-hook pre-commit.com

11
推荐指数
1
解决办法
5868
查看次数

使用 PyCharm 进行预提交

我正在尝试从 PyCharm 中的“提交”按钮启动我的预提交挂钩(v.2020.2)。我使用 conda venv (使用 创建conda create -n py38 python=3.8)在其中安装了模块pip install

我的.pre-commit-config.yaml读物是:

repos:
- repo: local
  hooks:
  - id: black
    name: black
    language: system
    entry: black --check
    types: [python]

  - id: isort
    name: isort
    language: system
    entry: isort --check-only
    types: [python]
Run Code Online (Sandbox Code Playgroud)

我在这里使用localrepo 是因为我会将我的代码推送到未连接到互联网的 Intranet 存储库。

pre-commit run --all-files在我的本地计算机上从命令行运行运行良好。但是当我尝试从 PyCharm 提交时(在此输入图像描述),它会引发以下错误:

Traceback (most recent call last):
  File "c:\bib\envs\py38\lib\runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None, File "c:\bib\envs\py38\lib\runpy.py", line 86, …
Run Code Online (Sandbox Code Playgroud)

python git pre-commit pycharm pre-commit.com

11
推荐指数
0
解决办法
2万
查看次数

胆怯地拒绝安装设置了“core.hooksPath”的钩子

我尝试运行此命令,但它总是显示此错误,无论如何我都无法修复它。请帮帮我!

(venv)<...>预提交安装

[错误] 胆怯地拒绝安装带有core.hooksPath套件的挂钩。

暗示:git config --unset-all core.hooksPath

python git pre-commit pre-commit.com

11
推荐指数
2
解决办法
1万
查看次数

客户端在subversion中预先提交钩子

有没有办法在客户端使用svn客户端设置预提交挂钩,例如通过eclipse或命令行svn客户端?

svn hook pre-commit svn-hooks

10
推荐指数
2
解决办法
4673
查看次数

zsh:找不到命令:预提交但已安装包

在 VSCode 中使用以下命令成功安装预提交:

python3 -m pip install pre-commit --user
Run Code Online (Sandbox Code Playgroud)

但是当我尝试进行预提交安装时,我收到错误消息:

zsh: command not found: pre-commit
Run Code Online (Sandbox Code Playgroud)

python pre-commit pre-commit.com

9
推荐指数
1
解决办法
1万
查看次数

VSCode 集成源代码控制和预提交

https://pre-commit.com与依赖于 Python venv 中安装的包的 VSCode 挂钩使用时。在预提交上可以指定使用“系统”作为环境。这在具有所需 venv 活动的终端上非常有效。

然而,使用集成的源代码控制似乎可以访问全局 interpeter,因此所需的包不可用。

这里有解决方法吗?至于现在我在预提交配置中指定入口点“path/to/bin/python -m package”。但是我确实认为集成的源代码控制也应该至少尊重选定的互操作者。

有什么想法吗?

python pre-commit visual-studio-code pre-commit.com

9
推荐指数
1
解决办法
2888
查看次数