CI/CDツール

コミットからチェンジログ自動生成バージョン・チェンジログ・ビルド番号を一度に

コミットを貼り付けて現在のバージョンを入力すると、次バージョン計算とチェンジログ草稿、ビルド番号が得られます。

コミットからチェンジログ自動生成

コミット(1行に1件のheader)

コミットとバージョン番号はブラウザ内で解析されます。アップロードは行われず、GitやCIサービスも呼び出されません。

結果

コミットを貼り付けるか、バージョンを入力して開始してください。

オプション

認識できない行は計算を止めません。この設定はチェンジログ草稿の「Other」欄に表示するかどうかだけを決めます。

コミットを貼り付けるか、バージョンを入力して開始してください。

リリースにタグを打つ前は、次のバージョン番号は何か、チェンジログに何を書くか、どのビルド番号を使うかを手作業で考えることになりがちです。このツールは同じコミット群からコミットからチェンジログ自動生成し、バージョン提案とビルド番号まで一度に導き出すので、3つの結果がバラバラになりません。

npmのsemantic-releaseのようなセマンティックリリースの考え方をもとにしていますが、自分でバージョンを上げたりCHANGELOG.mdに手作業で書き足したりするのとは違います。すべての提案はConventional Commit Builderと同じ文法でコミットheaderを解析した結果であり、diffを推測したりAIサービスを呼んだりはしません。貼り付けた内容はブラウザの外に出ることはなく、タグの作成やpush、GitやCIのAPI呼び出しも一切行いません——出力されるのはあなたが使うためのテキストだけです。

なぜこのコミットからチェンジログ自動生成を使うのか

バージョン・チェンジログ・ビルド番号がすべて同じコミットから生まれると何が変わるかを見てみましょう。

AI任せではない、決定論的な提案

自由記述をAIに送ってバージョンを推測させるツールもあります。このツールはConventional Commit Builderと同じ文法で各コミットのheaderを解析するので、同じ入力からは常に同じ提案が得られ、通信は一切発生しません。

type・scope・破壊的変更マーカーが解析され、通信を伴わずにバージョン影響バッジになる様子

バージョン・チェンジログ・ビルド番号が同じ数字を共有

単体のバージョン計算ツールやチェンジログ生成ツール、ビルド番号生成ツールは互いの出力を知りません。ここでは提案されたバージョンがチェンジログの見出しとビルド番号テンプレートの{version}に直接渡されるので、3つがずれません。生成したチェンジログはそのままリリースノート生成にも使えます。

提案されたバージョン番号がチェンジログの見出しとビルド番号テンプレートの両方に流れ込む様子

リリース前にENV差分へ直接ジャンプ

結果が生成されると、結果パネルからENV差分ツールへ直接リンクします。デプロイ前に環境変数を比較できるこの一歩は、比較した単体のチェンジログ・ビルド番号ツールにはありませんでした。

生成されたリリース案からENV差分ツールへのリンクがある結果パネル

最初につまずきやすい3つのポイント

最初のコミット群を貼り付ける前に知っておきたいこと。

01

1行に1件のコミットheaderを貼り付ける

`git log --pretty=format:%s`の出力と同じ形式で、1行につき1件の`type(scope)!: subject`を貼り付けます。本文や`BREAKING CHANGE:`フッターを含む複数行のメッセージはここでは解析されません。破壊的変更はtypeやscopeの直後に`!`を付けて表します。

  • 自分のコミットを貼り付ける前に、どちらかのサンプルを読み込んでheaderの書き方を確認してください。
計算ツールへ移動
02

現在のバージョンとビルド番号テンプレートを設定

厳密なsemver形式(例:1.4.2)で現在のバージョンを入力し、必要ならビルド番号テンプレートを編集します。デフォルトの`{version}+{yyyyMMdd}.{count}`は提案されたバージョン、今日の日付、自分で入力するビルドカウントを使います——このツールにはCIの実行環境がないため、実際のビルド番号は読み取れません。

自動生成をオフにすると複数の項目をまとめて編集してから、Ctrl/Cmd+Enterで一度だけ実行できます。

03

影響バッジを確認してからエクスポート

バッジ(メジャー、マイナー、パッチ、変更なし)は、どのコミットがバージョンを押し上げたかを示します——破壊的変更マーカーは常に通常のfeatやfixより優先されます。タグを打つ前に、チェンジログをコピーまたはダウンロードし、ビルド番号をコピーするか、ENV差分へのリンクをたどってください。

入力を変更すると前回の結果はグレーアウトし、再生成するまでコピーとダウンロードは無効になります。

解析されない内容を見る

このツールがコミットに対して行うこと

コミットheaderの束をすぐ使えるリリース草稿に変える4つの要素。

headerのみを解析するConventional Commitパーサー

このツールはConventional Commit Builderと同じ文法で`type(scope)!: subject`行を読み取り、認識できた各行の影響度をランク付けして最も高いものを採用します——バッチのどこかに`!`か`feat`が1つあれば、リリース全体が押し上げられます。

破壊的変更を先頭に、Keep a Changelog形式の草稿

認識されたコミットはBreaking Changes、Features、Fixes、Otherの4グループに分類され、コピーしたりCHANGELOG.mdとしてダウンロードしたりできるMarkdownとして描画されます——破壊的変更の項目は常に先頭です。

自分で調整できるビルド番号テンプレート

`{version}`、`{yyyy}`、`{yyyyMM}`、`{yyyyMMdd}`と手入力の`{count}`を組み合わせて、パイプラインが必要とするビルド番号形式を自由に作れます。未知のプレースホルダーはそのまま残り、警告されるだけで、黙って消えることはありません。

認識できない行が結果を止めない

コミットheaderとして無効な行はバージョン提案の計算からスキップされ、別途カウントされるだけで、計算全体を止めません——「無視」をオフにするとチェンジログのOther欄にその行を表示できます。

このツールが解析するもの・しないもの

実際のリリースのコミットを貼り付ける前に知っておきたい境界条件です。

解析するのは1行のコミットheaderのみ
本文や`BREAKING CHANGE:`フッターを含む複数行のコミットメッセージはサポートされません——メッセージを1行ずつ連結すると、空行で区切られたフッターの境界を次のコミットのheaderと確実に区別できなくなるためです。破壊的変更には代わりに`!`を使ってください。
1回の処理で最大1,000行・100,000文字まで
これを超えて貼り付けるとコミットを黙って切り詰めるのではなくエラーを返します——非常に大きなリリース範囲は小さなバッチに分割してください。
現在のバージョンは厳密なsemver文字列である必要があります
`v1.4.2`や`1.4`、先頭にゼロが付いたバージョンはエラーとして拒否され、位置が示されます。`1.4.2`のような形式になるまで、提案欄は空のままです。
公開・タグ付け・CIの読み取りは一切行いません
リポジトリからコミットを取得することも、タグを作成することもなく、`{count}`が実際のビルド番号から読み取られることもありません——このツールは貼り付けたテキストをバージョン、チェンジログ草稿、ビルド番号文字列に変換するだけです。

コミットからチェンジログ自動生成に関するFAQ

コミット駆動のバージョン提案を信頼する前に、実際によく聞かれる質問です。

コミットメッセージからパッチバージョンが上がらないのはなぜ?

行が`type(scope)!: subject`の形式と正確に一致しているか確認してください。コロンの抜けや余分なスペース、未対応の記法があると、その行全体が認識されず、バージョン提案に反映されません。結果欄の認識行数を見れば、実際に何行解析できたかがわかります。

BUILD_NUMBERをバージョンに反映させるには?

オプションのビルド番号テンプレートを編集してください。デフォルトの`{version}+{yyyyMMdd}.{count}`は、このツールが提案したバージョン、今日の日付、自分で入力するカウントを組み合わせます——ここにはCI実行環境がなく実際のビルド番号は読み取れないため、`{count}`は手入力のままです。

バージョン番号とビルド番号の違いは何ですか?

バージョン番号(1.5.0のような)はセマンティックバージョニングに従い、コミットの影響度から決まります。ビルド番号はテンプレートから生成される別の文字列で、同じバージョンでもビルドごとに区別したいCIシステムに役立ちます——`{version}`を含めることもできますが、日付や手入力の`{count}`も組み合わせられます。

CHANGELOGを自動生成する良い方法はありますか?

コミットを1行に1件のheaderとして貼り付けるだけで、このツールがコミットからチェンジログ自動生成し、feat・fix・破壊的変更ごとにグループ分けしたKeep a Changelog形式の草稿を作ります。コピーするか、CHANGELOG.mdとしてダウンロードすれば、手作業での転記は不要です。

コミットが規約に従っていないとどうなりますか?

`type(scope)!: subject`の形式に合わない行は「未認識」としてカウントされるだけで、バージョン提案の計算には使われません。デフォルトでは「認識できない行を無視」がオンのため、チェンジログ草稿にも表示されません——表示したい場合はこのオプションをオフにしてください。

答えが見つかりませんでしたか?

今すぐコミットからチェンジログ自動生成を使う

コミットを貼り付けて現在のバージョンを確認するだけで、数秒でバージョン提案、チェンジログ草稿、ビルド番号が手に入ります。

すべての処理はブラウザ内でローカルに完結します——登録不要、アップロードなし、タグ付けやデプロイが勝手に実行されることもありません。

解析はすべてブラウザ内でローカルに行われ、タグ付けや公開が代行されることはありません。