Project

git_auto

0.0
The project is in a healthy, maintained state
GitAuto streamlines your git workflow by automatically generating meaningful commit messages using AI. It analyzes staged changes and generates conventional commit messages that are clear, consistent, and informative.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 13.0
~> 3.0
~> 1.21
~> 6.1
~> 3.18
~> 0.9

Runtime

~> 1.3
~> 1.1
~> 5.1
~> 1.3
~> 0.23
 Project Readme

GitAuto πŸ€–βœ¨

Gem Version

AI-powered commit messages that make sense

GitAuto is a Ruby gem that streamlines your git workflow by automatically generating meaningful commit messages using AI. Say goodbye to generic commit messages and hello to clear, consistent, and informative descriptions of your changes.

Features πŸš€

  • 🎯 Intelligent Analysis: Automatically analyzes your staged changes
  • πŸ’‘ Smart Generation: Creates conventional commit messages that actually make sense
  • 🎨 Beautiful CLI: Interactive and colorful command-line interface
  • πŸ“‹ Clipboard Integration: Easy copying of generated messages
  • πŸ” Diff Preview: Optional preview of changes before message generation
  • πŸ“ Message History: Keeps track of your commit messages
  • πŸ€– AI Providers: Supports multiple AI providers:
    • OpenAI (GPT-4o, GPT-4o mini)
    • Anthropic (Claude 3.5 Sonnet, Claude 3.5 Haiku)
  • πŸ”’ Secure Storage: Your API keys are encrypted using AES-256-CBC and stored securely

Requirements βš™οΈ

  • Ruby >= 3.0.0
  • Git repository with staged changes
  • 🎟️ One magical ingredient: an API key! Choose your AI companion:

That's it! Say goodbye to "misc fixes" and hello to commits that actually tell a story. Your future self will thank you! 🎩✨

Installation πŸ’Ž

Install the gem from RubyGems:

gem install git_auto

Or add to your Gemfile:

gem 'git_auto'

Setup and Configuration πŸ”§

Initial Setup

Run the setup wizard to configure GitAuto:

git-auto setup

This will guide you through:

  • Setting up your preferred AI provider
  • Configuring your API keys (stored securely with AES-256-CBC encryption)
  • Setting default preferences

Configuration Management

Manage your settings anytime with:

git-auto config

This allows you to:

  • Update API keys
  • Change AI provider settings
  • Modify default behaviors
  • View current configuration

Security πŸ”

GitAuto takes security seriously:

  • API keys are encrypted using AES-256-CBC encryption
  • Keys are stored in your system's user directory (~/.git_auto/credentials.yml)
  • You can set a custom encryption key via GIT_AUTO_SECRET environment variable

Environment Variables

GitAuto can also be configured through environment variables:

  • OPENAI_API_KEY: Your OpenAI API key for message generation
  • GIT_AUTO_MODEL: OpenAI model to use (default: gpt-3.5-turbo)
  • GIT_AUTO_SECRET: Custom encryption key for storing API keys (optional)

Usage πŸ› οΈ

  1. Stage your changes as usual:
git add .
  1. Generate a commit message:
git-auto commit
  1. Review, edit if needed, and confirm!

Screenshots πŸ“Έ

GitAuto Setup GitAuto Config GitAuto Commit

Roadmap πŸ—ΊοΈ

Here's what we're planning for future releases:

  • πŸ€– Support for Google Gemini AI
  • πŸ“ Automatic PR description generation
  • More exciting features coming soon!

Contributing 🀝

Bug reports and pull requests are welcome on GitHub at https://github.com/diazgdev/git_auto.

License πŸ“„

The gem is available as open source under the terms of the MIT License.


Made with ❀️ by Guillermo Diaz