1个不稳定版本

0.7.0 2024年8月26日
0.4.0 2024年8月25日

开发工具类别中排名第786

Download history 222/week @ 2024-08-20

每月下载量222

Apache-2.0

590KB
6.5K SLoC

🔮 Git-Iris:AI驱动Git工作流助手

CI/CD License GitHub Release

利用AI的力量提升您的Git工作流 🚀

安装配置使用贡献许可

Git-Iris Screenshot 1 Git-Iris Screenshot 2 Git-Iris Screenshot 3

Git-Iris操作:AI驱动Git工作流助手

🌟 概述

Git-Iris是一款全面的AI驱动Git工作流助手,从开始到结束都能增强您的开发流程。它提供智能支持,用于编写有意义的提交消息、生成有洞察力的变更日志和创建详细的发行说明。通过利用先进的AI模型,Git-Iris提高您的生产力和项目文档质量。

✨ 特点

Git-Iris提供一系列AI工具来增强您的Git工作流

  • 🤖 智能提交消息:生成具有上下文感知的有意义提交消息
  • 📜 动态变更日志生成:在任意两个Git引用之间创建结构化、详细的变更日志
  • 📋 全面的发行说明:自动生成包含总结和关键变更的发行说明
  • 🔄 多供应商AI支持:利用OpenAI GPT-4o、Anthropic Claude或Ollama的AI功能
  • 🎨 Gitmoji集成:为您的提交、变更日志和发行说明添加表达性表情符号
  • 🖥️ 交互式CLI:通过直观的命令行界面完善AI生成的内容
  • 🔧 可定制工作流:使用自定义指令和预设调整AI行为
  • 📚 灵活指令预设:快速在不同文档样式之间切换
  • 🧠 智能上下文提取:分析存储库更改以生成更准确的内容
  • 📊 智能代码分析:根据您的代码库提供上下文感知的建议
  • 🔍 相关性评分:在生成内容中优先考虑重要变更
  • 📝 多语言支持:分析Rust、JavaScript、Python、Java等多语言变更
  • 🚀 性能优化:高效令牌管理以实现响应式AI交互

🛠️ 安装

先决条件

  • Rust和Cargo(最新稳定版)
  • Git 2.23.0或更高版本
cargo install git-iris

手动安装

  1. 克隆仓库

    git clone https://github.com/hyperb1iss/git-iris.git
    cd git-iris
    
  2. 构建和安装

    cargo build --release
    cargo install --path .
    

⚙️ 配置

Git-Iris 使用位于 ~/.config/git-iris/config.toml 的配置文件。设置您首选的 AI 提供商

# For OpenAI
git-iris config --provider openai --api-key YOUR_OPENAI_API_KEY

# For Anthropic Claude
git-iris config --provider claude --api-key YOUR_CLAUDE_API_KEY

# For Ollama (no API key required)
git-iris config --provider ollama

其他配置选项

# Set default provider
git-iris config --default-provider openai

# Enable/Disable Gitmoji
git-iris config --gitmoji true

# Set custom instructions
git-iris config --instructions "Always mention the ticket number in the commit message"

# Set default instruction preset
git-iris config --preset conventional

# Set token limit for a provider
git-iris config --provider openai --token-limit 4000

# Set model for a provider
git-iris config --provider openai --model gpt-4o

# Set additional parameters for a provider
git-iris config --provider openai --param temperature=0.7 --param max_tokens=150

有关更详细的配置信息,请参阅我们的 配置指南

📖 使用方法

生成 AI 辅助的提交信息

git-iris gen

选项

  • -a--auto-commit:自动使用生成的信息提交
  • ---instructions:为此次提交提供自定义指令
  • --provider:指定一个 LLM 提供商(openai,claude,ollama)
  • --preset:使用特定的指令预设
  • --no-gitmoji:为此次提交禁用 Gitmoji
  • ---log:启用文件记录
  • ---print:将生成的信息打印到标准输出并退出
  • --no-verify:跳过验证步骤(提交前/后钩子)

示例

git-iris gen -a -i "Focus on performance improvements" --provider claude --preset detailed

生成提交信息并将其打印到标准输出,而不启动交互式进程

git-iris gen --print

交互式提交流程

交互式 CLI 允许您完善您的提交信息

  • 使用箭头键在建议之间导航
  • 按 'e' 编辑当前信息
  • 按 'i' 修改 AI 指令
  • 按 'g' 更改表情符号
  • 按 'p' 更改预设
  • 按 'u' 编辑用户信息
  • 按 'r' 重新生成信息
  • 按 Enter 提交
  • 按 Esc 取消

生成变更日志

Git-Iris 可以在两个 Git 引用之间生成变更日志

git-iris changelog --from <from-ref> --to <to-ref>

选项

  • --from:起始 Git 引用(提交哈希,标签或分支名称)
  • --to:结束 Git 引用(未指定时默认为 HEAD)
  • --instructions:用于生成变更日志的自定义指令
  • --preset:选择用于生成变更日志的指令预设
  • --detail-level:设置详细程度(最小,标准,详细)
  • --gitmoji:在变更日志中启用或禁用 Gitmoji

示例

git-iris changelog --from v1.0.0 --to v1.1.0 --detail-level detailed --gitmoji true

此命令生成版本 1.0.0 和 1.1.0 之间变化的详细变更日志,包括 Gitmoji。

生成发布说明

Git-Iris 还可以生成全面的发布说明

git-iris release-notes --from <from-ref> --to <to-ref>

选项

  • --from:起始 Git 引用(提交哈希,标签或分支名称)
  • --to:结束 Git 引用(未指定时默认为 HEAD)
  • --instructions:用于生成发布说明的自定义指令
  • --preset:选择用于生成发布说明的指令预设
  • --detail-level:设置详细程度(最小,标准,详细)
  • --gitmoji:在发布说明中启用或禁用 Gitmoji

示例

git-iris release-notes --from v1.0.0 --to v1.1.0 --preset conventional --detail-level standard

使用约定式提交预设,此命令生成版本 1.0.0 和 1.1.0 之间的标准级别发布说明。

🎛️ 自定义指令和预设

Git-Iris 提供两种强大的方法来指导 AI 生成提交信息:自定义指令和预设。

指令预设

预设是一组预定义的指令,可以快速调整提交信息风格。Git-Iris 内置了几个预设,适用于不同的提交风格和项目需求。

列出可用预设

git-iris list-presets

这将显示所有可用预设及其简要说明。

一些关键预设包括

  • default:标准提交信息风格
  • conventional:遵循约定式提交规范
  • detailed:在提交信息中提供更多上下文和解释
  • concise:简短而明确的提交信息
  • cosmic:神秘的太空主题提交信息
  • ...以及更多样式

使用单个提交的预设

git-iris gen --preset conventional

为所有提交设置默认预设

git-iris config --preset conventional

预设与Git-Iris的其他功能无缝协作。例如,如果您启用了Gitmoji,预设说明将应用于添加适当的Gitmoji。

自定义说明

自定义说明允许您为提交消息生成提供具体的指导。这些可以全局设置或按提交设置。

设置全局自定义说明

git-iris config --instructions "Always include the ticket number and mention performance impacts"

提供按提交的说明

git-iris gen -i "Emphasize security implications of this change"

组合预设和自定义说明

当同时使用预设和自定义说明时,Git-Iris会合并它们,其中自定义说明具有优先权。这允许您使用预设作为基础,并通过具体的说明进行微调。

git-iris gen --preset conventional -i "Mention the JIRA ticket number"

在这种情况下,提交消息将遵循约定提交格式,并包括JIRA工单编号。

如果您已在配置中设置了默认预设,您仍然可以针对单个提交覆盖它

git-iris gen --preset detailed -i "Focus on performance improvements"

这将使用“详细”预设而不是默认预设,以及自定义说明。

自定义说明示例

  1. 工单编号集成

    Always start the commit message with the JIRA ticket number in square brackets
    
  2. 语言特定约定

    For Rust files, mention any changes to public APIs or use of unsafe code
    
  3. 团队特定指南

    Follow the Angular commit message format: <type>(<scope>): <subject>
    
  4. 项目特定上下文

    For the authentication module, always mention if there are changes to the user model or permissions
    
  5. 性能考虑

    Highlight any changes that might affect application performance, including database queries
    

自定义说明和预设允许您根据特定的项目需求、团队约定或个人偏好定制Git-Iris。它们提供了一种强大的方式来确保一致性并在提交消息中捕获重要上下文。

🤝 贡献

我们欢迎贡献!请参阅我们的CONTRIBUTING.md以获取如何开始的详细信息、我们的行为准则以及提交拉取请求的过程。

📄 许可证

Apache 2.0 许可证下分发。有关更多信息,请参阅LICENSE


📚 文档 • 🐛 报告错误 • 💡 请求功能

💖 致谢

  • OpenAIAnthropic 因其前沿的语言模型
  • Rust社区因稳健的生态系统和工具

Stefanie Jane 🌠 创建

如果您发现Git-Iris很有用,请买我一杯Monster Ultra Violet! ⚡️

依赖项

~36–52MB
~753K SLoC