/sexy-commits

Sexy commits using gitmoji.dev

Primary LanguageJavaScript

Logo

Sexy commits using gitmoji.dev and inquirer-autocomplete-prompt


version

Sexy commits using your config from package.json.

Uses gitmoji mapping config from your package.json and inquirer to prompt you for what you did and a brief explanation (used as commit message).

{
  "gitmoji": {
    "build": [
      "🏗️",
      "Make architectural changes"
    ],
    "ci": [
      "👷",
      "Add or update CI build system"
    ],
    "chore": [
      "💄",
      "Boring chores"
    ]
  }
}

-----------------------------------------------------

➤ This is how it works

Add npm script

Add npm script commit that runs sexy-commits.

{
  "scripts": {
    "commit": "sexy-commits"
  }
}

Run the script

npm run commit

Select what you did

image-20210326144343892

Enter a short summary

image-20210326144354677

With arguments

You can also call run sexy-commitswith args.

npm run commit [add] [type] [message]

Where [add] is what do add - either allor a pattern, and [type] is what kind of change you did (depends on your gitmoji config).

Example 1

You did a fix and want to commit all changes:

npm run commit all fix

Example 2

You did a style adjustment and want to commit only what's in the theme folder.

npm run commit style theme "updated dark theme"

Alias support

With v0.3.1we introduces alias support. Add a third element to your gitmoji config which is an array of aliases. Here you can see we mapped build to ci and boringand choresto chore.

{
  "gitmoji": {
    "ci": [
      "👷",
      "Add or update CI build system",
      ["build"]
    ],
    "chore": [
      "💄",
      "Boring chores",
      ["boring", "chores"]
    ]
  }
}

Example 1

You can now do the following:

npm run commit boring "it's so boring to use regular git commits"

Auto push

You can auto push your changes by setting SEXY_COMMITS_AUTO_PUSH to 1 in your .env file.

Add skip ci tag

If you want to add skip ci tag to your commit, set the SEXY_COMMITS_SKIP_CI_TAG variable in your .env file.

Example

SEXY_COMMITS_SKIP_CI_TAG=[skip-ci]

Lint your changes before commiting

By specifying SEXY_COMMITS_LINT_CMD in your .env file, we can lint your changes before commiting (e.g. with ESLint).

Example

SEXY_COMMITS_LINT_CMD=npm run-script lint

-----------------------------------------------------

➤ Contributors

Ole Martin Pettersen Carl Joakim Damsleth
Ole Martin Pettersen Carl Joakim Damsleth
olemp@puzzlepart.com carl.joakim.damsleth@puzzlepart.com

Working with issues

You can automatically tag and/or close issues automatically when commiting with sexy-commits.

By specifying SEXY_COMMITS_ISSUE_REF in your .env file, the commit will automatically tag the issue. Do not specify the issue number with the #.

By also providing SEXY_COMMITS_FIXES_ISSUE, the issue will automatically be closed when commiting.