// CASE_FILE > HOOKPILOT

开发工具 · CLI2024

Hookpilot

团队总是跳过不一致的提交前检查。我构建了一款灵活的 Git 钩子管理器,让恰当的检查自动完成,如今在 npm 上每周下载量已达 50k+。

50k+
每周 npm 下载量
5
Git 生命周期阶段
0
启动所需配置文件
npmjs.com/package/hookpilotFEED//LIVE
$ npm i -D hookpilot
$ npx hookpilot init
[ok] hooks linked
[ok] checks staged-only
downloads/wk ......... 50k+
status: GUARDING
$

// 01 > CONTEXT

Hookpilot 是一款开源的 Git 钩子管理器。它附带一个开箱即用的钩子库(代码检查、格式化、测试、安全检查、提交信息校验、分支保护、大文件检查),外加一个用于添加、恢复、列出和移除钩子的交互式 CLI。

// 02 > THE_PROBLEM

提交前检查缓慢、各机器之间不一致且轻易就能被跳过,因此标准只能在 CI 之后才被强制执行,那已远在提交之后。

每个项目都手动重造一套钩子配置。配置在各个克隆之间漂移,新贡献者一开始什么都没接好,而一个快速的覆盖开关就能让任何人彻底绕过这些关卡。

之前

手搓钩子 · 各克隆间漂移 · 检查随意跳过

// 03 > APPROACH

我构建了一款零配置 CLI,通过一份纳入版本管理的配置,在整个 Git 生命周期中接好标准钩子,并对自定义 Shell 和 Node 脚本提供一等支持。

预定义钩子库

为 pre-commit、commit-msg、pre-push、post-merge 和 post-checkout 等任务提供现成的钩子。

一份纳入版本管理的配置

hooks-config.json 提交一次;每个克隆只需一次 init 即可继承相同的关卡。

Node.jsTypeScriptShellNPM

// 04 > THE_RESULT

一次 init 即可接好整个团队的关卡,而该软件包如今在 npm 上每周下载量已达 50k+。

之前

  • 每个仓库手动设置钩子
  • 配置在各机器间漂移
  • 检查容易被跳过

之后

  • 一句 npx hookpilot init
  • 共享、纳入版本管理的配置
  • 每周 npm 下载量 50k+
我希望钩子成为最省事的路径,而不是一件你会绕过去的苦差事。一份配置,提交一次,整个团队就处在同一套关卡之上。
AAmit RanaAuthor & Maintainer, Hookpilot

遇到了类似的问题?

预约 20 分钟通话