littleCareless/dish-ai-commit
littleCareless/dish-ai-commit has 163 GitHub stars and 14 forks. GitHot measured 0 in 7 days. Last checked 2026-11-10 22:18 UTC. Last push 2026-09-23.
Vibe Coding!!! 🤖 AI-Powered VSCode extension for generating standardized Git/SVN commit messages. ✨ Supports multiple AI services: OpenAI, ChatGPT, Ollama, Zhipu, DashScope, Doubao, Gemini and VS Code built-in AI. 🌍 Multi-language support (EN/CN/JP/KR/Other). 📊 Auto-generate weekly reports.
可以做什么
- AI-Powered Commit Generation: Intelligent commit message creation from code changes with context-aware analysis
- Multi-VCS Support: Works with both Git and SVN version control systems
- 20+ AI Providers: OpenAI, Ollama, GitHub Copilot, Zhipu AI, DashScope, Gemini, Anthropic Claude, Mistral AI, and more (including free options, local deployment with Ollama, and enterprise solutions like Azure OpenAI, Vertex AI, Cloudflare Workers AI)
- Semantic Code Analysis: Tree-sitter + Qdrant vector database to provide precise context for commit message generation
实测星标增长
- 24小时
- 更新延迟
- 7天
- 0
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.zh-CN.md
原文Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文
一个使用 AI 生成标准化 Git/SVN 提交消息的 VSCode 扩展。支持 OpenAI、Ollama、VSCode 内置 AI 服务、智谱 AI、DashScope、Gemini AI、豆包 AI、Deepseek AI、SiliconFlow 和 OpenRouter。
🆓 免费 AI 模型支持
- 智谱 AI (GLM-4-Flash) - 固定月度免费额度 (获取 API Key)
- Gemini AI - 每天 1500 次免费请求 (获取 API Key)
✨ 新功能
- PR 摘要生成: 根据 Git 提交记录自动生成 PR 的标题和描述。
- 代码语义索引与搜索: 利用
tree-sitter和向量数据库(Qdrant)对代码库进行语义索引,以在生成提交信息和代码审查时提供更丰富的上下文。 - 函数调用模式: 实验性功能,通过 AI 的函数调用能力生成结构化的提交信息。
- 动态设置界面: 插件的设置界面现在基于配置定义动态生成,提供更灵活和详细的配置选项。
特性
🤖 多平台 AI 支持
| AI 提供商 | 特点 | 适用场景 |
|---|---|---|
| OpenAI API | 高质量生成结果,支持 GPT-3.5/GPT-4 | 需要高质量输出的场景,按使用量收费 |
| Ollama | 本地部署,支持多个开源模型 | 数据隐私要求高的场景 |
| VSCode 内置 AI | 使用 GitHub Copilot | 拥有 GitHub Copilot 订阅的用户 |
| 智谱 AI (GLM-4) | 优秀的中文处理能力,固定月度免费额度 | 中国用户,中文处理 |
| DashScope | 阿里云提供,支持通义千问系列模型 | 企业级应用 |
| Gemini AI | 每日免费额度 1500 次请求 | 个人开发者 |
| Deepseek AI | 高质量开源大模型,中英文双语优化 | 多语言支持需求 |
| SiliconFlow | 高性能 AI 推理平台 | 需要多模型支持的场景 |
| OpenRouter | 开源 AI 路由服务,多模型支持 | 灵活的模型选择需求 |
📝 版本控制系统支持
- SVN
- Git
📊 周报生成
- AI 驱动的周报生成
- 自动总结你的工作进展
- 可自定义报告模板
- 支持多个 AI 提供商进行报告生成
🌿 分支名称生成
- 自动生成符合规范的 Git 分支名称
- 基于需求或功能描述智能创建分支名
- 支持多种分支命名规范和格式化
- 与所有 AI 提供商无缝集成
- 提高团队分支命名一致性
🌍 多语言提交消息生成
支持以下 19 种语言:
- 简体中文 (简体中文)
- 繁體中文 (繁體中文)
- 日语 (日本語)
- 韩语 (한국어)
- 捷克语 (Čeština)
- 德语 (Deutsch)
- 法语 (Français)
- 意大利语 (Italiano)
- 荷兰语 (Nederlands)
- 葡萄牙语 (Português)
- 越南语 (Tiếng Việt)
- 英语
- 西班牙语 (Español)
- 瑞典语 (Svenska)
- 俄语 (Русский)
- 印度尼西亚语 (Bahasa Indonesia)
- 波兰语 (Polski)
- 土耳其语 (Türkçe)
- 泰语 (ไทย)
🎨 符合 Conventional Commits 规范
生成的提交消息遵循 Conventional Commits 规范:
提交消息格式:
<类型>[可选作用域]: <描述> [可选正文] [可选脚注]支持的提交类型:
feat:新功能fix:修复 bugdocs:文档更改style:代码样式调整refactor:代码重构perf:性能改进test:测试相关改动build:构建相关改动ci:CI/CD 相关改动chore:其他改动revert:回滚提交
自动作用域检测:
- 从修改的文件路径自动推断
- 智能分类多文件更改
- 通过配置自定义作用域规则
支持重大更改:
- 使用
!标记重大更改 - 在正文中详细描述影响
- 示例:
feat!: 重构认证系统
- 使用
智能描述生成:
- 自动代码更改分析
- 关键修改点提取
- 生成清晰简洁的描述
😄 自动添加表情符号
- 自动为提交消息添加表情符号
- 可以通过配置启用/禁用:
{
"dish-ai-commit.features.commitFormat.enableEmoji": true // 启用表情符号
}
- 表情符号自动匹配提交类型:
- ✨ feat: 新功能
- 🐛 fix: 修复 bug
- 📝 docs: 文档
- 💄 style: 样式
- ♻️ refactor: 重构
- ⚡️ perf: 性能
- ✅ test: 测试
- 🔧 chore: 其他改动
📊 代码分析功能
- 智能代码差异分析
- 自动简化复杂代码更改
- 保留关键上下文信息
🔄 合并提交支持
通过启用 enableMergeCommit 选项,您可以:
- 将多个相关文件的更改合并到一个提交消息中
- 自动分析文件关联
- 生成更简洁的提交记录
📋 仅标题行提交消息
通过禁用 enableBody 选项,您可以:
- 生成仅包含标题行的提交消息(不含正文内容)
- 创建更简洁的提交历史
- 专注于最基本的信息
通过配置启用/禁用:
{
"dish-ai-commit.features.commitFormat.enableBody": false // 禁用提交消息正文
}
📝 周报模板
周报生成支持自定义模板:
- 通过 systemPrompt 配置自定义提示
- 按项目/任务总结
- 自定义报告格式和关键内容
🚀 PR 摘要生成
- 自动生成 PR 摘要: 根据 Git 提交记录自动生成 PR 的标题和描述。
- 多 AI 提供商支持: 支持多个 AI 提供商进行摘要生成。
- 可自定义: 可自定义摘要模板。
🧠 代码语义索引与搜索
- 语义索引: 利用
tree-sitter和向量数据库(Qdrant)对代码库进行语义索引。 - 上下文增强: 在生成提交信息和代码审查时提供更丰富的上下文。
- 多 embedding 服务支持: 支持 Ollama, Qdrant 等多种 embedding 服务。
📞 函数调用模式
- 结构化提交: 实验性功能,通过 AI 的函数调用能力生成结构化的提交信息。
- 工具集成: 允许 AI 模型通过指定的工具 (tool) 返回结构化的提交信息数据。
⚙️ 动态设置界面
- 动态生成: 插件的设置界面现在基于配置定义动态生成。
- 灵活配置: 提供更灵活和详细的配置选项。
📢 系统通知
- 即时反馈: 在成功生成提交信息或周报后,接收系统级通知。
- 跨平台: 利用
node-notifier支持 macOS、Windows 和 Linux 上的原生通知。 - 依赖说明: 此功能依赖于原生系统库。请确保您的系统已安装必要的组件以确保通知正常工作(例如,Windows 上的
SnoreToast,macOS 上的terminal-notifier)。
配置
| 配置项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| dish-ai-commit.base.language | string | 简体中文 | 提交消息语言 |
| dish-ai-commit.base.systemPrompt | string | "" | 自定义系统提示 |
| dish-ai-commit.base.provider | string | OpenAI | AI 提供商 |
| dish-ai-commit.base.model | string | gpt-3.5-turbo | AI 模型 |
| dish-ai-commit.providers.openai.apiKey | string | "" | OpenAI API key |
| dish-ai-commit.providers.openai.baseUrl | string | https://api.openai.com/v1 | OpenAI API 基础 URL |
| dish-ai-commit.providers.zhipu.apiKey | string | "" | 智谱 AI API key |
| dish-ai-commit.providers.dashscope.apiKey | string | "" | DashScope API key |
| dish-ai-commit.providers.doubao.apiKey | string | "" | 豆包 AI API key |
| dish-ai-commit.providers.ollama.baseUrl | string | http://localhost:11434 | Ollama API 基础 URL |
| dish-ai-commit.providers.gemini.apiKey | string | "" | Gemini AI API key |
| dish-ai-commit.providers.deepseek.apiKey | string | "" | Deepseek AI API key |
| dish-ai-commit.providers.siliconflow.apiKey | string | "" | SiliconFlow API key |
| dish-ai-commit.providers.openrouter.apiKey | string | "" | OpenRouter API key |
| dish-ai-commit.features.codeAnalysis.simplifyDiff | boolean | false | 启用差异内容简化 |
| dish-ai-commit.features.commitFormat.enableMergeCommit | boolean | false | 允许将多个文件更改合并为一个提交 |
| dish-ai-commit.features.commitFormat.enableEmoji | boolean | true | 在提交消息中使用表情符号 |
| dish-ai-commit.features.commitFormat.enableBody | boolean | true | 在提交消息中包含正文内容 |
| dish-ai-commit.features.weeklyReport.systemPrompt | string | "" | 周报的自定义系统提示 |
| dish-ai-commit.features.prSummary.systemPrompt | string | "" | PR 摘要的自定义系统提示 |
| dish-ai-commit.features.codeIndex.enabled | boolean | false | 启用代码语义索引 |
| dish-ai-commit.features.codeIndex.provider | string | "ollama" | 代码索引的 embedding 提供商 |
| dish-ai-commit.features.codeIndex.model | string | "nomic-embed-text" | 代码索引的 embedding 模型 |
| dish-ai-commit.features.codeIndex.qdrantUrl | string | "http://localhost:6333" | Qdrant 向量数据库 URL |
命令
| 命令 ID | 类别 | 标题 | 描述 |
|---|---|---|---|
| dish-ai-commit.selectModel | [Dish AI Commit] | 选择提交生成的 AI 模型 | 选择用于生成提交消息的 AI 模型 |
| dish-ai-commit.generateWeeklyReport | [Dish AI Commit] | 生成周报 | 生成 AI 驱动的每周工作报告 |
| dish-ai-commit.generateBranchName | [Dish AI Commit] | 生成分支名称 | 基于需求描述生成标准化分支名 |
| dish-ai-commit.generateCommitMessage | [Dish AI Commit] | 生成提交信息 | 生成符合规范的提交消息 |
| dish-ai-commit.reviewCode | [Dish AI Commit] | 代码审查 | AI 辅助的代码审查 |
| dish-ai-commit.generatePRSummary | [Dish AI Commit] | 生成 PR 摘要 | 根据 Git 提交记录生成 PR 摘要 |
配置说明
- OpenAI 配置
{
"dish-ai-commit.base.provider": "openai",
"dish-ai-commit.providers.openai.apiKey": "your-api-key",
"dish-ai-commit.providers.openai.baseUrl": "https://api.openai.com/v1"
}
- Ollama 配置
{
"dish-ai-commit.base.provider": "ollama",
"dish-ai-commit.providers.ollama.baseUrl": "http://localhost:11434"
}
- VSCode 配置
{
"dish-ai-commit.base.provider": "vscode"
}
- Deepseek AI 配置
{
"dish-ai-commit.base.provider": "deepseek",
"dish-ai-commit.providers.deepseek.apiKey": "your-api-key"
}
- SiliconFlow 配置
{
"dish-ai-commit.base.provider": "siliconflow",
"dish-ai-commit.providers.siliconflow.apiKey": "your-api-key"
}
- OpenRouter 配置
{
"dish-ai-commit.base.provider": "openrouter",
"dish-ai-commit.providers.openrouter.apiKey": "your-api-key"
}
📋 如何使用
- 从源代码管理器中选择要提交的文件
- 点击源代码管理器标题栏中的 "Dish AI Commit" 图标
- 或在命令面板中执行 "Dish AI Commit" 命令
- AI 将自动生成符合规范的提交消息
📥 安装
- 从 VS Code 扩展市场搜索 "Dish AI Commit"
- 点击安装
- 重启 VS Code
- 根据实际需要配置 AI 服务参数
📝 更新日志
请参阅 CHANGELOG.zh-CN.md 了解详细的版本历史。
📋 依赖要求
- VS Code 1.80.0+
- SVN 命令行工具
- SVN SCM(可选)- 如果您需要在 VSCode 的 SCM 输入框中输入提交信息,请安装 SVN SCM v2.18.1+
- 从 发布页面 下载最新版本的 SVN SCM 扩展
- Git SCM(可选)- 如果您需要在 VSCode 的 SCM 输入框中输入提交信息,请安装 Git SCM
- 有效的 AI 服务配置(OpenAI API 密钥或 Ollama 服务)
💡 常见问题
- 确保正确安装并可访问 SVN 命令行工具
- 确保正确安装并启用 SVN SCM 扩展
- 配置正确的 AI 服务参数
- 确保网络可以访问所选的 AI 服务
🛠️ 开发指南
🚀 CI/CD 自动化
本项目配置了完整的 CI/CD 工作流,用于自动化发布流程:
- Develop 分支:自动发布预发布版本
- Main 分支:自动发布正式版本
- 使用 GitHub Actions 完成自动构建、测试和发布
- 自动处理版本管理和发布流程
您可以使用 Github Codespaces 进行在线开发:
或者,您可以克隆仓库并运行以下命令进行本地开发:
$ git clone https://github.com/littleCareless/dish-ai-commit
$ cd dish-ai-commit
$ npm install
在 VSCode 中打开项目文件夹。按 F5 运行项目。将弹出一个新的扩展开发主机窗口并启动扩展。
🤝 贡献指南
我们欢迎所有形式的贡献,包括但不限于:
- 提交 Issues 报告 bug
- 提出新功能
- 提交 Pull Request 改进代码
- 改进文档
请确保在提交 PR 之前:
代码已测试
更新相关文档
遵循项目代码规范
💗 感谢我们的贡献者
🙏 鸣谢
本项目受以下优秀开源项目启发并参考:
- svn-scm - VSCode 的 SVN 源代码管理
- vscode - Visual Studio Code 编辑器
- vscode-gitlens - VSCode 的 Git 超级助手
- ai-commit - AI 辅助的 Git 提交消息生成
- vscode-copilot-chat - 由 Copilot 提供支持的 AI 聊天功能
📄 许可证
本项目采用 MIT 许可证。

