UNPKG

ccommit

Version:

😜 βž• πŸ‘” 🟰 ccommit Conventional Commit Generator that interprets commit types from gitmoji and conventional

173 lines (121 loc) β€’ 4.08 kB
# 😜 βž• πŸ‘” 🟰 `ccommit` `ccommit` is a conventional commit generator that interprets commit types from `gitmoji` through `conventional-commits` to propose a bridged gap through multiple formats. For developers that use `gitmoji` it is not always possible to do so in every project. However, to keep workflows the same it would be ideal to introduce a configuration that would provide standards to applications while having some modicum of β€œfun.” This can hook into your release system to create release notes. > **πŸ“ Note:** This package is ESM ## Usage ### Local Install as a `devDependencies`: ```bash # pnpm pnpm add ccommit --save-dev ``` <!-- ```bash # npm npm install ccommit --save-dev # yarn yarn add ccommit --dev ``` --> > **πŸ“ Note:** This is my preference as I try to limit globals wherever possible. ### Global ```bash # pnpm pnpm add ccommit --global ``` <!-- ```bash # npm npm install ccommit --g # yarn yarn global add ccommit # homebrew brew install ccommit ``` --> > **πŸ“ Note:** For non-node projects this _can_ be helpful, but again, try to limit globals. ### Client Call directly after staging files ```bash # local pnpm ccommit -c # global ccommit -c ``` <!-- ```bash # packages # node ./packages/ccommit/dist/index.js -c ``` --> > **πŸ“ Note:** Choose `local` or `global` ### Hook Add this to your `prepare-commit-msg` for `git`: ```bash exec < /dev/tty # local pnpm ccommit --hook || true # global ccommit --hook || true ``` <!-- ```bash # packages # node ./packages/ccommit/dist/index.js --hook || true ``` --> > **πŸ“ Note:** Choose `local` or `global` ## Options ```bash β–² packages [main] pnpm ccommit -h Conventional Commit Generator that interprets commit types from gitmoji and conventional Usage $ ccommit -c Flags --breaking, -b πŸ’₯ Breaking Change --commit, -c πŸ’½ Mode: Client --dryrun, -n 🎽 Mode: Dry Run --emoji, -e 😜 Emoji (default) --hook, -u πŸͺ Mode: Hook --list, -l πŸ“– List all types --version, -v πŸ“¦ Print installed version Options --format 😜 Commit Format: conventional|gitmoji (default) --message πŸ“ Commit Message --scope πŸ”¬ Commit Scope --title πŸ““ Commit Title --type ✨ Commit Type Notes - Pass any non-format options the following will be required: --title, --type - If you do not pass any options the Conventional Commit Generator prompt will run - Branch Name detection is enabled to pre-populate Issue Tracker information in prompt ``` ## Formats ### Gitmoji - 😜 [gitmoji](https://gitmoji.dev) - πŸ§ͺ Examples - ✨ (scope) ABC-123 subject - πŸ’š (github) subject - πŸ› subject ### Conventional - πŸ‘” [conventional](https://www.conventionalcommits.org) - a mapping of `gitmoji` to what could be construed as it’s more in-depth `conventional` counterparts - can pass `--noemoji|-xe` and turn emojis off within `conventional` - πŸ§ͺ Examples - feat(scope): ✨ ABC-123 subject - fix-ci(github): πŸ’š subject - fix: πŸ› subject <!-- ### Custom πŸ• Creating a `custom` configuration can be ideal if you want more control, or have more specific business needs for your application. Using `cosmiconfig` you can create: - `.ccommit` - `.ccommit.json` - `.ccommit.js` By providing configuration options for your project. --> ## Roadmap This was meant to sunset `@jeromefitz/git-cz` as a year-end personal hackathon. This will keep up with `gitmoji` and ideally some tenets of β€˜best of both worlds’ could make it to `gitmoji-cli` some day. (There are a few closed issues on β€˜boring’ versions already, and with this using `enquirer` probably less and less of a chance.) As a result it is a mash-up of both and I have tried to add references where applicable: - πŸ”— [`gitmoji-cli`](https://github.com/carloscuesta/gitmoji-cli) - πŸ”— [`@jeromefitz/git-cz`](https://github.com/jeromefitz/packages)