> Lint your commits, litebox-way

# hellolitebox/commitlint

Shareable `commitlint` config enforcing Litebox convention :)

## Getting started

Run this commands inside the root of your project:

```sh
yarn add -D @hellolitebox/commitlint @commitlint/cli @hellolitebox/commit-prompt commitizen
```

```sh
echo "const config = require('@hellolitebox/commitlint');
module.exports = config({ taskIdPrefixes: [] });" > commitlint.config.js
```

```sh
npx husky add .husky/commit-msg  'npx --no -- commitlint --edit ${1}'
```

Add this to your package.json

```
  "config": {
    "commitizen": {
      "path": "@hellolitebox/commit-prompt"
    }
  },
  "scripts": {
    "commit": "git-cz"
  }
```

## Config taskIdPrefixes

If you want that every commit has always a task id in the subject, you can add it as a string inside
the `taskIdPrefixes` array in the `commitlint.config.js` file, e.g:

```
module.exports = config({ taskIdPrefixes: ['CU-'] });
```

This way, to be considered a valid commit, the message should be: 

`feat: CU-1234 add something`

If you add more taskIdPrefixes to the array, any of those will be considered valid, e.g:

```
module.exports = config({ taskIdPrefixes: ['CU-', 'HOTFIX'] });
```

`feat: HOTFIX add something`

The above commit message is also valid.

## Make a commit

```sh
git add .

yarn commit
```

After run yarn commit, an interactive screen will appear, letting you fill all the commit parts, one by one.

The required ones are: `scope` and `subject`, the others can be skipped normally.