{"id":51316732,"url":"https://github.com/huchenghepang/ai-git","last_synced_at":"2026-07-01T08:02:47.902Z","repository":{"id":364066725,"uuid":"1265795582","full_name":"huchenghepang/ai-git","owner":"huchenghepang","description":"AI-powered Git context analyzer — 自动分析 Git 暂存区变更，生成详细的 Markdown 报告，并支持 AI 生成 Commit Message 和代码审查。","archived":false,"fork":false,"pushed_at":"2026-06-11T13:02:11.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T15:05:08.493Z","etag":null,"topics":["ai","git"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@huchenghe/ai-git","language":"JavaScript","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/huchenghepang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-11T04:55:25.000Z","updated_at":"2026-06-11T13:02:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/huchenghepang/ai-git","commit_stats":null,"previous_names":["huchenghepang/ai-git"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/huchenghepang/ai-git","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huchenghepang%2Fai-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huchenghepang%2Fai-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huchenghepang%2Fai-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huchenghepang%2Fai-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huchenghepang","download_url":"https://codeload.github.com/huchenghepang/ai-git/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huchenghepang%2Fai-git/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34997947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","git"],"created_at":"2026-07-01T08:02:46.920Z","updated_at":"2026-07-01T08:02:47.869Z","avatar_url":"https://github.com/huchenghepang.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ai-git 🚀\n\nAI-powered Git context analyzer — 自动分析 Git 暂存区变更，生成详细的 Markdown 报告，并支持 AI 生成 Commit Message 和代码审查。\n\n[![GitHub](https://img.shields.io/badge/GitHub-huchenghepang/ai--git-blue?logo=github)](https://github.com/huchenghepang/ai-git)\n[![npm version](https://img.shields.io/npm/v/@huchenghe/ai-git)](https://www.npmjs.com/package/@huchenghe/ai-git)\n[![License](https://img.shields.io/npm/l/@huchenghe/ai-git)](LICENSE)\n\n## 功能特性\n\n- ✅ **Git 变更分析** — 自动分析 `git diff --cached` 暂存区变更\n- ✅ **Markdown 报告** — 生成结构化的变更分析报告\n- ✅ **敏感信息脱敏** — 自动检测并脱敏密码、Token、API Key 等敏感信息\n- ✅ **交互模式** — 可选择性地包含特定文件\n- ✅ **AI 集成** — 自动调用 AI 生成 Commit Message 和代码审查\n- ✅ **剪贴板复制** — 自动复制报告或 Commit Message 到剪贴板\n- ✅ **独立 AI 工具** — 提供独立的 `ai-run` 命令直接调用 AI 接口\n\n## 安装\n\n### 全局安装（推荐）\n\n```bash\nnpm install -g @huchenghe/ai-git\n# 或\npnpm add -g @huchenghe/ai-git\n```\n\n安装后即可在任何 Git 仓库中使用 `ai-git` 命令。\n\n### 项目内安装\n\n```bash\nnpm install --save-dev @huchenghe/ai-git\n# 或\npnpm add -D @huchenghe/ai-git\n```\n\n### 从源码安装\n\n```bash\ngit clone https://github.com/huchenghepang/ai-git.git\ncd ai-git\nbun install\nbun run build\nnpm link\n```\n\n## 快速开始\n\n### 1. Git 变更分析\n\n在任意 Git 仓库中，先暂存文件：\n\n```bash\ngit add \u003cfile\u003e\n# 或\ngit add .\n```\n\n然后运行：\n\n```bash\nai-git\n```\n\n这将分析暂存区变更并生成 Markdown 报告，同时自动复制到系统剪贴板。\n\n### 2. 使用 AI 生成 Commit Message\n\n单次会话设置环境变量：\n\n```bash\nexport AI_API_KEY=\"your-api-key\"\nexport AI_URL=\"https://api.deepseek.cn\"\nexport AI_MODEL=\"deepseek-v4-flash\"\n```\n\n全局设置 在 `~/.bashrc` 或 `~/.zshrc` 中添加：\n\n```bash\nexport AI_API_KEY=\"your-api-key\"\nexport AI_URL=\"https://api.deepseek.cn\"\nexport AI_MODEL=\"deepseek-v4-flash\"\n```\n\n然后运行：\n\n```bash\nai-git -u\n```\n\nAI 会自动分析代码变更并生成符合 Conventional Commits 规范的 Commit Message。\n\n### 3. 使用 JSON 格式进行 AI 代码审查\n\n```bash\nai-git -e -u -j\n```\n\n这将输出详细的 JSON 格式代码审查报告，包含：\n- 各维度评分（代码规范、复杂度、安全性、可维护性、测试覆盖、性能）\n- 代码亮点和问题列表\n- 综合评分和建议\n\n## 命令参考\n\n| 命令 | 说明 |\n|------|------|\n| `ai-git` | Git 变更上下文分析器（默认） |\n| `ai-git-review` | 快捷命令：`ai-git -e -u -j` 一键完整 AI 审查 |\n| `ai-run` | 独立的 AI 请求工具 |\n\n### `ai-git` — Git 变更分析器\n\n```bash\nai-git [选项]\n```\n\n| 选项 | 说明 |\n|------|------|\n| `-a` | 包含完整文件内容（不截断） |\n| `-f \u003cnumber\u003e` | 设置文件最大行数（默认: 50000） |\n| `-l \u003cnumber\u003e` | 设置 diff 上下文行数（默认: 3） |\n| `-i` | 交互模式（选择要包含的文件） |\n| `-o \u003cpath\u003e` | 指定输出文件路径 |\n| `-m \u003cformat\u003e` | 输出格式（默认: md） |\n| `-r` | 禁用敏感信息脱敏 |\n| `-s` | 跳过敏感信息检测 |\n| `-u` | 上传到 AI 进行分析 |\n| `-j` | 强制 AI 输出 JSON 格式（需同时使用 `-u`） |\n| `-h` | 显示帮助信息 |\n\n**使用示例：**\n\n```bash\n# 基本分析\nai-git\n\n# 交互模式选择文件\nai-git -i\n\n# 指定输出文件\nai-git -o ./my-report.md\n\n# AI 生成 commit message\nai-git -u\n\n# AI 代码审查（JSON 格式）\nai-git -u -j\n\n# 交互模式 + AI 审查\nai-git -i -u -j\n\n# 包含完整文件内容\nai-git -a\n```\n\n### `ai-git-review` — 快捷命令：一键 AI 代码审查 🚀\n\n等价于 `ai-git -e -u -j`，一步完成完整 AI 代码审查。\n\n```bash\nai-git-review\n```\n\n直接输出 JSON 格式的代码审查报告，包含评分、问题列表、亮点和建议。\n\n### `ai-run` — 独立 AI 请求工具\n\n```bash\nai-run [选项] \u003cprompt\u003e\nai-run [选项] --file \u003cpath\u003e\n```\n\n| 选项 | 说明 |\n|------|------|\n| `--json`, `--forceJson` | 强制输出 JSON 格式 |\n| `--file \u003cpath\u003e`, `-f \u003cpath\u003e` | 从文件读取 prompt 内容 |\n| `--help`, `-h` | 显示帮助信息 |\n\n**使用示例：**\n\n```bash\n# 直接传入 prompt\nai-run \"请写一首诗\"\n\n# 从文件读取\nai-run --file ./prompt.txt\n\n# 强制 JSON 输出\nai-run --json \"分析这段代码\"\n```\n\n## 环境变量\n\n| 变量 | 说明 | 默认值 |\n|------|------|--------|\n| `AI_API_KEY` | AI 服务 API 密钥 | —（必填） |\n| `AI_URL` | AI 服务地址（如 `https://api.openai.com`） | —（必填） |\n| `AI_MODEL` | AI 模型名称 | `deepseek-v4-flash` |\n| `AI_TIMEOUT` | 请求超时时间（毫秒） | `30000` |\n| `MAX_CHARS` | AI 请求最大字符数 | `120000` |\n\n### 环境变量配置示例\n\n```bash\n# 方式 1: 直接 export\nexport AI_API_KEY=\"sk-xxxxx\"\nexport AI_URL=\"https://api.openai.com/v1\"\nexport AI_MODEL=\"gpt-4\"\n\n# 方式 2: 单行执行\nAI_API_KEY=\"sk-xxxxx\" AI_URL=\"https://api.openai.com/v1\" ai-git -u\n```\n\n## 输出示例\n\n运行 `ai-git` 后，会在 `logs/commit/` 目录下生成类似如下的 Markdown 报告：\n\n```markdown\n# Git 变更分析报告\n- 生成时间: 2026-06-11 12:00:00\n- 仓库: my-project\n- 分支: feature/new-feature\n\n## 一、变更概览\n### 统计信息\n 3 files changed, 150 insertions(+), 20 deletions(-)\n\n### 变更文件列表\nM       src/utils/ai.ts\nA       src/utils/parse-url.ts\nM       src/index.ts\n\n## 二、代码变更详情 (git diff --cached)\n...\n```\n\n## 开发指南\n\n### 本地开发\n\n```bash\n# 克隆项目\ngit clone https://github.com/huchenghepang/ai-git.git\ncd ai-git\n\n# 安装依赖\nbun install\n\n# 启动开发模式\nbun src/index.ts\n```\n\n### 发布到 npm\n\n```bash\n# 一键发布（交互式选择版本）\nbun run release\n\n# 或直接指定版本类型\nbun run release -- patch    # 补丁版本 1.0.0 → 1.0.1\nbun run release -- minor    # 小版本    1.0.0 → 1.1.0\nbun run release -- major    # 大版本    1.0.0 → 2.0.0\nbun run release -- 2.0.0    # 自定义版本号\n\n# 该命令会自动完成：\n#   1. 检查 Git 工作区是否干净\n#   2. 更新版本号\n#   3. 执行构建\n#   4. 发布到 npm\n#   5. Git 打标签并推送\n```\n\n### 本地测试\n\n发布前可在本地全局测试：\n\n```bash\n# 方式 1: 直接链接\nnpm link\n# 然后在任意目录测试\nai-git --help\n\n# 方式 2: 使用 .tgz 包\nnpm pack\nnpm install -g ./ai-git-1.0.0.tgz\n```\n\n## 技术栈\n\n- [Bun](https://bun.com) — 运行时与构建工具\n- [TypeScript](https://www.typescriptlang.org/) — 类型安全\n- [simple-git](https://github.com/steveukx/git-js) — Git 操作\n- [chalk](https://github.com/chalk/chalk) — 终端输出样式\n- [clipboardy](https://github.com/sindresorhus/clipboardy) — 剪贴板操作\n- [minimatch](https://github.com/isaacs/minimatch) — 文件匹配\n\n## 许可证\n\n[MIT](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuchenghepang%2Fai-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuchenghepang%2Fai-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuchenghepang%2Fai-git/lists"}