问题标签 [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 投票
1 回答
347 浏览

grep - pygrep 预提交钩子检查字符串是否存在

如果我想编写一个预提交挂钩来检查,例如,字符串“我喜欢预提交”不在我的源代码中的任何位置,我可以这样做

但是,如果我想反其道而行之——也就是说,检查每个源代码文件中是否包含“我喜欢预先提交” ,该怎么办?我如何修改我的钩子,以便如果找到“我喜欢预先提交”而不是失败,如果没有找到“我喜欢预先提交”它会失败?


现在可以用

0 投票
1 回答
376 浏览

python - Python Black hooks(语言:系统)

我在预提交时使用黑色,这是钩子

这是我用于黑色的 CI 配置

它会在预提交中重新格式化一些文件,并在 CI 上构建项目时使其失败

然后当我把钩子改成这个时

它不会重新格式化文件

我对此有两个问题:

  1. 这个钩子是什么意思:'语言:系统'因为当我阅读文档时它应该是language: python
  2. 有谁知道为什么我的第一个钩子不起作用,并且我的预提交中的黑色不断自动更新我的文件?
0 投票
1 回答
5047 浏览

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

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

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

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

有什么想法吗?

0 投票
2 回答
388 浏览

python - yaml 多行正则表达式

我想写一个pygrep钩子pre-commit来查找案例,例如

(什么时候应该.. warning::)。

如果我写

然后这行得通 - 但是,字符串太长了。有没有办法把它分成多行?

我试过了

但这不起作用(生成的正则表达式不同)。

有什么建议么?

0 投票
1 回答
3182 浏览

go - 预提交打印'golint:找不到命令'

环境

我想要的是

我想用 Go 实现一个微服务。

发生了什么

当我运行 git commit 时,预先提交运行golint命令,现在它会打印“golint: command not found”。

代码

go in .zshrc 的设置

项目树

gopath 中的树

.pre-commit-config.yaml

/home/asuha/go/src/github.com/Asuha-a/URLShortener/api/go.mod

/home/asuha/go/src/github.com/Asuha-a/URLShortener/api/services/user/go.mod

我想知道的

golint为什么跑不了?如何解决?

0 投票
1 回答
123 浏览

pre-commit.com - 如何在 pre-commit.com 中使用新的 coursier 语言?

我正在使用 pre-commit 2.8.2 并试图让新的 coursier 语言正常工作。

我能够从 CLI 成功运行 coursier 命令。

但是,我不清楚如何根据文档为 coursier 声明一个钩子。有没有使用 coursier 审查的例子?这就是我在 .pre-commit-hooks.yaml 中的内容。

当我尝试使用钩子时,出现此错误:

0 投票
1 回答
443 浏览

git - 预提交运行 yapf --all-files 找不到所有文件?

运行:RH7,Python 3.8.3,预提交 2.8.2

我从 github 下载了一个 repo。我对现有文件进行了“错误”更改,例如在 class 语句之前没有足够的空行。我跑

预提交运行 yapf --all-files

我按预期失败了。

但是,如果我创建一个具有相同错误的新文件,则没有发现错误!就好像没有看到新文件一样。

请指教。

0 投票
1 回答
1070 浏览

python - python pre-commit 工具是否可以将子目录视为项目的基础?

我有一个这样的回购:

配置在哪里:

将条目更改为“pwd”只是为了查看 basedir 在预提交的上下文中是什么。现在,当我从 myrepo/tool1 目录运行它时pre-commit run --hook-stage=push --verbose,pwd 会说“myrepo”,而不是“myrepo/tool1” . 我需要在 tool1 中运行,因为所有路径等都是相对的。

是否有一些设置或其他方式来运行预提交,以便基本目录是 myrepo/tool1?还是该项目真的必须存在于回购的根目录中?

0 投票
1 回答
614 浏览

git - 使用 pre-commit.com,如何修复 go vet 错误“没有 Go 文件”

我们的项目使用go 标准项目布局。另外,我正在使用pre-commit.com中的 pre-commit-hooks 。

在此设置中,go-vet抱怨:

这是因为由于项目布局,main.go文件位于cmd/tool/main.go.

我怎样才能解决这个问题?我不想禁用 go-vet ...

编辑:对不起,我没有意识到go vet钩子不是来自 pre-commit.com 本身......

那是我的 .pre-commit-config.yaml:

0 投票
2 回答
700 浏览

git - 使用预提交时,mypy 检查通过但打印 mypy 语法错误

我使用 pre-commit 运行 mypy 类型检查,当 mypy 检查通过时,它会打印这样的字符串错误日志。

这很烦人,因为类似的日志打印了 20 行或 30 行,甚至与我编写的代码无关。我怎样才能禁用它?

这是我的预提交配置文件。