问题标签 [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.
python - Python 项目的预提交挂钩
在将代码签入 GitHub 之前,如何使用预提交挂钩删除 Python 项目中的打印语句?目前,我使用 black 和 flake8 预提交钩子。但他们似乎没有在签入代码之前检查和删除打印语句的选项。
git - 安装 eslint 预提交钩子错误
我正在尝试安装 eslint 预提交挂钩(https://github.com/pre-commit/mirrors-eslint)
这是我的预提交文件中的条目:
但是,当我运行预提交时,我得到以下信息:
我不明白那个文件是什么或者为什么 eslint 需要它。当我直接从终端使用 Eslint 时,它可以工作,这确认它是作为独立设备安装的,并且它也可以按预期工作。
git - 仅在某些分支上运行预提交
我正在寻找一种配置,.pre-commit-config.yaml
以排除在某些分支上运行预提交,或者只在某些分支上运行它。我不知道此功能是否未实现,或者我是否在文档中遗漏了它。
谢谢!
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 命令之前尝试过,但没有运气。有任何想法吗?
提前致谢!
python - 如何使用 precommit 和 hook 探矿者修复 CalledProcessError 问题?
详细信息:-Python 3.7.5 -Precommit 2.6.0 -prospector 1.1.7 -VScode 编辑器
我对钩子探查器有问题。我已经使用 pip 安装了预提交,当我在配置 .yaml 中使用它的 CLI 时没有钩子探查器时,一切正常:
最后,当我在.pre-commit-config.yaml的最后四行中附加钩子探查器时,如下所示:
当我再次运行它时,显示下一条消息:
我该怎么做才能解决这个问题?先感谢您。
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)
Pylint 仍然接受参数,因为例如传递--errors-only
确实有效。在 cli 中使用这些确切参数调用 pylint 可以按预期工作:它不会报告 PyQt5,但通过 pre-commit 调用似乎不起作用。我知道该参数已被注意到,因为省略“PyQt5”作为值会导致错误指出缺少参数。因此,不知何故,该值的解析方式与 cli 中的解析方式不同。
我尝试了上面给出的格式,这里的格式,我尝试像这样拆分参数args: [--extension-pkg-whitelist, PyQt5]
,我尝试添加单/双引号。它似乎没有捡起它。
如何将 args 传递给需要键和值的钩子?
提前致谢
git - Git 提交被拒绝,但与 --no-verify 一起使用
当我运行git commit -m 'Test'
时,收到此消息:
但如果运行,git commit -m 'Test' --no-verify
它工作正常。我的预提交钩子有问题,有什么想法吗?
git - 预提交工作正常,但 git 提交失败
所以在我的项目中,有几个 pre-commit 钩子来确保我们的代码符合团队标准,但是每当我尝试提交更改时,总是会出现错误提示找不到可执行文件。通常,我首先假设 PATH 环境变量值一定有问题,但它是唯一导致问题的实际 git commit 命令。
我可以运行据说在此之后找不到的命令。
我可以看到 bash 可以很好地识别这些命令。
那会是什么问题呢?git 命令是否使用自己的不同类型的 PATH?
我在 Windows 10 上的 ubuntu wsl 上运行它。
python - 在 PyCharm 中使用预提交
我正在尝试从 PyCharm (v. 2020.2) 中的“提交”按钮启动我的预提交挂钩。我使用了一个 conda venv(使用创建conda create -n py38 python=3.8
),我在其中安装了带有pip install
.
我的.pre-commit-config.yaml
阅读:
我在这里使用local
repo,因为我会将我的代码推送到未连接到 Internet 的 Intranet 存储库。
从我的本地机器上的命令行运行pre-commit run --all-files
运行良好。但是当我尝试从 PyCharm ( ) 提交时,它会引发以下错误:
我认为github上的这个错误报告特别重要。pre-commit
如果我理解得很好,它暗示 PyCharm 实际上并没有加载 venv,因此没有在这个环境中找到已安装的包。虽然没有提出解决方案。
有人有解决方案吗?
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
如下: