Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

📓 Lint commit messages

License

NotificationsYou must be signed in to change notification settings

conventional-changelog/commitlint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lint commit messages

Demo generated withsvg-term-cli

cat docs/assets/commitlint.json | svg-term --out docs/assets/commitlint.svg --frame --profile=Seti --height=20 --width=80

npm latestCircleCI

  • 🚓 Be a goodcommitizen
  • 📦 Share configuration vianpm
  • 🤖 Tap intoconventional-changelog

Contents


What is commitlint

commitlint checks if your commit messages meet theconventional commit format.

In general the pattern mostly looks like this:

type(scope?): subject#scope is optional; multiple scopes are supported (current delimiter options: "/", "\" and ",")

Real world examples can look like this:

chore: run tests on travis ci
fix(server): send cors headers
feat(blog): add comment section

Common types according tocommitlint-config-conventional (based on the Angular convention) can be:

  • build
  • chore
  • ci
  • docs
  • feat
  • fix
  • perf
  • refactor
  • revert
  • style
  • test

These can be modified byyour own configuration.

Benefits using commitlint

Getting started

# Install commitlint cli and conventional confignpm install --save-dev @commitlint/{config-conventional,cli}# For Windows:npm install --save-dev @commitlint/config-conventional @commitlint/cli# Configure commitlint to use conventional configecho"module.exports = {extends: ['@commitlint/config-conventional']}"> commitlint.config.js

To lint commits before they are created you can use Husky'scommit-msg hook:

# Install Husky v6npm install husky --save-dev# oryarn add husky --dev# Activate hooksnpx husky install# oryarn husky install

Add hook

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

Check thehusky documentation on how you can automatically have Git hooks enabled after install for differentyarn versions.

Detailed Setup instructions

CLI

  • Primary way to interact with commitlint.
  • npm install --save-dev @commitlint/cli
  • Packages:cli

Config

  • Configuration is picked up from:
    • .commitlintrc
    • .commitlintrc.json
    • .commitlintrc.yaml
    • .commitlintrc.yml
    • .commitlintrc.js
    • .commitlintrc.cjs
    • .commitlintrc.ts
    • .commitlintrc.cts
    • commitlint.config.js
    • commitlint.config.cjs
    • commitlint.config.ts
    • commitlint.config.cts
    • commitlint field inpackage.json
  • Packages:cli,core
  • SeeRules for a complete list of possible rules
  • An example configuration can be found at@commitlint/config-conventional

Shared configuration

A number of shared configurations are available to install and use withcommitlint:

⚠️ If you want to publish your own shareable config then make sure it has a name aligning with the patterncommitlint-config-emoji-log orcommitlint-config-your-config-name — then in extend all you have to write isemoji-log oryour-config-name.

Documentation

Check themain website.

API

  • Alternative, programmatic way to interact withcommitlint
  • Packages:
    • format - Format commitlint reports
    • lint - Lint a string against commitlint rules
    • load - Load shared commitlint configuration
    • read - Read commit messages from a specified range or last edit
  • SeeAPI for a complete list of methods and examples

Tools

Roadmap

Ideas:conventional-changelog/commitlint#94

commitlint is considered stable and is used in various projects as development tool.

We identifyease of adoption anddeveloper experience as fields where thereis room and need for improvement. The items on the roadmap should enhancecommitlint regarding those aspects.

Version Support and Releases

  • Node.jsLTS>= 14
  • git>= 2.13.2

Releases

Security patches will be applied to versions which are not yet EOL.
Features will only be applied to the current main version.

ReleaseInital releaseEnd-of-life
v1716.05.202216.05.2023
v1626.12.202126.12.2022
v1517.11.202117.11.2022
v1426.10.202126.10.2022
v1324.05.202124.05.2022
v1223.02.202123.02.2022
v1113.09.202013.09.2020

Dates are subject to change.

We're not a sponsored OSS project. Therefore we can't promise that we will release patch versions for older releases in a timely manner.
If you are stuck on an older version and need a security patch we're happy if you can provide a PR.

Related projects

License

Copyright by @marionebl. Allcommitlint packages are released under the MIT license.

Development

commitlint is developed in a mono repository.

Install and run

git clone git@github.com:conventional-changelog/commitlint.gitcd commitlintyarnyarn run build# run build tasksyarn start# run tests, again on change

For more information on how to contribute please take a look at ourcontribution guide.

Package dependency overview

commitlint-dependencies

(Partly outdated)

Publishing a release

npm loginnvm use (if you have nvm installed)
yarn cleanyarn installyarn buildyarntestyarn run publish --otp<one-time password>

If something in between fails (like a new packages was added and needs to be published for thefirst time but you forgot) you can uselerna publish from-package to publish anythign thathas not been published yet.

Create Github release

  1. Copy changelog entry for the new version
  2. Create release for the new tag:https://github.com/conventional-changelog/commitlint/releases
  3. Post in thecommitlint Slack-channel

Publish anext release (or i.e. patch release)

npm loginnvm use (if you have nvm installed)
yarn cleanyarn installyarn buildyarntestnpx lerna publish --conventional-commits --dist-tag [`next`|`[PATCH_RELEASE_VERSION]`] --otp<one-time password>

If for some reason this stops in between, you can manually publish missing packages like this:

npm publish<package-name> --tag [`next`|`[PATCH_RELEASE_VERSION]`] --otp<one-time password>
Publishing (new) packages for the first time
npm publish [PACKAGE_NAME] --access public

From within the folder first i.e.cd @commitlint/new-packages.

Movenext tolatest
npm login
npx lernaexec --no-bail --no-private --no-sort --stream --'[ -n "$(npm v . dist-tags.next)" ] && npm dist-tag add ${LERNA_PACKAGE_NAME}@$(npm v . dist-tags.next) latest --otp <one-time password>'

Remove next:

npx lernaexec --no-bail --no-private --no-sort --stream --'[ -n "$(npm v . dist-tags.next)" ] && npm dist-tag rm ${LERNA_PACKAGE_NAME} next --otp <one-time password>'

[8]ページ先頭

©2009-2025 Movatter.jp