commitlint - commitlint は、コミットメッセージが従来のコミット形式を満たしているかどうかをチェックします。

(? Lint commit messages)

Created at: 2016-02-12 16:37:56
Language: TypeScript
License: MIT

始めましょう|チャットスラックしましょう|ウェブサイト

リントコミットメッセージ

svg-term-cli で生成されたデモ

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

最新のエヌピーエム サークルCI

  • 🚓善良になる
    commitizen
  • 📦構成の共有
    npm
  • 🤖タップする
    conventional-changelog

内容


コミットとは

commitlint は、コミットメッセージが従来のコミット形式を満たしているかどうかをチェックします。

一般に、パターンは主に次のようになります。

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

実際の例は次のようになります。

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

commitlint-config-convention(Angular規約に基づく)に従った一般的なタイプは次のとおりです。

  • 建てる
  • 雑用
  • ティッカー
  • ドキュメント
  • 偉業
  • 修理する
  • パフォーマンス
  • リファクタリング
  • 戻す
  • スタイル
  • 試験

これらは、独自の構成で変更できます。

コミットを使用する利点

はじめ

# Install commitlint cli and conventional config
npm install --save-dev @commitlint/{config-conventional,cli}
# For Windows:
npm install --save-dev @commitlint/config-conventional @commitlint/cli

# Configure commitlint to use conventional config
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

コミットが作成される前にコミットをlintするには、Huskyのsshakeを使用できます。

commit-msg

# Install Husky v6
npm install husky --save-dev
# or
yarn add husky --dev

# Activate hooks
npx husky install
# or
yarn husky install

フックを追加

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

さまざまなバージョンのインストール後にGitフックを自動的に有効にする方法については、ハスキーのドキュメントを確認してください。

yarn

詳細なセットアップ手順

ティッカー

  • コミットリントと対話する主な方法。
  • npm install --save-dev @commitlint/cli
  • パッケージ:cli

設定

  • 構成は次の場所から取得されます。
    • .commitlintrc
    • .commitlintrc.json
    • .commitlintrc.yaml
    • .commitlintrc.yml
    • .commitlintrc.js
    • .commitlintrc.cjs
    • .commitlintrc.ts
    • commitlint.config.js
    • commitlint.config.cjs
    • commitlint.config.ts
    • commitlint
      フィールド
      package.json
  • パッケージ:cli,core
  • 使用可能なルールの完全なリストについては、「ルール」を参照してください。
  • 構成例は、@commitlint/config-conventional にあります。

共有構成

多数の共有構成をインストールし、以下で使用できます。

commitlint

⚠️独自の共有可能な設定を公開したい場合は、パターンと一致する名前があることを確認してください。

commitlint-config-emoji-log
commitlint-config-your-config-name
emoji-log
your-config-name

原薬

  • プログラムによる代替の対話方法
    commitlint
  • パッケージ:
    • フォーマット - コミットレポートのフォーマット
    • lint-コミットルールに対して文字列をlint します
    • load-共有コミット構成をロードします
    • read-指定された範囲または最後の編集からコミットメッセージを読み取る
  • メソッドと例の完全なリストについては、APIを参照してください

ツール

ロードマップ

アイデア:従来の変更ログ/コミット#94

commitlint
安定していると見なされ、開発ツールとしてさまざまなプロジェクトで使用されています。

私たちは、採用のしやすさ開発者の経験を、そこにある分野として特定しています 余地があり、改善が必要です。ロードマップの項目は、これらの側面に関して強化する必要があります。

commitlint

  • [バツ]採用:再利用可能なトラビスCI統合を提供する:(https://github.com/conventional-changelog/commitlint/releases/tag/v5.1.0
    @commitlint/travis-cli
    )
  • [ ] DX:アーメドタージ/コミットリントボットを介してPRスカッシュシナリオをサポートし、
    @commitlint/travis-cli
  • [ ] 採用:ahmed-taj/commitlint-botを構成を介して構成可能にする
    commitlint
  • [ ] 導入: 作成
    commitlint init
  • [ ] DX: 構成スキーマを拡張して、ルール レベルと値レベルの両方で追加のフィールド (説明、例、修正) を許可します。
  • [ ] DX:コミット設定からテンプレートを推測するlennym/commit-templateの拡張バージョンを組み込む
  • [ ] DX:使いやすさを向上させるために書き直します(多くのヤクシェービングが含まれる場合があります)
    @commitlint/prompt

バージョンのサポートとリリース

  • ノード.jsLTS
    >= 14
  • ギット
    >= 2.13.2

リリース

セキュリティパッチは、まだEOLされていないバージョンに適用されます。
機能は現在のメインバージョンにのみ適用されます。

解放 初期リリース サポート終了
v17 16.05.2022 16.05.2023
v16 26.12.2021 26.12.2022
v15 17.11.2021 17.11.2022
v14 26.10.2021 26.10.2022
v13 24.05.2021 24.05.2022
v12 23.02.2021 23.02.2022
v11 13.09.2020 13.09.2020

日付は変更される場合があります。

私たちはスポンサー付きのOSSプロジェクトではありません。したがって、古いリリースのパッチバージョンをタイムリーにリリースすることを約束することはできません。
古いバージョンで立ち往生していて、セキュリティパッチが必要な場合は、PRを提供できれば幸いです。

関連プロジェクト

  • 従来の変更ログ–従来のコミット履歴から変更ログを生成します
  • commitizen–インターネット市民のための単純なコミット規則
  • 作成-セマンティック-モジュール– 新規または既存のプロジェクトにコミティゼンとコミットをすばやく統合するためのCLI

ライセンス

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

commitlint

Development

commitlint
is developed in a mono repository.

Install and run

git clone git@github.com:conventional-changelog/commitlint.git
cd commitlint
yarn
yarn run build # run build tasks
yarn start # run tests, again on change

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

Package dependency overview

commitlint-dependencies

(Partly outdated)

Publishing a release

npm login
nvm use (if you have nvm installed)
yarn clean
yarn install
yarn build
yarn test
yarn run publish --otp <one-time password>

Create Github release

  1. 新しいバージョンの変更ログエントリをコピーする
  2. 新しいタグのリリースを作成します:https://github.com/conventional-changelog/commitlint/releases
  3. コミット Slack チャンネルに投稿する

リリース(またはパッチリリース)を公開する
next

npm login
nvm use (if you have nvm installed)
yarn clean
yarn install
yarn build
yarn test
npx lerna publish --conventional-commits --dist-tag [`next` | `[PATCH_RELEASE_VERSION]`] --otp <one-time password>

何らかの理由でこれが途中で停止した場合は、次のように不足しているパッケージを手動で公開できます。

npm publish <package-name> --tag [`next` | `[PATCH_RELEASE_VERSION]`] --otp <one-time password>
(新規) パッケージの初回公開
npm publish [PACKAGE_NAME] --access public

エイリアス パッケージの場合は、追加する必要があります。私たちがすでにやっているようにとにかく。これは、これを忘れないようにするためのリマインダーです。

@alias/
@commitlint/

移動先
next
latest
npm login
npx lerna exec --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>'

次を削除:

npx lerna exec --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>'