ブランチ権限を使用する

ブランチ権限は、特定のワークフローを強制してワークスペースの新しいメンバーがメイン ブランチを削除してしまうようなエラーを防ぐために役立ちます。

ブランチ権限でできること:

  • 任意のブランチに書き込みまたはマージできるユーザー/グループを厳密にコントロールします。

  • 特定のブランチ タイプやパターンに対応する権限を作成します。たとえば、PROJECT-* は、PROJECT-1234 などの名前を持つすべてのブランチへのアクセスを制限します。

ブランチ権限の優先度に関するルール (施行される内容の要約版)

  • ユーザーとグループのアクセスは他のものを上書きします (ここでは既存のコードが ALLOW しか使用しないため、ALLOW vs DENY は指定されません)

  • DENY は ALLOW をオーバーライドします

  • 非ブランチ固有のアクセスは、あらゆるものに上書きされます

  • 競合が発生した場合、最も高い追加価値が優先されます (他のルールには干渉しません)

ワークスペースのワークフローをさらに厳密に管理したい場合はマージ チェックについて確認してください。マージ チェックでは、個別のブランチやブランチ パターンのマージについて、特定の条件を推奨または要求することができます。マージ チェックについて詳細を読む

マージ チェックは、Bitbucket Cloud のプレミアム機能です。Bitbucket プレミアムについて詳細を読む

権限のセットアップの例

たとえば、Alana (主任エンジニア)、Harvey (QA リーダー)、その他の 5 人のエンジニアが、Teams in Space プロジェクトに携わっているとします。効果的に作業できるように、全員がリポジトリへの書き込みアクセス権を持っています。今回は、リポジトリの main ブランチと develop ブランチへのアクセスを管理する必要があります。次のように権限を割り当てます。 

  • Alana にのみ main への直接書き込みを許可

  • Alana と Harvey にのみ main へのマージを許可

  • 全員に develop へのマージを許可 (ただしプルリクエスト経由でのみ)

この例を設定する方法を説明する手順は次のとおりです

権限を制限するリポジトリに移動して、[リポジトリ設定] > [ブランチ制限] の順に選択します。

main ブランチに権限を追加する:

  1. [Add a branch restriction (ブランチ制限を追加)] を選択します。

  2. 各フィールドに以下を入力してから、[保存] をクリックします。

    1. 名前またはパターン: main

    2. [Write access (書き込みアクセス)] の [ブランチ権限] タブで、[Only specific people or groups have write access (特定のユーザーまたはグループのみが書き込みアクセス権を持つ)] を選択します: Alana ペルソナ

    3. [Merge access via pull requests (プル リクエスト経由のマージ アクセス)] の [ブランチ権限] タブで、[Only specific people or groups have merge access (特定のユーザーまたはグループのみがマージ アクセス権を持つ)] を選択します: Harvey ペルソナ

次に、develop ブランチに権限を追加します。

  1. [Add a branch restriction (ブランチ制限を追加)] を選択します。

  2. 各フィールドに以下を入力してから、[保存] をクリックします。

    1. 名前またはパターン: Develop

    2. [Write access (書き込みアクセス)] の [ブランチ権限] タブで、[Only specific people or groups have write access (特定のユーザーまたはグループのみが書き込みアクセス権を持つ)] を選択します: Alana ペルソナおよび Harvey ペルソナ (Alana と Harvey はプル リクエスト経由でのマージ権限も取得します)。

    3. [Merge access via pull requests (プル リクエスト経由のマージ アクセス)] の [ブランチ権限] タブで、[Only specific people or groups have merge access (特定のユーザーまたはグループのみがマージ アクセス権を持つ)] を選択します: 開発者

また、両方のブランチで履歴の削除/書き換えが全員に対して制限されていることもわかります。リポジトリを削除またはリポジトリ履歴を書き換えるには、ユーザーは書き込み権限または管理者権限が必要です。

ブランチ タイプ

ブランチ モデル を有効にしている場合、特定のタイプのすべてのブランチに対するアクセス権限を構成できます。これは、たとえば、すべてのリリース ブランチでマージ アクセスを制限したい場合などに便利です。

ブランチ パターン

タイプよりもさらに細かくする必要がある場合は、文字列のいずれかの端にワイルドカード文字 (*) を追加することで、特定のパターンのブランチ名 (PROJECT- など) に対する権限を設定することもできます。例:

PROJECT-*: "PROJECT-*" という名前のブランチと一致します (名前空間を含む)。したがって、制限は次のようなブランチに適用されます。

  • PROJECT-1234

  • PROJECT-new

  • PROJECT-1.1

ブランチ権限の重複

ブランチ権限が誤って重複する可能性があります。たとえば、ブランチ名 main に専用のブランチ権限を作成したが、ブランチ パターン * によって権限を作成した場合は、両権限 (main*) がメイン ブランチに適用されます。

次の表に、権限定義が重複した場合の結果の例を示します。

ワイルドカード (*) ブランチ パターン

特定の ("main") ブランチ名

両方の制限に含まれるブランチに適用される制限

ユーザーまたはグループ制限 (書き込みまたはマージ アクセス)

ユーザーまたはグループがリストされていない

Alana

Alana のみがアクセス権を保持

全員

Alana

Alana のみがアクセス権を保持

Alana

Harvey

Alana と Harvey の両方がアクセス権を保持

Alana

ユーザーまたはグループがない

Alana のみがアクセス権を保持

Alana

全員

Alana のみがアクセス権を保持

 

その他のヘルプ