Gitブランチ命名規約チェック
ブランチ名とテンプレートを入力するだけで照合できます。feature/ABC-123-add-loginはtype/ticket-descriptionに合うので有効で、種類、チケット、説明の3つに分かれます。合わない場合は両方を示して知らせます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- ブランチ
- feature/ABC-123-add-login
- 規約
- type/ticket-description
- コンポーネント名
- type, ticket, description
- 材料の数
- 3
モノレポ や 長期運用 の プロダクト リポジトリ を 共有 する チーム は 、 レビュー 用 ボット 、 リリース 用 スクリプト 、 チケット リンク が 人 の 推測 なし に 各 ref を 解釈 できる よう 、 ブランチ 命名 規約 を 定める こと が 一般的 です 。典型的 な パターン は type スラッシュ ticket ハイフン description — 例 feature/ABC-123-add-login — です が 、 組織 ごと に 区切り 文字 と 部品 の 順序 が 異なり ます 。本 Git ブランチ 命名 規約 バリデーター は 、 実 ブランチ 文字列 と 規約 テンプレート を 受け取り 、 名前 全体 が 先頭 から 末尾 まで 一致 する か を 確認 し 、 名前 付き コンポーネント を 返し ます 。CI 、 フック 、 ダッシュボード が 脆い 使い 捨て 正規 表現 なし で 方針 を 強制 でき ます 。
規約パターンの仕組みと抽出される内容
規約は、プレースホルダー名とリテラル区切り文字からなる短いテンプレート文字列です。プレースホルダーは通常の識別子で、英字またはアンダースコアで始まり、英字・数字・アンダースコアが続きます。テンプレート内のそれ以外は、ブランチ名にそのまま現れるべき区切り文字です。
古典的な例 type/ticket-description は、スラッシュとハイフンで結ばれた type・ticket・description の三部品を意味します。
この規約で branch feature/ABC-add-login を送ると、バリデーターは type を feature、ticket を ABC、description を add-login として返します。
最終コンポーネントは前段の区切りと同じ文字を含めることができるため、add-user-login のような複数語スラッグは最初のハイフンで切れず description 内に残ります。一つの規約内のコンポーネント名は一意でなければならず、パターンはプレースホルダーで始まり終わり、プレースホルダーと区切りは交互である必要があります。
これらの規則により、コンパイルされた照合は決定的で曖昧なキャプチャを避けます。
git は長さゼロの ref を作れず、名前を渡し忘れた自動化は閉じて失敗すべきだからです。パターン照合の前に、ハンドラは軽い git ref 安全チェックを適用します。
空白なし、連続ドットなし、二重スラッシュなし、@ { 並びなし、バックスラッシュなし、先頭末尾のスラッシュやドットなし、末尾 .lock なし、ASCII のチルダ・キャレット・コロン・疑問符・アスタリスク・開き角括弧なし。任意の出力キーは null ではなく省略されます。検証失敗は課金されません。
feature・fix・chore・release などの type 値の許可リストが必要なら、独自の方針層と組み合わせてください。本機能は構造を調べ部品を抽出するだけで、特定組織の語彙をハードコードしません。
活用例
pre-commit とオンボーディング用フック
サーバーと同じ純粋マッチャーで、社内の命名パターンをローカルで開発者に教えます。
チケットと changelog の自動化
ブランチ名から ticket と type を抽出し、トラッカー更新と changelog 節の選択に使います。
よくある質問
description 部分にハイフンを含められますか?
はい。 最終プレースホルダーが残りの接尾辞を捕獲するため、直前の区切りが単一ハイフンなら add-user-login は最後のコンポーネント内に残ります。
バリデーターは固定のブランチ種別リストを強制しますか?
いいえ。 構造を調べコンポーネントを抽出するだけです。feature・fix・chore などだけを受け入れる場合は、type コンポーネントに独自の許可リストを適用してください。
チケットがABC-123ではなくABCになるのはなぜですか?
このテンプレートでは、チケットの後ろのハイフンが説明との区切りなので、チケットは最初のハイフンで終わります。残りの部分はすべて最後の説明に入り、説明にはハイフンを含められます。
どんな文字があるとブランチ名は不合格になりますか?
空白、連続したドット、gitで禁止されている記号、制御文字です。空の名前や空白だけの名前も、名前のないブランチは作れないため受け付けません。
テンプレートにはどんな決まりがありますか?
名前の部分と区切り文字を交互に並べ、名前の部分で始まり名前の部分で終わる必要があります。同じテンプレートの中で、部分の名前を重複させることもできません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/git-branch-name-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"branch":"feature/ABC-123-add-login","convention":"type/ticket-description"}'const res = await fetch("https://api.kit.forhosting.com/dev/git-branch-name-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"branch": "feature/ABC-123-add-login",
"convention": "type/ticket-description"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/git-branch-name-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"branch": "feature/ABC-123-add-login",
"convention": "type/ticket-description"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/git-branch-name-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"branch":"feature/ABC-123-add-login","convention":"type/ticket-description"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"branch":"feature/ABC-123-add-login","convention":"type/ticket-description"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/git-branch-name-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"branch": "feature/ABC-123-add-login",
"convention": "type/ticket-description"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.git_branch_name_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
空 の 名前 は invalid_input で 失敗 し 、 空白 ・ 連続 ドット ・ 禁止 句読点 など 安全 で ない git ref 文字 も 同様 です 。
規約パターンの仕組みと抽出される内容
ブランチがパターン全体に一致しない場合、タスクは invalid_input で失敗し、ブランチと規約の両方を引用したメッセージで、開発者が名前または方針を一目で直せます。
入力契約、安全チェック、レスポンス形
POST で JSON 本体に二つの必須文字列を送ってください。branch は候補の git ブランチ名、convention は命名テンプレートです。利便のため別名も受け付けます—branch 欄は branch_name・name・ref、convention 欄は pattern・format・template—が、ドキュメントと SDK では正規名が使われます。空白のみは拒否されたうえで、両フィールドは空であってはなりません。空のブランチは常に invalid_input です。制御文字も拒否します。 成功時の本体には valid true、エコーされた branch と convention、各プレースホルダー名を捕獲値に写す components オブジェクト、テンプレート順の component_names、component_count が含まれます。
ブランチ命名バリデーターが役立つ場面
リリース自動化は ticket コンポーネントを抽出してトラッカーの issue を開閉更新し、type コンポーネントを抽出して脆い部分文字列ハックなしに changelog 節を選びます。方針変更はシェルスクリプトの探索ではなく、一つの文字列編集になります。git ブランチ命名規約バリデーターで検索順位を狙うコンテンツサイトは、無料経路が有料自動化経路とバイト単位で一致するライブフォームの恩恵を受けます。継続的インテグレーションのジョブは、Git ブランチ命名規約バリデーターをパイプラインの第一段として使い、場当たり的な名前のプルリクエストが高価なビルド段に到達しないようにします。多数のリポジトリを運用するプラットフォームチームは、開発者ポータルに規約文字列を一つ公開し、すべてのテンプレート・ボット・チェックリストをこのエンドポイントに向けます。実装が tier A の pure parse であるため、成功した各呼び出しは公開された基本価格 $0.002 で、モデルトークンも外向きネットワークも使いません。
連携の活用例
プルリクエスト向け CI ゲート
高コストなビルドとテストの前に、type/ticket-description に合わない PR ブランチを拒否します。
技術的な質問
命名規約に対して git ブランチをどう検証しますか?
branch(例 feature/ABC-add-login)と convention(例 type/ticket-description)を送ってください。成功時 API は valid true と各名前付き部分を持つ components マップを返します。
ブランチ名が空の場合はどうなりますか?
タスクは invalid_input で失敗します。空または空白のみのブランチ名は受理されず、課金もされません。
Git ブランチ命名バリデーターの料金は?
ブラウザツールは無料です。API リクエストは成功した呼び出しごとに前払い KIT 残高から $0.002 です。無効入力は課金されません。