カスタム マージ チェックを設定して使用する
Bitbucket Cloud にはブランチ制限機能が組み込まれています。この機能を使用すると、プロジェクト チームとリポジトリ チームは、プル リクエストでマージ コマンドを許可する前に満たす必要のある前提条件を設定できます。
標準で提供されているブランチ制限が組織固有のワークフローに合わない場合、Bitbucket Cloud ではカスタム マージ チェックも利用できます。
アプリベースのカスタム マージ チェックを使用する利点は、これらのチェックを完全に制御できることです。要件を問わず、一貫性があり、安全で、品質重視のワークフローを構築できます。
Premium プランでは、ワークスペース、プロジェクト、またはリポジトリ レベルでこれらのチェックを設定して実施することもできます。このため、必要に応じて広範囲に、または個別的に品質基準を適用できます。
はじめる前に
カスタム マージ チェックは高度な機能です。カスタム マージ チェックを使用するには、まずカスタム マージ チェック Forge アプリを作成してインストールする必要があります。
カスタム マージ チェック アプリの作成方法を学ぶには、開発者向けチュートリアルを使用してください。
また、サードパーティ ベンダーが作成したアプリをインストールする場合は、このページで既製アプリのインストール方法を確認してください。
カスタム マージ チェックをインストールして有効にする
Forge アプリは個人用ワークスペースではサポートされていません。共有のチーム用ワークスペースの設定方法を参照してください。
カスタム マージ チェックを設定およびセットアップできるのはワークスペース管理者だけです。
カスタム マージ チェックを設定するには:
次の 2 つのオプションのいずれかを使用して、カスタム マージ チェック アプリをワークスペースにインストールします。
ご自身やチームが作成したアプリのソース コードがある場合は、Forge CLI forge install コマンドでインストールします。カスタム マージ チェック アプリの作成の詳細については、開発者向けドキュメントを参照してください。Install コマンドの詳細については、Install コマンドを参照してください。
他の人が作成したアプリをインストールする場合は、アプリ開発者から提供された直接配布リンクを使用します。詳細については、開発者向けドキュメントの「アプリの配布」を参照してください。
上部のナビゲーション バーの右上隅にある [設定] を選択し、[ワークスペースの設定] を選択します。
左側のナビゲーション バーの [ワークフロー] で [カスタム マージ チェック] を選択します。
ワークスペースでカスタム マージ チェック機能を有効にするには、[Enable (有効化)] トグルを選択します。
有効にすると、インストールされている Forge アプリから利用できるすべてのカスタム マージ チェックが、ワークスペース、プロジェクト、リポジトリの各設定ページの [ワークフロー] 以下にある [カスタム マージ チェック] ページに表示されます。
カスタム マージ チェックをリポジトリ レベルで設定する
リポジトリ レベルで有効化されたチェックは、プル リクエストのターゲット ブランチが設定済みのチェック対応ブランチと一致していれば、そのリポジトリに含まれるすべてのプル リクエストに対して実行されます。
リポジトリ レベルのカスタム チェックを管理するには、リポジトリ管理者である必要があります。
リポジトリに関連付けられたカスタム マージ チェックの管理方法は以下のとおりです。
リポジトリの左側のサイドバーで [リポジトリの設定] を選択します。
左側のサイドバーにある [ワークフロー] で [カスタム マージ チェック] を選択します。
表が表示されない場合は、カスタム マージ チェックを提供する Forge アプリがインストールされていないことを意味します。事前にアプリをワークスペースにインストールしておく必要があります。
表に表示されている Forge アプリの [Add check (チェックを追加)] ボタンをクリックします。
有効にするアプリのマージ チェックの名前を選択します。
カスタム チェックの実行対象とするターゲット ブランチを選択します。
[保存] をクリックすると、そのチェックがすべてのプル リクエストで有効になります。
Premium 専用機能
Premium プランの場合は、required をオンにすると、チェックに合格しなければプル リクエストをマージできなくなります。
カスタム マージ チェックをプロジェクト レベルで設定する
プロジェクト レベルで有効化されたチェックは、プロジェクト内の各リポジトリに含まれるすべてのプル リクエストに対して実行されます。ただしプル リクエストが、有効化されたカスタム チェックに対応するブランチをターゲットにしている必要があります。
プロジェクト レベルのカスタム チェックを管理するには、プロジェクト管理者である必要があります。
Premium 専用機能
Premium プランを利用している場合は、プロジェクト レベルのカスタム チェックを管理できます。
プロジェクトに関連付けられたカスタム マージ チェックの管理方法は以下のとおりです。
プロジェクトの左側のサイドバーで [プロジェクト設定] を選択します。
左側のサイドバーにある [ワークフロー] で [カスタム マージ チェック] を選択します。
表が表示されない場合は、カスタム マージ チェックを提供する Forge アプリがインストールされていないことを意味します。事前にアプリをワークスペースにインストールしておく必要があります。
表に表示されている Forge アプリの [Add check (チェックを追加)] ボタンをクリックします。
有効にするアプリのマージ チェックの名前を選択します。
カスタム チェックの実行対象とするターゲット ブランチを選択します。
チェックが required かどうかを選択します。
[保存] をクリックすると、そのチェックがすべてのプル リクエストで有効になります。
カスタム マージ チェックをワークスペース レベルで設定する
ワークスペース レベルで有効化されたチェックは、ワークスペース内の各プロジェクトの各リポジトリに含まれるすべてのプル リクエストに対して実行されます。ただしプル リクエストが、有効化されたカスタム チェックに対応するブランチをターゲットにしている必要があります。
ワークスペース レベルのカスタム チェックを管理するには、ワークスペース管理者である必要があります。
Premium 専用機能
Premium プランを利用している場合は、ワークスペース レベルのカスタム チェックを管理できます。
プロジェクトに関連付けられたカスタム マージ チェックの管理方法は以下のとおりです。
プロジェクトの左側のサイドバーで [プロジェクト設定] を選択します。
左側のサイドバーにある [ワークフロー] で [カスタム マージ チェック] を選択します。
表が表示されない場合は、カスタム マージ チェックを提供する Forge アプリがインストールされていないことを意味します。事前にアプリをワークスペースにインストールしておく必要があります。
表に表示されている Forge アプリの [Add check (チェックを追加)] ボタンをクリックします。
有効にするアプリのマージ チェックの名前を選択します。
カスタム チェックの実行対象とするターゲット ブランチを選択します。
チェックが required かどうかを選択します。
[保存] をクリックすると、そのチェックがすべてのプル リクエストで有効になります。
カスタム マージ チェックの使用
カスタム マージ チェック アプリをインストールしてワークスペース レベルで機能を有効にすると、Bitbucket リソース階層の各レベル (ワークスペース、プロジェクト、リポジトリ) でカスタム マージ チェックを設定できます。
これにより、組織 (ワークスペース レベル) はワークスペース全体にわたって実行する必要がある一連のチェックを必須にでき、チーム (プロジェクト) もそのプロジェクト内でのチェックの実行を必須にでき、最終的には個々のリポジトリにもチェックを設定できるようになります。
これらのチェックは継承されます。これは、ワークスペース レベルで required になっているチェックであり、それより下位レベル (プロジェクトまたはリポジトリ) で無効にすることはできません。
またチェックは補完的です。お勧めはしませんが、同じチェックを複数のレベルで行うこともでき、この場合、それぞれのチェックがプル リクエストに独立した影響を与えます。
このため、ワークスペースでチェックを not required に設定したうえで、そこに含まれるプロジェクト (またはリポジトリ) で同じブランチに対する同じチェックを required として有効に設定できます。
ワークスペース レベルの設定、プロジェクト レベルの設定、required カスタム マージ チェックは、Premium プランでのみ利用できます。
例として、以下のリポジトリでのチェックを考えてみます。
リポジトリの設定済みのメイン ブランチをターゲットとするプル リクエストは、次のマージ チェックを実行します。
Required number of builds passed
All tasks resolved (リポジトリのプロジェクトから継承)
Minimum approvals (リポジトリのワークスペースから継承)
継承された両方のチェックの結果が合格となる必要があります (required に設定されているため)。
カスタム マージ チェックはプル リクエストのコンテキストで実行されます。マージ チェックを有効にすると、有効にしたチェックの結果が [プル リクエスト] ページに表示されます。
カスタム マージ チェックの有効化前に作成されたプル リクエストでは、対応するチェック結果がすぐには UI に表示されない場合があります。この場合、マージを試みると、対応する結果が見つからないためにマージはブロックされます。この時点で、見つからないチェックはキューに入れられて実行されます。これ以降、このプル リクエストは同期状態が維持されます。
これ以降に作成されたプル リクエストは、ターゲット ブランチに対して設定されたカスタム チェックを自動的にキューに入れ、実行します。
not required に設定されているチェックはすべて実行されますが、マージを妨げることはありません。
カスタム マージ チェックのタイプ
カスタム チェックは、マージ前、マージ時、またはその両方のいずれかのタイプになります。チェックのタイプは Forge アプリのマニフェストでサブスクライブしているトリガーによって決まります。マージ チェックのタイプはカスタム マージ チェックの設定表の追加/編集モーダルに表示されます。
マージ前
マージ前にオープン プル リクエストでさまざまなイベントが発生するとマージ前チェックがトリガーされます。たとえば、コードがプル リクエストのソース ブランチにプッシュされた場合 (on-code-pushed) や、承認が変更された場合 (on-reviewer-status-changed) です。pre-merge のカスタム マージ チェックでは、マージ アクションの呼び出し前に、成功という結果が得られている必要があります (それが必須の場合)。
マージ時
マージ時チェックはマージ プロセス自体に統合されており、[マージ] ボタンを選択した後 (または API を呼び出した後) にのみトリガーされます。required に設定されているマージ時チェックに失敗すると、プル リクエストのマージに失敗します。
この内容はお役に立ちましたか?