SuperAPI AI 工具集

hk

测试与质量

查看项目

更新于 10-15 20:27

技能介绍

用途:hk 是 jdx 开发的 Git 钩子管理器,用于在任意仓库中设置和维护 pre-commit 等钩子,把 linter、格式化器、类型检查、测试等作为 git 钩子运行。它内置并行执行、文件锁(避免竞态)和仅针对暂存文件的操作,因此不需要单独的 lint-staged。配置使用 Pkl(Apple 的类型化配置语言)。

主要能力:支持内置步骤(如 trailing-whitespace、newlines、check-merge-conflict、typos、rumdl)和自定义步骤;可按 glob 限定触发文件;支持 fix 自动修复并重新暂存、stash 隔离暂存改动;支持 Group 分组实现组内并行、组间顺序,或用 depends 精细排序;提供模板变量如 {{files}}、{{commit_msg_file}}、{{workspace}}、{{root}}、{{tmp}};支持 commit-msg、pre-push 等钩子。

使用方式:典型流程为三步——检测项目类型与已有工具,按层级组合 hk.pkl 步骤,再接线钩子。需要创建或更新 mise.toml(加入 hk、pkl 及所需工具)、hk.pkl 配置、.hk-hooks/pre-commit 包装脚本,然后执行 chmod +x .hk-hooks/* 与 git config --local core.hooksPath .hk-hooks。JS 项目可在 package.json 的 prepare 脚本中设置 core.hooksPath。验证用 hk check --all 和 hk validate。临时绕过可用 HK=0 git commit 或 HK_SKIP_STEPS=vitest git commit。

限制:资料未提供收费、价格、平台支持范围等信息。钩子是每个克隆本地的,需要 core.hooksPath,且可被 --no-verify 绕过,不构成安全边界。包装脚本的 -q 静默成功输出需要 hk ≥ 1.51.0;amends 与 import 的版本必须与已安装 hk 版本一致。部分检查(如 pnpm 构建脚本检查)只能读取已安装依赖树,平台相关的可选依赖可能无法在本地发现。