TLDR: prek 是用 Rust 重写的 pre-commit 工具,支持自动管理多种语言编写的 hook ,欢迎大家 star: https://github.com/j178/prek
距离第一次发帖 airflow 正在迁移到我写的 pre-commit 替代品 已经过去 4 个月了,这段时间 prek 经历了很多不可思议的「第一次」,今天想和大家更新一下项目的最新进展。
这几个月主要专注于功能的完善和性能优化:
.pre-commit-config.yaml 配置文件,再也不用在根目录维护一个庞大的配置了repo: builtin 内置 hook ,开箱即用更方便prek auto-update --cooldown-days 参数可以设置更新冷却期,避免依赖包被恶意篡改后立即自动更新带来的安全风险让我最有成就感的是项目得到了社区的广泛认可:
Apache Airflow 深度集成了 prek ,还在官方系列文章里专门写了一篇介绍:Modern Python Monorepo for Apache Airflow - Part 3
已经有不少知名项目迁移或正在迁移中:
开源真的很有意思,你永远不知道下一个用户会是谁。那些曾经仰望的大佬,也会在你的项目里出现!
如果你还在用 Python 版本的 pre-commit ,不妨试试 prek ,欢迎建议和反馈!
1
cryptovae 3 天前 确实好强,上次看你发这个帖子时好像才 100 多个 star ,就在几个月前
|
5
Razio 2 天前 |
6
zqr10159 2 天前
正好打算在我们项目里用,对这个不太了解啊,咨询一下楼主。我们项目仓库里是同时有前后端的代码,如何让所有克隆我们仓库的人在提交时必须运行 prek 来对前后端执行检查呢?前端是 angular 的,后端是 java ,麻烦楼主指点一下。https://github.com/apache/hertzbeat
|
7
j0hnj OP @zqr10159 首先需要在仓库中添加 `.pre-commit-config.yaml` 文件,并配置相应的检查 hook 。
关于”如何强制所有克隆仓库的人在提交时运行 pre-commit 检查”,实际上无法做到强制要求。只有在开发者本地执行 `prek install` 安装 git hook 之后,提交时才会自动触发 prek 检查。 推荐的最佳实践是:在 CI 流程中也添加 prek 检查步骤。这样当贡献者的 PR 触发 CI 检查失败时,他们会意识到需要在本地执行 `prek install`,以便在提交前就能快速发现并修复问题,而不是等到提交 PR 后才发现问题,提高开发效率。 |
9
zqr10159 2 天前
@j0hnj https://github.com/rudikershaw/git-build-hook 搜了一下不知道这个能不能用
|