# ai commit **Repository Path**: stackcn/ai-commit ## Basic Information - **Project Name**: ai commit - **Description**: 121212121212 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-24 - **Last Updated**: 2026-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Commit 一个基于 AI 的 Git 提交信息生成工具,支持 VS Code 和 JetBrains IDEs。根据暂存的 Git 变更,一键生成可编辑的规范提交信息。 ## 功能特性 - **智能生成**:基于 Git diff 和变更文件,AI 自动生成符合规范的 commit message - **流式输出**:实时显示生成过程,支持中断 - **可编辑结果**:生成后可直接编辑,或追加指令重新生成 - **自定义规则**:支持配置自定义提交规则和格式风格 - **风格推断**:自动从历史提交中学习提交风格 - **安全存储**:API Key 安全存储在 IDE 的安全存储中 - **双平台支持**:同时提供 VS Code 扩展和 JetBrains 插件 ## 快速开始 ### VS Code 扩展 1. 安装扩展:在 VS Code 中搜索 "AI Commit" 并安装 2. 设置 API Key: - `Cmd/Ctrl+Shift+P` 运行 `AI Commit: 设置 API Key` - 输入你的 API Key(安全存储在 VS Code SecretStorage 中) 3. 配置模型(可选): - 打开设置,搜索 `aiCommit` - 配置 `aiCommit.provider.baseUrl`:OpenAI 兼容接口的 Base URL - 配置 `aiCommit.provider.model`:模型名称 4. 生成 Commit Message: - 先在源代码管理中暂存(Stage)变更 - 点击源代码管理标题栏的 **AI Commit** 按钮 - 或运行命令 `AI Commit: 生成 Commit Message` ### JetBrains 插件 1. 安装插件:在 JetBrains IDE 的插件市场搜索 "AI Commit" 并安装 2. 设置 API Key: - `Cmd/Ctrl+Shift+A` 打开查找操作 - 运行 `AI Commit: Set API Key` 3. 配置模型:打开设置,搜索 `AI Commit` 4. 生成 Commit Message: - 先暂存变更 - 在 Git 工具窗口点击 **AI Commit** 按钮 - 或右键变更文件选择 `Generate Commit Message` ## 使用流程 1. **暂存变更**:在源代码管理中暂存你的修改 2. **触发生成**:点击 AI Commit 按钮或运行生成命令 3. **编辑结果**: - 在结果面板中直接编辑内容 - 可追加临时指令(如"更简洁一些") 4. **应用提交**: - 点击 ✓ 应用到提交框 - 或按 `Ctrl/Cmd+Enter` 5. **完成提交**:在 Git 提交框中确认提交 如果没有暂存变更,会提示可选择使用工作区(未暂存)的变更来生成。 ## 配置说明 ### 通用配置 | 配置项 | 说明 | 默认值 | |--------|------|--------| | `aiCommit.prompt.customRules` | 自定义提交规则 | 按中文 Conventional Commits 生成 | | `aiCommit.commit.format` | 提交格式 | `conventional`(规范格式)或 `freeform`(自由格式) | | `aiCommit.provider.temperature` | 采样温度 | 控制生成随机性 | | `aiCommit.provider.maxTokens` | 最大输出 token 数 | - | | `aiCommit.provider.stream` | 是否流式输出 | `true` | | `aiCommit.history.inferFormat` | 从历史推断提交风格 | `true` | | `aiCommit.maxDiffBytes` | 最大 diff 字节数 | 超出会被裁剪 | ### Provider 配置 - `aiCommit.provider.baseUrl`:OpenAI 兼容接口的 Base URL(默认 `https://api.openai.com/v1`) - `aiCommit.provider.model`:模型名称(如 `gpt-4`、`claude-3-sonnet`) ### 自定义规则示例 ```markdown 按以下规则生成 commit message: 1. 使用中文 2. 格式遵循 Conventional Commits:(): 3. type 只支持:feat、fix、docs、style、refactor、test、chore 4. subject 简明扼要,不超过 50 字 ``` ## 命令列表 ### VS Code | 命令 | 说明 | |------|------| | `AI Commit: 生成 Commit Message` | 根据 Git 变更生成 commit message | | `AI Commit: 设置 API Key` | 设置 API Key(安全存储) | | `AI Commit: 打开设置` | 打开插件设置 | ### JetBrains | 操作 | 说明 | |------|------| | `Generate Commit Message` | 生成 commit message | | `Set API Key` | 设置 API Key | | `Open Settings` | 打开插件设置 | ## 项目结构 ``` ai-commit/ ├── .codex/ # OpenSpec 规范文档 ├── docs/ # 手动验证文档 ├── jetbrains/ # JetBrains 插件 │ └── src/main/kotlin/me/wdev/aicommit/ │ ├── actions/ # IDE 动作 │ ├── config/ # 配置管理 │ ├── core/ # 核心逻辑 │ │ ├── GenerationPipeline.kt # 生成管道 │ │ ├── GitReader.kt # Git 读取 │ │ ├── PromptBuilder.kt # Prompt 构建 │ │ ├── ProviderClient.kt # Provider 调用 │ │ ├── StyleInference.kt # 风格推断 │ │ └── TinyJson.kt # JSON 解析 │ └── flow/ # 流程控制 ├── resources/ # 资源文件 ├── src/ # VS Code 扩展 │ ├── core.ts # 核心逻辑 │ ├── coreGit.ts # Git 操作 │ ├── corePrompt.ts # Prompt 构建 │ ├── coreProvider.ts # Provider 调用 │ ├── coreStyle.ts # 风格推断 │ ├── extension.ts # 扩展入口 │ ├── resultPanel.ts # 结果面板 │ └── test/ # 测试文件 └── openspec/ # OpenSpec 变更规范 ``` ## 核心模块 ### Git 读取 (`GitReader`) - 读取暂存或工作区的变更 - 解析 Git 状态,获取变更文件列表 - 生成 diff 摘要 - 支持按选定路径筛选变更 ### Provider 调用 (`ProviderClient`) - 支持 OpenAI 兼容的 Chat Completions API - 流式响应处理(SSE 解析) - 支持推理型模型(reasoning_content) - 错误处理和重试 ### 风格推断 (`StyleInference`) - 分析历史提交,推断: - 提交语言(中文/英文) - 提交格式(Conventional/Freeform) - type 类型列表 - scope 风格 - body 使用方式 - 生成结构化的风格描述 ### Prompt 构建 (`PromptBuilder`) - 根据配置构建 prompt - 包含自定义规则、风格信息、Git 上下文 - 支持临时指令追加 ## 构建与开发 ### VS Code 扩展 ```bash # 安装依赖 pnpm install # 开发模式运行 F5 启动调试 # 打包 pnpm vsce package ``` ### JetBrains 插件 ```bash cd jetbrains # 构建插件 ./gradlew buildPlugin # 运行 IDE 实例 ./gradlew runIde ``` ## 兼容性 - VS Code:1.80.0+ - JetBrains:2023.1+ (IntelliJ IDEA, WebStorm, PyCharm, etc.) - Node.js:18+ (用于构建 VS Code 扩展) - Kotlin:1.9+ (用于 JetBrains 插件) ## 依赖说明 ### VS Code 扩展依赖 - `@vscode/vsce`:插件打包工具 ### JetBrains 插件依赖 - Kotlin 标准库 - IntelliJ Platform SDK - HttpClient(用于 API 调用) ## 测试 项目包含完整的单元测试,涵盖: - Git 读取与 diff 处理 - Prompt 构建逻辑 - Provider 响应解析 - 风格推断算法 运行测试: ```bash # VS Code 扩展 pnpm test # JetBrains 插件 cd jetbrains ./gradlew test ``` ## 许可证 本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 致谢 - [OpenAI](https://openai.com/) - API 支持 - [Conventional Commits](https://www.conventionalcommits.org/) - 提交规范