カスタム マージ チェックを設定して使用する

Bitbucket Cloud offers built-in branch restrictions that allow your project and repository teams to set up prerequisites that must be met before merge commands are allowed for pull requests.

標準で提供されているブランチ制限が組織固有のワークフローに合わない場合、Bitbucket Cloud ではカスタム マージ チェックも利用できます。

アプリベースのカスタム マージ チェックを使用する利点は、これらのチェックを完全に制御できることです。要件を問わず、一貫性があり、安全で、品質重視のワークフローを構築できます。

Premium プランでは、ワークスペース、プロジェクト、またはリポジトリ レベルでこれらのチェックを設定して実施することもできます。このため、必要に応じて広範囲に、または個別的に品質基準を適用できます。

はじめる前に

Custom merge checks are an advanced feature. To use custom merge checks, you must first build and install a custom merge check Forge app.

Use our developer tutorial to learn how to create a custom merge check app.

また、サードパーティ ベンダーが作成したアプリをインストールする場合は、このページで既製アプリのインストール方法を確認してください。

カスタム マージ チェックをインストールして有効にする

Forge apps are not supported on personal workspaces. See set up a shared team workspace.

カスタムのマージ チェックを設定および設定するには、ワークスペース管理者である必要があります。

カスタム マージ チェックを設定するには:

  1. 次の 2 つのオプションのいずれかを使用して、カスタム マージ チェック アプリをワークスペースにインストールします。

    1. Install an app you or your team has created via the Forge CLI forge install command if you have the app source code. Refer to the our developer documentation for more details on creating custom merge check apps. If you are looking for specific details about the Install command, refer to Install command.

    2. Install an app that someone else has created via a direct distribution link given to you by the app developer. Refer to the Distribute your apps developer doc for more details.

  2. 上部のナビゲーション バーの右上隅にある [設定] を選択し、[ワークスペースの設定] を選択します。

  3. 左側のナビゲーション バーの [ワークフロー] で [カスタム マージ チェック] を選択します。

  4. ワークスペースでカスタム マージ チェック機能を有効にするには、[Enable (有効化)] トグルを選択します。

  5. 有効にすると、インストールされている Forge アプリから利用できるすべてのカスタム マージ チェックが、ワークスペース、プロジェクト、リポジトリの各設定ページの [ワークフロー] 以下にある [カスタム マージ チェック] ページに表示されます。

カスタム マージ チェックをリポジトリ レベルで設定する

リポジトリ レベルで有効化されたチェックは、プル リクエストのターゲット ブランチが設定済みのチェック対応ブランチと一致していれば、そのリポジトリに含まれるすべてのプル リクエストに対して実行されます。

リポジトリ レベルのカスタム チェックを管理するには、リポジトリ管理者である必要があります。

リポジトリに関連付けられたカスタム マージ チェックの管理方法は以下のとおりです。

  1. リポジトリの左側のサイドバーで [リポジトリの設定] を選択します。

  2. 左側のサイドバーにある [ワークフロー] で [カスタム マージ チェック] を選択します。

  3. 表が表示されない場合は、カスタム マージ チェックを提供する Forge アプリがインストールされていないことを意味します。事前にアプリをワークスペースにインストールしておく必要があります。

  4. 表に表示されている Forge アプリの [Add check (チェックを追加)] ボタンをクリックします。

  5. 有効にするアプリのマージ チェックの名前を選択します。

  6. カスタム チェックの実行対象とするターゲット ブランチを選択します。

  7. [保存] をクリックすると、そのチェックがすべてのプル リクエストで有効になります。

Premium 専用機能

  • Premium プランの場合は、required をオンにすると、チェックに合格しなければプル リクエストをマージできなくなります。

カスタム マージ チェックをプロジェクト レベルで設定する

プロジェクト レベルで有効化されたチェックは、プロジェクト内の各リポジトリに含まれるすべてのプル リクエストに対して実行されます。ただしプル リクエストが、有効化されたカスタム チェックに対応するブランチをターゲットにしている必要があります。

プロジェクト レベルのカスタム チェックを管理するには、プロジェクト管理者である必要があります。

Premium 専用機能

  • Premium プランを利用している場合は、プロジェクト レベルのカスタム チェックを管理できます。

プロジェクトに関連付けられたカスタム マージ チェックの管理方法は以下のとおりです。

  1. プロジェクトの左側のサイドバーで [プロジェクト設定] を選択します。

  2. 左側のサイドバーにある [ワークフロー] で [カスタム マージ チェック] を選択します。

  3. 表が表示されない場合は、カスタム マージ チェックを提供する Forge アプリがインストールされていないことを意味します。事前にアプリをワークスペースにインストールしておく必要があります。

  4. 表に表示されている Forge アプリの [Add check (チェックを追加)] ボタンをクリックします。

  5. 有効にするアプリのマージ チェックの名前を選択します。

  6. カスタム チェックの実行対象とするターゲット ブランチを選択します。

  7. チェックが required かどうかを選択します。

  8. [保存] をクリックすると、そのチェックがすべてのプル リクエストで有効になります。

カスタム マージ チェックをワークスペース レベルで設定する

ワークスペース レベルで有効化されたチェックは、ワークスペース内の各プロジェクト各リポジトリに含まれるすべてのプル リクエストに対して実行されます。ただしプル リクエストが、有効化されたカスタム チェックに対応するブランチをターゲットにしている必要があります。

ワークスペース レベルのカスタム チェックを管理するには、ワークスペース管理者である必要があります。

Premium 専用機能

  • Premium プランを利用している場合は、ワークスペース レベルのカスタム チェックを管理できます。

プロジェクトに関連付けられたカスタム マージ チェックの管理方法は以下のとおりです。

  1. プロジェクトの左側のサイドバーで [プロジェクト設定] を選択します。

  2. 左側のサイドバーにある [ワークフロー] で [カスタム マージ チェック] を選択します。

  3. 表が表示されない場合は、カスタム マージ チェックを提供する Forge アプリがインストールされていないことを意味します。事前にアプリをワークスペースにインストールしておく必要があります。

  4. 表に表示されている Forge アプリの [Add check (チェックを追加)] ボタンをクリックします。

  5. 有効にするアプリのマージ チェックの名前を選択します。

  6. カスタム チェックの実行対象とするターゲット ブランチを選択します。

  7. チェックが required かどうかを選択します。

  8. [保存] をクリックすると、そのチェックがすべてのプル リクエストで有効になります。

カスタム マージ チェックの使用

カスタム マージ チェック アプリをインストールしてワークスペース レベルで機能を有効にすると、Bitbucket リソース階層の各レベル (ワークスペース、プロジェクト、リポジトリ) でカスタム マージ チェックを設定できます。

これにより、組織 (ワークスペース レベル) はワークスペース全体にわたって実行する必要がある一連のチェックを必須にでき、チーム (プロジェクト) もそのプロジェクト内でのチェックの実行を必須にでき、最終的には個々のリポジトリにもチェックを設定できるようになります。

これらのチェックは継承されます。これは、ワークスペース レベルで required になっているチェックであり、それより下位レベル (プロジェクトまたはリポジトリ) で無効にすることはできません。

またチェックは補完的です。お勧めはしませんが、同じチェックを複数のレベルで行うこともでき、この場合、それぞれのチェックがプル リクエストに独立した影響を与えます。

このため、ワークスペースでチェックを not required に設定したうえで、そこに含まれるプロジェクト (またはリポジトリ) で同じブランチに対する同じチェックを required として有効に設定できます。

ワークスペース レベルの設定、プロジェクト レベルの設定、required カスタム マージ チェックは、Premium プランでのみ利用できます。

例として、以下のリポジトリでのチェックを考えてみます。

管理者から見たカスタム マージ チェックの例

リポジトリの設定済みのメイン ブランチをターゲットとするプル リクエストは、次のマージ チェックを実行します。

  • Required number of builds passed

  • All tasks resolved (リポジトリのプロジェクトから継承)

  • Minimum approvals (リポジトリのワークスペースから継承)

継承された両方のチェックの結果が合格となる必要があります (required に設定されているため)。

カスタム マージ チェックはプル リクエストのコンテキストで実行されます。マージ チェックを有効にすると、有効にしたチェックの結果が [プル リクエスト] ページに表示されます。

開発者から見たカスタム マージ チェックの例

カスタム マージ チェックの有効化前に作成されたプル リクエストでは、対応するチェック結果がすぐには UI に表示されない場合があります。この場合、マージを試みると、対応する結果が見つからないためにマージはブロックされます。この時点で、見つからないチェックはキューに入れられて実行されます。これ以降、このプル リクエストは同期状態が維持されます。

これ以降に作成されたプル リクエストは、ターゲット ブランチに対して設定されたカスタム チェックを自動的にキューに入れ、実行します。

not required に設定されているチェックはすべて実行されますが、マージを妨げることはありません。

カスタム マージ チェックのタイプ

A custom check can be pre-merge, on-merge, or both. The type of the check depends on what trigger it is subscribing to in its Forge app manifest. The merge check type is displayed in the add/edit modal in the Custom merge checks setting table.

マージ前

マージ前にオープン プル リクエストでさまざまなイベントが発生するとマージ前チェックがトリガーされます。たとえば、コードがプル リクエストのソース ブランチにプッシュされた場合 (on-code-pushed) や、承認が変更された場合 (on-reviewer-status-changed) です。pre-merge のカスタム マージ チェックでは、マージ アクションの呼び出し前に、成功という結果が得られている必要があります (それが必須の場合)。

マージ時

マージ時チェックはマージ プロセス自体に統合されており、[マージ] ボタンを選択した後 (または API を呼び出した後) にのみトリガーされます。required に設定されているマージ時チェックに失敗すると、プル リクエストのマージに失敗します。

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。