{"id":35198930,"url":"https://github.com/littlecareless/dish-ai-commit","last_synced_at":"2026-02-14T13:01:07.638Z","repository":{"id":265403783,"uuid":"895927135","full_name":"littleCareless/dish-ai-commit","owner":"littleCareless","description":"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.","archived":false,"fork":false,"pushed_at":"2026-02-09T02:44:36.000Z","size":29283,"stargazers_count":142,"open_issues_count":4,"forks_count":14,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-09T08:37:44.357Z","etag":null,"topics":["ai","chatgpt","commit","commit-message","deepseek","git","svn","vibe-coding","vscode-extension"],"latest_commit_sha":null,"homepage":"https://554659.me/dish-commit-docs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/littleCareless.png","metadata":{"files":{"readme":"README.cursor.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-11-29T07:44:36.000Z","updated_at":"2026-02-07T10:40:53.000Z","dependencies_parsed_at":"2024-12-19T08:29:46.820Z","dependency_job_id":"120a4625-8764-4e52-847e-eff520b20e79","html_url":"https://github.com/littleCareless/dish-ai-commit","commit_stats":null,"previous_names":["littlecareless/svn-commit-gen","littlecareless/dish-ai-commit"],"tags_count":139,"template":false,"template_full_name":null,"purl":"pkg:github/littleCareless/dish-ai-commit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littleCareless%2Fdish-ai-commit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littleCareless%2Fdish-ai-commit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littleCareless%2Fdish-ai-commit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littleCareless%2Fdish-ai-commit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/littleCareless","download_url":"https://codeload.github.com/littleCareless/dish-ai-commit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littleCareless%2Fdish-ai-commit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29444023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T12:43:28.304Z","status":"ssl_error","status_checked_at":"2026-02-14T12:43:14.160Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatgpt","commit","commit-message","deepseek","git","svn","vibe-coding","vscode-extension"],"created_at":"2025-12-29T09:29:40.942Z","updated_at":"2026-02-14T13:01:07.632Z","avatar_url":"https://github.com/littleCareless.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"项目结构总览\n这是一个 VSCode 扩展项目，主要用于 AI 辅助的代码提交信息生成、周报生成和代码审查。项目采用 TypeScript + React 技术栈开发。\n\n\n.\n├── CHANGELOG.md\n├── CHANGELOG.zh-CN.md\n├── commitlint.config.mjs\n├── dish-ai-commit-0.6.1.vsix\n├── dish-ai-commit-0.6.2.vsix\n├── eslint.config.mjs\n├── i18n\n│   ├── en.json\n│   └── zh-cn.json\n├── images\n│   ├── icon.svg\n│   └── logo.png\n├── license\n├── package.json\n├── package-lock.json\n├── pnpm-lock.yaml\n├── README.cursor.md\n├── README.md\n├── README.zh-CN.md\n├── src\n│   ├── ai\n│   │   ├── AIProviderFactory.ts\n│   │   ├── providers\n│   │   │   ├── BaseOpenAIProvider.ts\n│   │   │   ├── DashScopeProvider.ts\n│   │   │   ├── DeepseekAIProvider.ts\n│   │   │   ├── DoubaoProvider.ts\n│   │   │   ├── GeminiAIProvider.ts\n│   │   │   ├── OllamaProvider.ts\n│   │   │   ├── OpenAIProvider.ts\n│   │   │   ├── VscodeProvider.ts\n│   │   │   └── ZhipuAIProvider.ts\n│   │   ├── types.ts\n│   │   └── utils\n│   │       └── generateHelper.ts\n│   ├── commands\n│   │   ├── BaseCommand.ts\n│   │   ├── GenerateCommitCommand.ts\n│   │   ├── GenerateWeeklyReportCommand.ts\n│   │   ├── ReviewCodeCommand.ts\n│   │   └── SelectModelCommand.ts\n│   ├── commands.ts\n│   ├── config\n│   │   ├── ConfigGenerator.ts\n│   │   ├── ConfigSchema.ts\n│   │   ├── ConfigurationManager.ts\n│   │   ├── DefaultConfig.ts\n│   │   ├── generated\n│   │   │   └── configKeys.ts\n│   │   └── types.ts\n│   ├── constants.ts\n│   ├── extension.ts\n│   ├── prompt\n│   │   ├── codeReview.ts\n│   │   ├── prompt.ts\n│   │   └── weeklyReport.ts\n│   ├── scm\n│   │   ├── AuthorService.ts\n│   │   ├── CommitLogStrategy.ts\n│   │   ├── GitProvider.ts\n│   │   ├── SCMProvider.ts\n│   │   ├── SvnProvider.ts\n│   │   └── SvnUtils.ts\n│   ├── scripts\n│   │   └── updateConfig.ts\n│   ├── services\n│   │   ├── ModelPickerService.ts\n│   │   └── weeklyReport.ts\n│   ├── types\n│   │   └── weeklyReport.ts\n│   ├── utils\n│   │   ├── date\n│   │   │   ├── date.md\n│   │   │   ├── DateUtils.ts\n│   │   │   └── index.ts\n│   │   ├── diff\n│   │   │   ├── DiffFormatter.ts\n│   │   │   ├── diff.md\n│   │   │   ├── DiffSimplifier.ts\n│   │   │   ├── DiffSplitter.ts\n│   │   │   ├── index.ts\n│   │   │   └── types.ts\n│   │   ├── i18n\n│   │   │   ├── i18n.md\n│   │   │   ├── index.ts\n│   │   │   └── LocalizationManager.ts\n│   │   ├── index.ts\n│   │   ├── notification\n│   │   │   ├── index.ts\n│   │   │   ├── NotificationManager.ts\n│   │   │   ├── notification.md\n│   │   │   ├── NotificationTypes.ts\n│   │   │   └── ProgressHandler.ts\n│   │   ├── review\n│   │   │   ├── CodeReviewReportGenerator.ts\n│   │   │   ├── index.ts\n│   │   │   └── review.md\n│   │   └── webview\n│   │       ├── index.ts\n│   │       ├── webview.md\n│   │       └── webview.ts\n│   ├── webview\n│   │   ├── config\n│   │   │   └── ModelConfigurationManager.ts\n│   │   ├── handlers\n│   │   │   └── WeeklyReportMessageHandler.ts\n│   │   ├── providers\n│   │   │   └── WeeklyReportViewProvider.ts\n│   │   ├── services\n│   │   │   └── WeeklyReportGenerator.ts\n│   │   └── WeeklyReportPanel.ts\n│   └── webview-ui\n│       ├── components.json\n│       ├── eslint.config.js\n│       ├── index.html\n│       ├── package.json\n│       ├── pnpm-lock.yaml\n│       ├── postcss.config.js\n│       ├── src\n│       │   ├── App.css\n│       │   ├── App.tsx\n│       │   ├── components\n│       │   │   ├── DateRangeSelector.tsx\n│       │   │   ├── Editor.tsx\n│       │   │   └── ui\n│       │   │       ├── accordion.tsx\n│       │   │       ├── alert-dialog.tsx\n│       │   │       ├── alert.tsx\n│       │   │       ├── aspect-ratio.tsx\n│       │   │       ├── avatar.tsx\n│       │   │       ├── badge.tsx\n│       │   │       ├── breadcrumb.tsx\n│       │   │       ├── button.tsx\n│       │   │       ├── calendar.tsx\n│       │   │       ├── card.tsx\n│       │   │       ├── carousel.tsx\n│       │   │       ├── chart.tsx\n│       │   │       ├── checkbox.tsx\n│       │   │       ├── collapsible.tsx\n│       │   │       ├── command.tsx\n│       │   │       ├── context-menu.tsx\n│       │   │       ├── dialog.tsx\n│       │   │       ├── drawer.tsx\n│       │   │       ├── dropdown-menu.tsx\n│       │   │       ├── form.tsx\n│       │   │       ├── hover-card.tsx\n│       │   │       ├── input-otp.tsx\n│       │   │       ├── input.tsx\n│       │   │       ├── label.tsx\n│       │   │       ├── menubar.tsx\n│       │   │       ├── navigation-menu.tsx\n│       │   │       ├── pagination.tsx\n│       │   │       ├── popover.tsx\n│       │   │       ├── progress.tsx\n│       │   │       ├── radio-group.tsx\n│       │   │       ├── resizable.tsx\n│       │   │       ├── scroll-area.tsx\n│       │   │       ├── select.tsx\n│       │   │       ├── separator.tsx\n│       │   │       ├── sheet.tsx\n│       │   │       ├── skeleton.tsx\n│       │   │       ├── slider.tsx\n│       │   │       ├── sonner.tsx\n│       │   │       ├── switch.tsx\n│       │   │       ├── table.tsx\n│       │   │       ├── tabs.tsx\n│       │   │       ├── textarea.tsx\n│       │   │       ├── toaster.tsx\n│       │   │       ├── toast.tsx\n│       │   │       ├── toggle-group.tsx\n│       │   │       ├── toggle.tsx\n│       │   │       └── tooltip.tsx\n│       │   ├── constants.ts\n│       │   ├── contexts\n│       │   │   └── ExtensionContext.tsx\n│       │   ├── hooks\n│       │   │   └── use-toast.ts\n│       │   ├── index.css\n│       │   ├── lib\n│       │   │   ├── constants.ts\n│       │   │   ├── utils.ts\n│       │   │   └── vscode.ts\n│       │   ├── main.tsx\n│       │   ├── types\n│       │   │   └── vscode.d.ts\n│       │   └── vite-env.d.ts\n│       ├── tailwind.config.js\n│       ├── tsconfig.app.json\n│       ├── tsconfig.app.tsbuildinfo\n│       ├── tsconfig.json\n│       ├── tsconfig.node.json\n│       ├── tsconfig.node.tsbuildinfo\n│       └── vite.config.ts\n├── tsconfig.json\n├── vsc-extension-quickstart.md\n└── webview-ui-dist\n    ├── index.css\n    ├── index.html\n    └── index.js\n\n36 directories, 164 files\n首先看顶层目录的组织方式:\n1. 基础配置文件 - package.json, tsconfig.json 等用于项目配置\n2. 文档文件 - README.md 及其国际化版本\n3. src/ - 主要源代码目录\n4. webview-ui-dist/ - 编译后的 WebView UI 文件\n5. i18n/ - 国际化资源文件\n\n项目采用 TypeScript 开发,使用了现代前端工具链。从目录结构可以看出这是一个功能完整的 VS Code 扩展,包含:\n- AI 辅助功能 (src/ai/)\n- 命令系统 (src/commands/)\n- 配置管理 (src/config/)\n- 源代码管理集成 (src/scm/)\n- WebView UI (src/webview-ui/)\n顶级目录重要文件:\npackage.json: 项目的 NPM 配置文件,定义了项目依赖和 VS Code 扩展配置\ntsconfig.json: TypeScript 编译配置\nREADME.md/README.zh-CN.md: 项目文档及其中文版本\nCHANGELOG.md/CHANGELOG.zh-CN.md: 版本变更记录\ni18n: 国际化资源文件目录\nsrc 目录 - 主要源代码:\nai/: AI 相关实现\n\nproviders/: 不同 AI 服务提供商的实现\nAIProviderFactory.ts: AI 提供商工厂类\ntypes.ts: AI 相关类型定义\ncommands/: VS Code 命令实现\n\nBaseCommand.ts: 基础命令类\nGenerateCommitCommand.ts: 生成提交信息命令\nGenerateWeeklyReportCommand.ts: 生成周报命令\nReviewCodeCommand.ts: 代码审查命令\nSelectModelCommand.ts: 选择 AI 模型命令\nconfig/: 配置管理\n\nConfigSchema.ts: 配置模式定义\nConfigurationManager.ts: 配置管理器\ngenerated/configKeys.ts: 生成的配置键常量\nscm/: 源代码管理集成\n\nGitProvider.ts: Git 集成\nSvnProvider.ts: SVN 集成\nSCMProvider.ts: SCM 提供商接口\nutils/: 工具函数\n\ndate/: 日期处理\ndiff/: 差异比较\ni18n: 国际化\nnotification/: 通知管理\nreview/: 代码审查\nwebview/: WebView 相关\nwebview-ui/ 目录 - WebView UI 实现:\n使用 React + TypeScript 构建\n包含多个UI组件\n使用 Tailwind CSS 进行样式管理\n完整的构建配置\n项目特点:\n完善的国际化支持\n模块化的架构设计\n丰富的工具函数支持\n规范的代码组织\n完整的构建和发布流程\n\n3. 主要功能模块\n3.1 AI 集成模块 (src/ai/)\n支持多种 AI 提供商：OpenAI、Gemini、DashScope、DeepSeek、ZhipuAI 等\n使用工厂模式管理不同 AI 提供商\n统一的接口定义和类型系统\n3.2 命令模块 (src/commands/)\n生成代码提交信息\n生成周报\n代码审查\nAI 模型选择\n3.3 源代码管理模块 (src/scm/)\n支持 Git 和 SVN 两种版本控制系统\n统一的 SCM 提供商接口\n版本控制相关操作封装\n3.4 配置管理 (src/config/)\n扩展配置管理\n默认配置提供\n配置模式定义\n3.5 WebView UI (src/webview-ui/)\n基于 React + TypeScript\n使用 Vite 作为构建工具\n现代化 UI 组件库\n支持主题切换\n响应式设计\n4. 技术特点\n架构设计\n模块化架构\n工厂模式\n依赖注入\n面向接口编程\n技术栈\nTypeScript\nReact\nVite\nTailwind CSS\nVSCode Extension API\n代码质量\nESLint 代码检查\nTypeScript 类型检查\n统一的代码风格\n国际化\n支持多语言（中英文文档）\n本地化管理器","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittlecareless%2Fdish-ai-commit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flittlecareless%2Fdish-ai-commit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittlecareless%2Fdish-ai-commit/lists"}