问题标签 [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.
grep - pygrep 预提交钩子检查字符串是否存在
如果我想编写一个预提交挂钩来检查,例如,字符串“我喜欢预提交”不在我的源代码中的任何位置,我可以这样做
但是,如果我想反其道而行之——也就是说,检查每个源代码文件中是否包含“我喜欢预先提交” ,该怎么办?我如何修改我的钩子,以便如果找到“我喜欢预先提交”而不是失败,如果没有找到“我喜欢预先提交”它会失败?
现在可以用
python - Python Black hooks(语言:系统)
我在预提交时使用黑色,这是钩子
这是我用于黑色的 CI 配置
它会在预提交中重新格式化一些文件,并在 CI 上构建项目时使其失败
然后当我把钩子改成这个时
它不会重新格式化文件
我对此有两个问题:
- 这个钩子是什么意思:'语言:系统'因为当我阅读文档时它应该是
language: python
? - 有谁知道为什么我的第一个钩子不起作用,并且我的预提交中的黑色不断自动更新我的文件?
python - VSCode 集成源代码控制和预提交
将https://pre-commit.com与依赖于 Python venv 中安装的包的 VSCode 挂钩使用时。在预提交上可以指定使用“系统”作为环境。这在具有所需 venv 活动的终端上效果很好。
然而,使用集成源代码控制似乎可以访问全局解释器,因此所需的包不可用。
这里有解决方法吗?至于现在我在预提交配置中指定入口点“path/to/bin/python -m package”。但是我确实认为集成源代码控制也应该至少尊重选定的解释者。
有什么想法吗?
python - yaml 多行正则表达式
我想写一个pygrep
钩子pre-commit
来查找案例,例如
(什么时候应该.. warning::
)。
如果我写
然后这行得通 - 但是,字符串太长了。有没有办法把它分成多行?
我试过了
但这不起作用(生成的正则表达式不同)。
有什么建议么?
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为什么跑不了?如何解决?
pre-commit.com - 如何在 pre-commit.com 中使用新的 coursier 语言?
我正在使用 pre-commit 2.8.2 并试图让新的 coursier 语言正常工作。
我能够从 CLI 成功运行 coursier 命令。
但是,我不清楚如何根据文档为 coursier 声明一个钩子。有没有使用 coursier 审查的例子?这就是我在 .pre-commit-hooks.yaml 中的内容。
当我尝试使用钩子时,出现此错误:
git - 预提交运行 yapf --all-files 找不到所有文件?
运行:RH7,Python 3.8.3,预提交 2.8.2
我从 github 下载了一个 repo。我对现有文件进行了“错误”更改,例如在 class 语句之前没有足够的空行。我跑
预提交运行 yapf --all-files
我按预期失败了。
但是,如果我创建一个具有相同错误的新文件,则没有发现错误!就好像没有看到新文件一样。
请指教。
python - python pre-commit 工具是否可以将子目录视为项目的基础?
我有一个这样的回购:
配置在哪里:
将条目更改为“pwd”只是为了查看 basedir 在预提交的上下文中是什么。现在,当我从 myrepo/tool1 目录运行它时pre-commit run --hook-stage=push --verbose
,pwd 会说“myrepo”,而不是“myrepo/tool1” . 我需要在 tool1 中运行,因为所有路径等都是相对的。
是否有一些设置或其他方式来运行预提交,以便基本目录是 myrepo/tool1?还是该项目真的必须存在于回购的根目录中?
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:
git - 使用预提交时,mypy 检查通过但打印 mypy 语法错误
我使用 pre-commit 运行 mypy 类型检查,当 mypy 检查通过时,它会打印这样的字符串错误日志。
这很烦人,因为类似的日志打印了 20 行或 30 行,甚至与我编写的代码无关。我怎样才能禁用它?
这是我的预提交配置文件。