Skip to content

SySagar/gitemo-cli

Repository files navigation

GitHub Actions Workflow Status NPM Version

A interactive client cli tool for using git emojis on commit messages.

About

Gitemo provides an easy solution for developing production level commit messages. Whats more? Includes a bunch of options you can play with! 🎉

file.mov

Install

npm

npm i -g gitemo-cli

Usage

gitemo --help
    Usage
      $ gitemo [option] [command]
    Options
     --commit, -c        Interactively commit using the prompts
     --aiCommit, --aic   Use ai for generating commits
     --config, --g       To change configuration
     --list, -l          List all the available git emojis
     --version, -v       Print gitemo-cli installed version
    Commands
      commit             Interactively commit using the prompts
      list               List all the available gitmojis
      version            Print gitemo-cli installed version
      config             Change configuration
      login              To login into the cli
    Examples
      $ gitemo -c

Commit

You can use the commit functionality to develop your commits message based on prompts given to it. The final message will be mapped to emoji accordingly.

Start the interactive commit client, to auto generate your commit based on your prompts.

gitemo --c
Options

You can aldo pass default values to the prompts using the following flags:

  • title: For setting the commit title.
  • message: For setting the commit message.

Those flags should be used like this:

gitemo -c --title="Commit" --message="Message" --scope="Scope"

AI-Commit

You can use AI to generate your commits too. You can give prompt on exactly what and how you did. Accordingly a commit message will be generated. Curently the cli uses gemini-flash-1.5

Make sure to setup your gemini api key in the gitemo config. You can get it from here

gitemo --aic

List

Pretty print all the available git emojis.

gitemo --l

Version

List down the current version of the cli

gitemo --v

Config

You can use the default configs or customize your own configurations.

Some of the default settings are:

  • Automatic git add: Enable or disable the automatic git add . every time you use the commit command.
  • Message prompt: Enable or disable the message prompt.
  • Capitalize title: Capitalize Title
  • Api key: Paste you gemini api key
  • Rate limit count: By default set to 0. You can set it as per your need.

You can configure these options via (in order of precedence):

  • A gitemo key in your package.json file
  • A .gitemorc.json file.
  • Using the global cli configuration.

If no user configuration is found, a set of default values will be used.

package.json

{
  "gitemo": {
    "autoAdd": false,
    "messagePrompt": false,
    "capitalizeTitle": true,
    "AIKey": whatever your key,
    "maxRateLimitCount": 4
  }
}

.gitemorc.json

{
  "autoAdd": false,
  "messagePrompt": false,
  "capitalizeTitle": true,
  "AIKey": whatever your key,
  "maxRateLimitCount": 4
}

Local configuration

Run gitemo --g to setup some gitemo-cli preferences.