资讯动态

Resume Matcher 如何启用本地 pre-push 钩子拦截测试失败的推送?

发布时间:2026/9/13 10:37:07 来源:尧图企业网站定制
Resume Matcher 如何启用本地 pre-push 钩子拦截测试失败的推送【免费下载链接】Resume-MatcherThe #1 AI Harness for Building Resumes, PDFs, Cover Letters more, locally with 100 LLMs support.项目地址: https://gitcode.com/GitHub_Trending/re/Resume-MatcherResume-Matcher 仓库刻意不提供 PR 触发的 GitHub Actions 测试工作流——因为仓库收到大量外部贡献者 PRCI 会在每一个 PR 上运行包括不可信代码。取而代之的是仓库内置的本地pre-push钩子提交后照常 push钩子在推送前运行后端测试、前端 locale 一致性检查和前端测试套件任何一项失败都会中止推送。本文讲如何在你自己的 clone 里启用它、它会执行哪些检查、如何验证拦截生效以及需要绕过时的出口。钩子已经在仓库里.githooks/pre-push钩子脚本随仓库版本管理位于 .githooks/pre-push配套说明在 .githooks/README.md。它是一条local CI在你本机的git push前运行不需要任何额外部署。它按顺序执行三项检查且所有检查都会跑完让你一次看到全部失败而不是只看到第一个后端测试套件—— 在apps/backend下执行uv run pytest -q -p no:cacheprovider约 8 秒。LLM-judge evals 通过addopts -m not eval默认排除因此不发起任何网络/LLM 调用。前端 locale 一致性—— 用纯 Python无 Node/npm/nvm 依赖运行 scripts/check_locale_parity.py校验每个apps/frontend/messages/*.json的键结构与en.json一致。这个检查针对的正是曾经导致next build失败、且只在合并后 Docker 发布任务中才暴露的 i18n 结构不一致问题。前端测试套件—— 在apps/frontend下运行 vitest但仅当node在 PATH 上且apps/frontend/node_modules/.bin/vitest存在时才执行否则跳过并打印警告。完整的tsc/next build检查有意不在此钩子中运行文档记录的原因是钩子内 nvm/node 环境不可靠。环境缺失时的行为脚本.githooks/pre-push中明确定义找不到uv后端检查直接记为失败推送会被阻断找不到python3跳过 locale 检查并打印警告不阻断找不到node或 vitest跳过前端测试并打印警告不阻断。启用每个 clone 执行一次git config core.hooksPath .githooks这一条命令就是全部启用步骤。它是本地 git 设置只对你当前这个 clone 生效不会写进仓库、也不影响其他克隆者——这是设计使然因为每个开发者的本地环境不同。启用前提钩子脚本依赖的组件cd apps/backend uv sync # 安装后端依赖创建 .venvuv 本身需要在 PATH 上前端 vitest 套件需要node_modules存在即已执行过npm install没有它时钩子只是跳过前端测试后端检查和 locale 检查仍然生效。验证拦截是否生效正常路径下每次git push会先看到钩子的输出头── pre-push gate ──随后逐项打印▶ backend : uv run pytest、▶ frontend : locale parity (messages/*.json vs en.json)、▶ frontend : vitest run。全部通过时输出✓ pre-push gate passed — pushing.确认拦截能力的最直接方式让某项检查变红再推送。比如故意改坏一个后端断言后 push钩子会输出✗ backend tests failed并以✗ pre-push gate FAILED — push aborted. Fix the above, or bypass with: git push --no-verify结尾、退出码为 1推送中止。修复后重新 push 即可。不想每次 push 都等钩子时可以按文档给出的命令手动跑各项检查cd apps/backend uv run pytest # 后端套件 python3 scripts/check_locale_parity.py # locale 一致性在仓库根目录执行 cd apps/frontend npm run test # 前端套件vitest日常使用的心智模型是commit 随便提交闸门在 push 时才运行而不是每个 commit 都跑。绕过与彻底关闭文档给出两个明确的出口见 .githooks/README.mdgit push --no-verify # 单次绕过闸门适用于 docs-only / WIP 分支 git config --unset core.hooksPath # 彻底关闭钩子边界与限制钩子是本地设置换一个新 clone 需要重新执行git config core.hooksPath .githooks它拦截的是本机发起的 pushdev/main在维护者自己推送时保持绿色外部贡献者的 PR 不经过这道闸门——仓库的决策记录docs/agent/testing-strategy.md §7解释了这是有意为之前端tsc/next build目前不在钩子中TypeScript 类型错误只能靠 locale 一致性检查和手动next build兜底仓库的 agentic E2E monitorapps/backend/e2e_monitor/是按需、report-only 的上层工具从不被写进 pre-push 钩子。完整测试策略与这项闸门的设计背景见 docs/agent/testing-strategy.mdPhase 6。【免费下载链接】Resume-MatcherThe #1 AI Harness for Building Resumes, PDFs, Cover Letters more, locally with 100 LLMs support.项目地址: https://gitcode.com/GitHub_Trending/re/Resume-Matcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价