UNPKG

commitlint-config-techor

Version:

Check your commits with Techor's commitlint config

165 lines (140 loc) 7.52 kB
<br> <div align="center"> <p align="center"> <a href="https://repo.master.co"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/33840671/227841265-4fd5a57c-0eb8-4fcf-a8ff-a266c990010c.svg"> <source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/33840671/227841250-bfe4af56-2394-4101-b3ba-a4086f171ead.svg"> <img alt="techor" src="https://user-images.githubusercontent.com/33840671/227841250-bfe4af56-2394-4101-b3ba-a4086f171ead.svg" width="100%"> </picture> </a> </p> <p align="center">Check your commits with Techor's commitlint config</p> <p align="center"> <a aria-label="overview" href="https://github.com/techor-dev/techor"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=212022&style=for-the-badge"> <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=f6f7f8&style=for-the-badge"> <img alt="NPM Version" src="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=f6f7f8&style=for-the-badge"> </picture> </a> <a aria-label="GitHub release (latest by date including pre-releases)" href="https://github.com/techor-dev/techor/releases"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/v/release/techor-dev/techor?include_prereleases&color=212022&label=&style=for-the-badge&logo=github&logoColor=fff"> <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/v/release/techor-dev/techor?include_prereleases&color=f6f7f8&label=&style=for-the-badge&logo=github&logoColor=%23000"> <img alt="NPM Version" src="https://img.shields.io/github/v/release/techor-dev/techor?include_prereleases&color=f6f7f8&label=&style=for-the-badge&logo=github"> </picture> </a> <a aria-label="NPM Package" href="https://www.npmjs.com/package/commitlint-config-techor"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/dm/commitlint-config-techor?color=212022&label=%20&logo=npm&style=for-the-badge"> <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/npm/dm/commitlint-config-techor?color=f6f7f8&label=%20&logo=npm&style=for-the-badge"> <img alt="NPM package ( download / month )" src="https://img.shields.io/npm/dm/commitlint-config-techor?color=f6f7f8&label=%20&logo=npm&style=for-the-badge"> </picture> </a> <a aria-label="Follow @aron1tw" href="https://twitter.com/aron1tw"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/static/v1?label=%20&message=twitter&color=212022&logo=twitter&style=for-the-badge"> <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/static/v1?label=%20&message=twitter&color=f6f7f8&logo=twitter&style=for-the-badge"> <img alt="Follow @mastercorg" src="https://img.shields.io/static/v1?label=%20&message=twitter&color=f6f7f8&logo=twitter&style=for-the-badge"> </picture> </a> <a aria-label="Github Actions" href="https://github.com/techor-dev/techor/actions/workflows/release.yml"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/actions/workflow/status/techor-dev/techor/release.yml?branch=beta&label=%20&message=twitter&color=212022&logo=githubactions&style=for-the-badge"> <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/actions/workflow/status/techor-dev/techor/release.yml?branch=beta&label=%20&message=twitter&color=f6f7f8&logo=githubactions&style=for-the-badge&logoColor=%23000"> <img alt="Github release actions" src="https://img.shields.io/github/actions/workflow/status/techor-dev/techor/release.yml?branch=beta&label=%20&message=twitter&color=f6f7f8&logo=githubactions&style=for-the-badge&logoColor=%23000"> </picture> </a> </p> </div> <br> ## Getting Started Skip if you have already run `npm install techor`: ``` npm install commitlint-config-techor -D ``` ### Configuration Create a `.commitlintrc.yml` file in your project root and extend `techor`: ```yml extends: techor ``` ### Set up Husky Use Husky to register Git Hooks to automatically check whether it is legal before committing. ``` npx husky install ``` ``` npx husky add .husky/commit-msg 'npx --no -- commitlint --edit ${1}' ``` Check if the `.husky` is successfully generated in the project root: ```diff + └── .husky + ├─── _ + └─── commit-msg ``` From now on, you just need to commit; the check happens after the commit. If everything is legal, there will be no prompts. ### package.json Pre-commit checks via Git Hook are only enabled when other team members clone the project and run `npm install`. Save `commit-check` and `husky install` commands for teamwork and CI: ```json { "scripts": { "install": "husky install", "commit-check": "commitlint --from=HEAD~1 --verbose" } } ``` `pnpm run commit-check`: <img width="581" alt="commit-check" src="https://user-images.githubusercontent.com/33840671/205993191-bf48b3ef-8884-4ea3-991c-4ec782151d4b.png"> ## Continuous Integration Typically, you double-check commits before publishing and on relevant workflows, using GitHub Actions as an example: [Create a workflow](https://docs.github.com/en/actions/quickstart) for commit check `/.github/workflows/commit-check.yml`: ```yml name: Commit Check on: push: branches: - '**' pull_request_target: types: - opened - reopened - edited - synchronize jobs: check: timeout-minutes: 15 runs-on: ubuntu-latest strategy: matrix: node-version: [20] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' - run: npm ci - run: pnpm run commit-check ``` ## Commit Header Format The header has a particular format that includes a `Type`, a `Target`, and a `Summary`: ``` Type(Target): Summary ┊ ┊ ┊ └─⫸ Target: Workspace, Package or Role ┊ └─⫸ Type: Bump, Feat, New, Perf, Add, Update, Improve, Fix, Deprecate, Drop, Docs, Upgrade, Revert, Example, Test, Refactor, Chore, Misc ``` For the full documentation, check out the [Techor's conventional commits](https://github.com/techor-dev/techor/tree/main/packages/conventional-commits) <br> <a aria-label="overview" href="https://github.com/techor-dev/techor#ecosystem"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=212022&style=for-the-badge"> <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=f6f7f8&style=for-the-badge"> <img alt="NPM Version" src="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=f6f7f8&style=for-the-badge"> </picture> </a>