正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

マージリクエストのタイトル検証

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

マージリクエストのタイトルに命名規則を適用するには、RE2正規表現パターンと照合します。プロジェクトのタイトルパターンを設定すると、そのパターンに一致しないマージリクエストはマージがブロックされます。

タイトル検証の使用目的:

  • タイトルにJiraまたはイシュートラッカーのチケット参照を必須とします。
  • conventional commitの書式を適用します。
  • リリースマネージメントまたはガバナンスワークフローのタイトルプレフィックスを標準化します。

マージリクエストのタイトル検証を設定する

プロジェクト内のすべてのマージリクエストのタイトルがマージされる前に一致する必要がある正規表現パターンを設定します。

前提条件:

  • プロジェクトのメンテナーまたはオーナーのロール。

タイトル検証を設定するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > マージリクエストを選択します。
  3. タイトルパターンテキストボックスに、正規表現パターンを入力します。
  4. タイトルの例テキストボックスに、期待されるフォーマットの説明を入力します。マージリクエストの作成者が何を使用すべきか分かるように、有効な例を含めてください。
  5. 変更を保存を選択します。

プロジェクトのタイトル検証設定フィールド。

タイトルパターンを設定すると、タイトルの例も必須になります。マージリクエストのタイトルがパターンに一致しない場合、ユーザーにはタイトルの例が表示されます。

タイトル検証を削除するには、タイトルパターンタイトルの例のテキストボックスを両方クリアし、変更を保存を選択します。

APIでタイトル検証を設定するには、projects APIも使用できます。

正規表現構文

タイトル検証はPCREではなくRE2構文を使用します。RE2は後方参照や先読み/後読みアサーションをサポートしていません。

パターンと説明のフィールドは、それぞれ最大255文字です。

パターンの例

以下は正規表現パターンの例です:

  • Jiraチケット参照(有効なタイトルの例: PROJ-123 Fix login bug):

    ^[A-Z]+-\d+ .+
  • Conventionalコミット(有効なタイトルの例: feat(auth): add SSO support):

    ^(feat|fix|docs|chore|refactor|test|style)(\(.+\))?: .+
  • カスタムプレフィックス(有効なタイトルの例: BUGFIX: resolve timeout error):

    ^(FEATURE|BUGFIX|HOTFIX): .+
  • 角括弧で囲まれたカテゴリ(有効なタイトルの例: [Feature] Add dark mode):

    ^\[.+\] .+

検証の適用

タイトル検証パターンが設定されている場合:

  • パターンに一致しないマージリクエストのタイトルはマージできません。
  • タイトルチェックは、承認、パイプラインステータス、スレッド解決などの他のチェックと並んでマージチェックとして表示されます。
  • If 自動マージが有効な場合、マージリクエストはタイトルがパターンに一致するのを待ってからマージされます。
  • 検証はマージ時の現在のタイトルに適用されます。作成者はマージする前の任意の時点でタイトルを更新できます。

タイトル検証チェックによってブロックされたマージリクエスト。

トラブルシューティング

タイトル検証のためマージリクエストをマージできません

マージリクエストがタイトル検証によってブロックされた場合:

  1. マージリクエストのマージチェックセクションで、タイトル検証の失敗を確認します。
  2. 設定 > マージリクエスト > タイトルパターンで設定されたパターンに一致するように、マージリクエストのタイトルを更新します。
  3. エラーメッセージに表示されているタイトルの例を、期待されるフォーマットの参照として使用してください。

ドラフトマージリクエスト

タイトル検証は、Draft:プレフィックスを含む完全なタイトル文字列に適用されます。正規表現パターンがDraft:プレフィックスを考慮していない場合、ドラフトマージリクエストは検証に失敗する可能性があります。ドラフトおよび非ドラフトの両方のタイトルを許可するには、^(Draft: )?YOUR_PATTERNのようなパターンを使用することを検討してください。

正規表現パターンが期待どおりに一致しない

タイトル検証は、多くのオンライン正規表現テスターで使用されるPCRE構文とは異なるRE2構文を使用します。パターンを検証するには:

  • RE2互換の正規表現テスターを使用します。
  • 後方参照や先読みアサーションのようなサポートされていない機能を使用していないことを確認します。
  • 特殊文字が正しくエスケープされていることを確認します。