OSS探訪

commit messageをConventional Commits等のruleでlintし、teamのrelease・changelog automationへ一貫したmetadataを渡す

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
18,759
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

commitlintはGit commit messageを設定済みruleに照らして検証するCLI/APIです。type(scope): subject形式を含むConventional Commits向けshared configを利用でき、local Git hookやCIへ組み込んでcommit historyの形式を揃えます。設定はprojectごとに拡張・共有できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

commit messageをrule setで検証する

CLIへcommit messageを渡し、type、scope、subject等のruleに違反していないか検査できます。Conventional Commits系ではfeat、fix、docs等のtypeを基準にできます。

出典:[1]

shared configをextendsしてteam ruleを再利用する

@commitlint/config-conventional等のshared configurationをextendsでき、自社packageとしてrule setを公開・共有することもできます。

出典:[1][2]

Git hook・CI・programmatic APIへ組み込む

localではHusky等のcommit-msg hook、CIではcommit range検査として使え、lint/load/read等のpackageからprogrammatic APIも利用できます。

出典:[1]

向いている用途

semantic releaseやchangelog生成の前段でcommit metadataを統一したい場合に向く

Conventional Commitsをrelease note・versioning automationへ使うteamで、曖昧なcommit messageがhistoryへ入る前にruleを適用する用途に適します。

出典:[1]

導入前の確認

commit作成を支援するtoolではなく既存messageを検証する

commitlint自体はcommit内容を自動生成せず、messageがruleへ適合するかを判定します。入力補助が必要ならCommitizenやprompt package等と組み合わせます。

出典:[1]

hookだけに依存せずCIでも検証する

local hookはskipや環境差があり得るため、repository policyとして保証する場合はCIでも対象commitを検査して二重化します。

出典:[1]

21.2.3のNode・Git要件を満たす

v21.2.3 READMEはNode.js LTS 22.12.0以上とGit 2.13.2以上をsupport条件として示し、repository package metadataはNode >=22.12.0を指定しています。CI runtimeも同条件へ揃えます。

出典:[1][3][4]

参考にした公式資料

  1. [1]commitlint v21.2.3 README(2026-10-03)
  2. [2]commitlint v21.2.3 getting started(2026-10-03)
  3. [3]commitlint v21.2.3 repository package metadata(2026-10-03)
  4. [4]commitlint v21.2.3 release(2026-10-03)
  5. [5]commitlint MIT license(2026-10-03)
編集部からの補足

release automationでcommit historyを機械処理するなら、message形式を人の注意だけに任せず早い段階で検査できます。local hookだけでは回避可能なので、重要なrepositoryではCI側にも同じruleを置くと一貫性を保ちやすくなります。

3ステップで試す

  1. 1

    commitlint 21.2.3とConventional configを追加する

    Node 22.12以上のprojectへCLIとshared configを同じversionで固定して追加します。

    npm install --save-dev @commitlint/cli@21.2.3 @commitlint/config-conventional@21.2.3
  2. 2

    Conventional Commits設定を作成する

    ES module形式のconfigで標準的なConventional Commits rule setをextendsします。

    printf "export default { extends: ['@commitlint/config-conventional'] };\n" > commitlint.config.mjs
  3. 3

    commit messageをstdinからlintする

    Git historyを書き換えず、local文字列だけで設定とCLIの動作を確認します。

    printf 'feat: add search\n' | npx commitlint
公式READMEで確認

成長

成長の推移 · 直近30日

18,759 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
44
Open PR
8

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • git
  • commit
  • lint
  • conventions
Stars
18,759
Forks
969
Watchers
67
Open Issues
74
Contributors
283
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?
commitlintとは?Conventional Commits向けCommit Message Linter | OSS探訪