Gitpulse – 从终端生成AI驱动的常规提交
Gitpulse是一个命令行工具,利用AI分析暂存更改,生成符合Conventional Commits格式的提交信息。支持OpenCode、OpenAI、Ollama等AI提供商,提供交互式和全自动模式,并可安装Git钩子简化流程。
Gitpulse 是一款专为开发者设计的命令行工具,旨在解决提交信息撰写的痛点。它通过读取 Git 暂存区的更改内容,调用AI模型生成符合 Conventional Commits 标准(如 feat(scope): description)的提交信息,并将标题长度严格控制在72个字符以内。该工具由 erico964-blip 开发,采用 MIT 许可证发布,在 GitHub 上开源。
工具的核心功能包括:利用AI理解代码差异并生成有意义的提交信息;强制遵循 Conventional Commits 格式;提供交互式模式(确认、编辑、中止)和全自动模式(--auto 参数)。用户可以通过一条命令安装 Git 钩子(git pulse init),使每次提交时自动生成并预填提交信息,从而大幅提升开发效率。
Gitpulse 支持多种AI提供商:默认使用 OpenCode(本地或远程),也可切换到 OpenAI(需设置 OPENAI_API_KEY)或 Ollama(需设置 OLLAMA_API_URL)。用户可以在运行时通过 --provider、--model、--api-url 和 --api-key 参数覆盖默认设置。这种灵活性使得 Gitpulse 能够适应不同用户的需求和偏好。
安装方式极为简单:运行 pip install gitpulse-commit 即可。配置完成后,执行 git add . 暂存更改,然后运行 git pulse 即可看到生成的提交信息,例如 feat(auth): add JWT token validation。对于持续集成场景,使用 --auto 参数可实现无人值守提交,无需人工确认。此外,用户还可以通过 git pulse init 安装 prepare-commit-msg 钩子,此后每次执行 git commit 时,钩子会自动检查暂存更改、生成提交信息并打开编辑器预填,进一步简化工作流。
从技术实现来看,Gitpulse 的工作原理包括:提取 git diff --cached 的输出,将其与精心设计的系统提示一同发送至AI接口,解析响应后去除多余格式并截断至72字符。系统提示经过专门设计,确保AI仅返回提交信息本身,不包含任何额外内容。开发方面,项目基于 Python 3.8+,仅依赖 requests 库,轻量且易于扩展。开发者可以克隆仓库后通过 pip install -e . 进行可编辑安装,测试功能即将推出。
总之,Gitpulse 为开发者提供了一种高效、一致且标准化的提交信息生成方案,通过AI技术减轻了编写提交信息的负担,特别适用于需要遵循 Conventional Commits 规范的项目。无论是个人开发者还是团队协作,都能从中受益。