JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q35358F
  • License MIT

🎸 Smart Git commit CLI that adds emojis and enforces Conventional Commits. Features intelligent commit message suggestions, customizable templates, and seamless integration with popular tools. Perfect for teams wanting consistent, readable git history.

Package Exports

  • commit-jazzer

Readme

commit-jazzer 🎢πŸ’₯

CI status npm downloads npm license version

Commitizen adapter for formatting commit messages with style and rhythm. 🎸🎀

🎸 Add style and rhythm to your commits! With commit-jazzer, every commit becomes more than just a messageβ€”it's a true masterpiece. Follow best practices and format your messages with emojis that add fun and professionalism to your development process.

Table of Contents

  1. πŸŽ₯ Demo
  2. πŸ” Description
  3. ⚑ Features
  4. πŸ’» Installation and Usage
  5. βš™οΈ Configuration
  6. 🀝 Contributing
  7. πŸ“œ Code of Conduct
  8. πŸ”’ Security Policy
  9. πŸ‘₯ Team
  10. πŸ“„ License

πŸŽ₯ Demo {#demo}

commit-jazzer

πŸ” Description {#description}

commit-jazzer is a tool that introduces a touch of musical flair into your Git commit messages. Built on the solid foundation of Commitizen, it allows you to follow commit conventions and spice up your messages with emojis. Instead of just typing standard commit texts, you'll choose commit types, write descriptions, andβ€”just like in jazzβ€”improvise to create a symphony of commits.

🎷 Jazz your commits: It's not just about structureβ€”it's about creativity. Transform your commits into something dynamic, creative, and fun!

⚑ Features {#description}

  • 🎢 Musical Commit Messages: Format your commits with delightful emojis like 🎸, πŸ›, πŸ’„, and more.
  • ⚑ Quick Setup: Easy installation and integration into your project.
  • 🎼 Predefined Commit Types: Choose from predefined types and descriptions to maintain consistency.
  • πŸ›  Bad Word Handling: Automatically handles undesirable words in commit messages and helps you avoid inappropriate expressions.
  • πŸ”§ Flexible Configuration: Customize commit templates and type schemes for a personal touch.

πŸ’» Installation and Usage {#installation-and-usage}

Globally

Install commitizen globally, if you have not already.

npm install commitizen -g

Install your preferred commitizen adapter globally (for example commit-jazzer).

npm install commit-jazzer -g

Create a .czrc file in your home directory, with path referring to the preferred, globally-installed, commitizen adapter

echo '{ "path": "commit-jazzer" }' > ~/.czrc

You are all set! Now cd into any git repository and use git cz and you will find the commit-jazzer prompt.

Locally

To install commit-jazzer as a development dependency, run::

npm install --save-dev commit-jazzer

Then, add this configuration to your package.json:

"config": {
  "commitizen": {
    "path": "commit-jazzer"
  }
}

After installation, simply run:

git cz

βš™οΈ Configuration {#configuration}

Configuration Types Support

These configuration files is used to customize the behavior of commit-jazzer without modifying the source code.

commit-jazzer supports three languages JavaScript, TypeScript and JSON for configuration.

TypeScript

import type { CommitJazzerPrompterOptions } from 'commit-jazzer';

const CommitJazzerConfig: CommitJazzerPrompterOptions = {
  language: 'en',
  template: '{{type}}: {{emoji}} - {{title}}',
  availableCommitTypes: ['init', 'fix', 'refactor'],
  availablePromptQuestions: ['type', 'title']
};

export default CommitJazzerConfig;

JavaScript

/** @type {import('commit-jazzer').CommitJazzerPrompterOptions} */

const CommitJazzerConfig = {
  language: 'en',
  template: '{{type}}: {{emoji}} - {{title}}',
  availableCommitTypes: ['init', 'fix', 'refactor'],
  availablePromptQuestions: ['type', 'title']
};

export default CommitJazzerConfig;

Example Configuration File

{
  "$schema": "https://zilero232.github.io/commit-jazzer/commit-jazzer-schema.json",
  "language": "en",
  "template": "{{type}}: {{emoji}} - {{title}}",
  "availableCommitTypes": ["init", "fix", "refactor"],
  "availablePromptQuestions": ["type", "title"],
  "baseCommitTypes": {
    "init": {
      "description": "Custom deploying message"
    }
  },
  "addCustomCommitTypes": {
    "custom": {
      "emoji": "πŸš€",
      "code": "πŸš€",
      "description": "Deploying application"
    }
  },
  "baseQuestionsOptions": [
    {
      "key": "title",
      "message": "My custom message",
      "options": {
        "required": true,
        "skip": false,
        "validations": {
          "length": {
            "minMessageLength": 0,
            "maxMessageLength": 200
          }
        }
      }
    }
  ],
  "validateCommitBadWords": true,
  "badWordsOptions": {
    "checkHasProfaneWords": true,
    "clearMessage": true,
    "replaceProfaneWords": true,
    "options": {
      "additionalBlockWords": ["bogdan", "oleg", "nikita"],
      "excludedWords": ["fool"],
      "placeholder": "*",
      "overrideBlockWords": false
    }
  },
  "showBanner": true,
  "showBannerOptions": {
    "bannerText": "Look, I can change the name."
  }
}

🀝 Contributing {#contributing}

We'd love for you to contribute to commit-jazzer! Whether it's reporting bugs, suggesting features, or submitting pull requests, your help is always appreciated.

How to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Make your changes.
  4. Commit your changes (git commit -am 'Add new feature').
  5. Push to the branch (git push origin feature/your-feature).
  6. Open a pull request.

πŸ“œ Code of Conduct {#code-of-conduct}

Please follow our Code of Conduct when participating in this project to ensure a welcoming and productive atmosphere.

πŸ”’ Security Policy {#security-policy}

Security is our priority. If you encounter any issues, please read our full Security Policy to report vulnerabilities safely and responsibly.

πŸ‘₯ Team {#team}

These folks keep the project moving and are resources for help.

Artemev Alexandr - Avatar
Artemev A. A.

πŸ“„ License {#license}

License commit-jazzer is licensed under the MIT License.

Be part of the musical process! 🎢 Add some rhythm and style to your commits with commit-jazzer and turn your workflow into a masterpiece! 🎸