问题标签 [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.
r - 如何将 R styleR 与 pre-commit 和 renv 一起使用
我已经用 rvenv 创建了一个虚拟环境,所以我现在rvenv/
在我的项目根目录中。我还安装了styler
,并希望有一个预提交挂钩,将其应用于 R 代码。
从这里:https ://github.com/lorenzwalthert/precommit/blob/master/.pre-commit-hooks.yaml如下:
我对应该给予的路径感到困惑entry:
,在这个片段中,它是通往全球版本的路径styler
(或者至少,我假设如此)。但我希望能够使用我在我假设的虚拟环境中安装的版本。
我的问题是 - 如何去做。如果我不应该使用安装在其中的版本,renv/
那么我很高兴听到(并使用)任何最佳实践,即围绕创建可在我的和其他系统上运行的 R 文件样式的预提交挂钩。
编辑
按照下面的答案,我还必须安装 docopt (如此处所述)。
python - 使用预提交,如何在提交之前使用一些钩子,在推送之前使用其他钩子
有些钩子可能需要一段时间才能运行,我想在推送之前运行它们,但不是在每次特定提交之前运行(例如,pylint 可能有点慢)。
我看过以下内容:
但目前还不清楚我应该如何设置它。
这是我尝试过的:
从那我期待前几个钩子在提交之前运行(他们这样做),但我期待黑色在推送之前运行,但事实并非如此。
为了测试我创建了以下文件:
这肯定不是被黑色格式化的。
git - 将钩子安装为 pre-push 而不是 pre-commit
pre-commit-config.yaml
我在位于我的存储库根目录的文件中定义了一个预提交挂钩,如下所示-
如果我现在遵循 flake8 规则,这将按预期工作并阻止任何提交。但是,我想为 agit push
而不是为 a这样做git commit
。我发现的一种方法是在里面添加一个pre-push
文件并从里面.git/hooks/
做。flake8 .
这可以完成工作,但现在我无法通过 git 与任何人共享该文件,因为该.git
文件夹未被 git 跟踪。
是否有任何文件/配置可以放在 repo 的根目录中作为预推送挂钩?
azure-devops - 使用 `git commit —no-verify` 进行预提交 azure 管道
我看到我可以将预提交与管道一起使用,有没有办法为 azure 管道设置 yaml 文件,以便git commit --no-verify
在特定情况下失败时使用?或者有没有办法在问题发生时对管道进行故障排除?
这就是我的 yaml 文件
git - 带有预提交的 Pylint 和带有 husky 的 EsLlint
我有一个项目,前端是 JS,后端是 Python。前端已经配置了 husky 预提交钩子。今天我已经用预提交库配置了 Pylint,但是 husky 钩子已经被那个动作覆盖了。是否可以结合 pre-commit 和 husky 库?如果不是...解决问题的最佳方法是什么?
python - 运行 pytest 作为预提交钩子 // 没有这样的文件或目录问题
在我的 Python 项目中,我将pytest
其用作pre-commit
挂钩。一些测试创建和删除临时文件,当我运行pytest <test directory>
. 但是,当我运行git commit
并pre-commit
挂钩触发器时pytest
,一些测试会因为FileNotFoundError: [Errno 2] No such file or directory: '<file name>'
. 我的印象是当许多文件已更改并位于暂存区域时会发生这种情况(对于 1-2 个文件,我没有观察到此问题)。这是我的pytest
部分.pre-commit-config.yaml
:
输出如下所示:
当我从控制台运行 pytest 时,这不会发生。
并且错误不再出现pass_filenames: false
:always_run: true
关于在 bash 中包装东西,我仍在这样做pylint
:
有没有更好的解决方案?pylint
不支持无限深度的递归,因此我需要一个 bash 命令。
谢谢!
最好的,阿列克谢
continuous-integration - 本地挂钩的预提交给出错误:“无法识别的参数:.pre-commit-config.yaml”
pre-commit
我在文件中有以下回购.pre-commit-config.yaml
但它一直给我错误:
错误:无法识别的参数:.pre-commit-config.yaml
因为它将文件名作为参数传递给我的 python 脚本。我怎样才能防止这种情况?
javascript - 预提交 + python + react (js)
我使用预提交,我想将它与 .py 文件一起使用,我重新格式化文件黑色模块,但我也有一个 web 文件夹,其中反应文件,我一次有 2 个问题,与重新格式化代码有什么关系对于 js 以及如何联合起来,以便在启动预提交运行时检查 web 文件夹以重新格式化 js 代码
UPDATE: 最让我担心的问题是js和py文件冲突,但是我用过:
python - zsh:找不到命令:预提交但已安装包
在 VSCode 中使用以下命令成功安装了 pre-commit:
但是当我尝试进行预提交安装时,我收到错误消息:
prettier - Prettier 使用 pre-commit(.com) 不会重新进行更改
我开始使用 Prettier + eslint 使用pretty-quick
& husky
(选项 2)。它的行为符合预期,即在提交(或修改)期间重新格式化代码并在提交中包含更改。
我的 monorepo 需要(几个)更多的预提交钩子,所以我最终迁移到了pre-commit.com(选项 3)。现在,当我提交或修改时,Prettier 会修改文件并返回Failed
状态。这造成了一个相当烦人的工作流程,我被迫添加文件并尝试再次提交更改。
作为提交的一部分,是否有某种方法可以将更改重新分阶段?