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.
- 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.
Node.js
,npm
, andGit
must be installed on your system.- OpenAI API key (stored in the
OPENAI_API_KEY
environment variable) - A launchpad account is required to reference bugs in commit messages.
Install evergit
globally using npm:
npm install -g evergit
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.
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.
-
-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
Manage user-specific configuration options for name and email. If no name and/or email is set, evergit defaults to using the git configuration.
-
--set <key>
: Set a configuration option. Valid keys arename
andemail
.evergit config --set name "Your Name" evergit config --set email "your.email@example.com"
-
--get <key>
: Get a configuration option. Valid keys arename
andemail
.evergit config --get name evergit config --get email
-
--clear <key>
: Clear a configuration option. Valid keys arename
andemail
.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