ccommit
Version:
π β π π° ccommit Conventional Commit Generator that translates conventional commits to gitmoji.
127 lines (87 loc) β’ 3.38 kB
Markdown
# π β π π° `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
```
> [!NOTE]
> My preference as I try to limit globals wherever possible.
### Global
```bash
# pnpm
pnpm add ccommit --global
```
> [!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
```
> [!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
```
> [!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
## 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)