问题标签 [pre-commit.com]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
516 浏览

python - Python 项目的预提交挂钩

在将代码签入 GitHub 之前,如何使用预提交挂钩删除 Python 项目中的打印语句?目前,我使用 black 和 flake8 预提交钩子。但他们似乎没有在签入代码之前检查和删除打印语句的选项。

0 投票
1 回答
414 浏览

git - 安装 eslint 预提交钩子错误

我正在尝试安装 eslint 预提交挂钩(https://github.com/pre-commit/mirrors-eslint

这是我的预提交文件中的条目:

但是,当我运行预提交时,我得到以下信息:

我不明白那个文件是什么或者为什么 eslint 需要它。当我直接从终端使用 Eslint 时,它可以工作,这确认它是作为独立设备安装的,并且它也可以按预期工作。

0 投票
0 回答
428 浏览

git - 仅在某些分支上运行预提交

我正在寻找一种配置,.pre-commit-config.yaml以排除在某些分支上运行预提交,或者只在某些分支上运行它。我不知道此功能是否未实现,或者我是否在文档中遗漏了它。

谢谢!

0 投票
1 回答
740 浏览

pre-commit - 如何在单独的文件夹上运行预提交?

我使用pre-commit,并且我有一个包含两个文件夹的存储库:

每个文件夹都有一个 Dockerfile 并且彼此独立。

这是我的.pre-commit-config.yaml

我想使用 Docker 在两个文件夹上运行预提交,但我得到:

根据预提交文档:pre-commit will automatically mount the repository source as a volume using -v $PWD:/src:rw,Z and set the working directory using --workdir /src.

所以问题似乎是该frontend文件夹位于src/frontend但预提交使用的路径只是src.

cd frontend我在 Docker 命令之前尝试过,但没有运气。有任何想法吗?

提前致谢!

0 投票
1 回答
735 浏览

python - 如何使用 precommit 和 hook 探矿者修复 CalledProcessError 问题?

详细信息:-Python 3.7.5 -Precommit 2.6.0 -prospector 1.1.7 -VScode 编辑器

我对钩子探查器有问题。我已经使用 pip 安装了预提交,当我在配置 .yaml 中使用它的 CLI 时没有钩子探查时,一切正常:

最后,当我在.pre-commit-config.yaml的最后四行中附加钩子探查器时,如下所示:

当我再次运行它时,显示下一条消息:

我该怎么做才能解决这个问题?先感谢您。

0 投票
1 回答
1481 浏览

python-3.x - python预提交和pylint

我正在使用 Python 3.8.5(在 Visual Studio Code 中)、预提交和 pylint 设置一个项目。在项目中 pylint 报告 PyQt5 模块导入,因为它们是基于 C 的。

为了不让 Pylint 对此进行报告,该.pylintrc文件可以配置extension-pkg-whitelist=PyQt5. 这在 IDE 中运行良好。此外,我像这样使用 pylint 设置了 pre-commit,但 pylint 似乎忽略了 PyQt5 的值,因为 pre-commit 仍然报告 pyqt5 的导入错误

Main\main.py:1:0: E0401: Unable to import 'PyQt5.QtWidgets' (import-error)

来自官方文档的 Args 参考

Pylint 仍然接受参数,因为例如传递--errors-only确实有效。在 cli 中使用这些确切参数调用 pylint 可以按预期工作:它不会报告 PyQt5,但通过 pre-commit 调用似乎不起作用。我知道该参数已被注意到,因为省略“PyQt5”作为值会导致错误指出缺少参数。因此,不知何故,该值的解析方式与 cli 中的解析方式不同。

我尝试了上面给出的格式,这里的格式,我尝试像这样拆分参数args: [--extension-pkg-whitelist, PyQt5],我尝试添加单/双引号。它似乎没有捡起它。

如何将 args 传递给需要键和值的钩子?

提前致谢

0 投票
2 回答
921 浏览

git - Git 提交被拒绝,但与 --no-verify 一起使用

当我运行git commit -m 'Test'时,收到此消息:

但如果运行,git commit -m 'Test' --no-verify它工作正常。我的预提交钩子有问题,有什么想法吗?

0 投票
1 回答
618 浏览

git - 预提交工作正常,但 git 提交失败

所以在我的项目中,有几个 pre-commit 钩子来确保我们的代码符合团队标准,但是每当我尝试提交更改时,总是会出现错误提示找不到可执行文件。通常,我首先假设 PATH 环境变量值一定有问题,但它是唯一导致问题的实际 git commit 命令。

我可以运行据说在此之后找不到的命令。
我可以看到 bash 可以很好地识别这些命令。

那会是什么问题呢?git 命令是否使用自己的不同类型的 PATH?

我在 Windows 10 上的 ubuntu wsl 上运行它。

0 投票
0 回答
5537 浏览

python - 在 PyCharm 中使用预提交

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

我的.pre-commit-config.yaml阅读:

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

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

我认为github上的这个错误报告特别重要。pre-commit如果我理解得很好,它暗示 PyCharm 实际上并没有加载 venv,因此没有在这个环境中找到已安装的包。虽然没有提出解决方案。

有人有解决方案吗?

0 投票
0 回答
300 浏览

pre-commit.com - 预提交无法在 docker 容器中运行

我尝试pre-commit==1.20.0在我们的 dockerised 开发环境中安装,只是为了让我们手动运行pre-commit run --all-files. 但是,它因我无法破译的错误而失败。我推测作为我们的 docker 容器一部分的额外索引正在触发预提交,但我不确定。

以下是 的内容/etc/pip.conf

我知道这是可行的,因为通常我们必须调用pip install package --extra-index-url https://pkgs.dev.azure.com/COMPANY/PROJECT/_packaging/mi_r00397_shared/pypi/simple/ 来安装软件包,而pip.conf成功实现并且pip install package就足够了。

我遇到的错误pre-commit run --all-files如下: