evergit v0.2.0
EverGit
An AI-powered Git helper for the Evergreen ILS project. Evergit uses OpenAI’s models to generate commit messages that adhere to specific standards, streamlining the commit process while reducing manual input.
Features
- Generate commit messages using OpenAI's LLM models.
- Automatically reference Launchpad bugs in commit messages.
- Automatically sign off commits with the user's name and email.
- Select files to stage for commit.
- Use different models by specifying the model name as an argument.
- Manage user-specific configuration for name and email.
Requirements
Node.js,npm, andGitmust be installed on your system.- OpenAI API key (stored in the
OPENAI_API_KEYenvironment variable) - A launchpad account is required to reference bugs in commit messages.
Installation
Install evergit globally using npm:
npm install -g evergitUsage
evergit needs to be run in a git repository. It will automatically detect the repository and branch you are on. If run without any arguments, it will display the help message.
Commands
evergit commit
Generates a commit message using a LLM model from OpenAI that follows the Evergreen ILS commit message format.
evergit commit # Uses the default model and prompts the user to select files to stage- Prompts the user to select files to stage.
- Prompts the user for a Launchpad bug number.
- References the bug name, description and conversation when generating the commit message using the Launchpad API.
- Automatically signs off the commit with the user's name and email from the git configuration.
Options
-m, --model <model-name>: Use a specific model to generate the commit message.evergit commit --model <model-name> # Uses a specific model-a, --all: Stage all modified files for commit.evergit commit --all # Stages all modified files
evergit config
Manage user-specific configuration options for name and email. If no name and/or email is set, evergit defaults to using the git configuration.
Options
--set <key>: Set a configuration option. Valid keys arenameandemail.evergit config --set name "Your Name" evergit config --set email "your.email@example.com"--get <key>: Get a configuration option. Valid keys arenameandemail.evergit config --get name evergit config --get email--clear <key>: Clear a configuration option. Valid keys arenameandemail.evergit config --clear name evergit config --clear email--get-all: Get the entire configuration.evergit config --get-all--edit: Edit the configuration file manually in the default editor.evergit config --edit