ブランチルールを使用してブランチで許可されたアクションを管理する
ブランチを作成すると、そのロールのアクセス許可に基づいて、そのブランチに対して特定のアクションが許可されます。ブランチルールを設定することで、特定のブランチに許可されるアクションを変更できます。ブランチルールは、プロジェクトでユーザーに付与されているロールに基づいています。プロジェクト内の特定のロールを持つユーザーやブランチにコミットをプッシュするなど、いくつかの事前定義されたアクションを制限できます。これにより、特定のアクションを実行できるロールを制限することで、プロジェクト内の特定のブランチを保護できます。例えば、Project administrator ロールを持つユーザーのみがそのブランチにマージまたはプッシュできるようにブランチルールを設定すると、プロジェクト内の他のロールを持つユーザーはそのブランチのコードを変更できなくなります。
ブランチのルールを作成することで発生するすべての影響を考慮する必要があります。例えば、ブランチへのプッシュを Project administrator ロールを持つユーザーに制限すると、Contributor ロールを持つユーザーはそのブランチでワークフローを作成または編集できなくなります。これは、ワークフロー YAML がそのブランチに保存され、これらのユーザーは変更をコミットして、YAML にプッシュできないためです。ベストプラクティスとして、ブランチルールを作成した後にテストして、意図していない影響が発生していないかを確認します。ブランチルールをプルリクエストの承認ルールと組み合わせて使用することもできます。詳細については、「承認ルールを使用してプルリクエストをマージするための要件を管理する」を参照してください。
注記
CodeCatalyst プロジェクトでソースリポジトリのブランチルールを管理するには、Project administrator ロールが必要です。リンクされたリポジトリのブランチルールを作成することはできません。
ロールのデフォルトのアクセス許可よりも制限の厳しいブランチルールのみを作成できます。プロジェクトで許可されているユーザーロールのアクセス権よりも寛容なブランチルールは作成できません。例えば、レビュアーロールを持つユーザーがブランチにプッシュできるようにするブランチルールを作成することはできません。
ソースリポジトリのデフォルトブランチに適用されるブランチルールは、他のブランチに適用されるブランチルールとは少し動作が異なります。デフォルトブランチに適用されるルールは、デフォルトブランチとして指定したブランチに自動的に適用されます。以前にデフォルトブランチとして設定されていたブランチは、削除ができるようになる点を除いて、すでに適用されているルールを保持します。この削除の保護は、現在のデフォルトブランチにのみ適用されます。
ブランチルールには、[標準] と[カスタム] の 2 つの状態があります。[標準] は、ブランチで許可されているアクションが、CodeCatalyst のブランチアクションでユーザーに付与されているアクセス許可と一致することを示します。ロールとアクセス許可の関連性については、「ユーザーロールによってアクセス権を付与する」を参照してください。カスタムは、1 つ以上のブランチアクションに、プロジェクト内のユーザーロールによって付与されたデフォルトのアクセス許可とは異なるアクションを実行できる特定のロールのリストを持つアクションがあることを示します。
注記
ブランチの 1 つ以上のアクションを制限するブランチルールを作成する場合、[ブランチを削除] アクションは、Project administrator ロールを持つユーザーのみがそのブランチを削除できるように自動的に設定されます。
次の表に、ブランチでこれらのアクションを実行できるロールのアクションとデフォルト設定を示します。
ブランチアクション |
ブランチルールが適用されない場合にこのアクションを実行できるロール |
---|---|
ブランチへのマージ (ブランチへのプルリクエストのマージを含む) |
Project administrator、Contributor |
ブランチにプッシュする |
Project administrator、Contributor |
ブランチを削除する |
Project administrator、Contributor |
ブランチを削除する (デフォルトブランチ) |
許可されていません |
ブランチルールを削除することはできませんが、ブランチでこのアクションを実行することが許可されているすべてのロールからのアクションを許可するように更新することで、ルールを効果的に削除できます。
注記
CodeCatalyst プロジェクトでソースリポジトリのブランチルールを設定するには、Project administrator ロールが必要です。これは、リンクされたリポジトリには適用されません。リンクされたリポジトリは、CodeCatalyst のブランチルールをサポートしていません。
リポジトリのブランチルールを表示および編集する
-
リポジトリが存在するプロジェクトに移動します。
-
プロジェクトのソースリポジトリのリストからリポジトリ名を選択します。または、ナビゲーションペインで [コード] > [ソースリポジトリ] の順に選択します。
ブランチルールを表示するリポジトリを選択します。
-
リポジトリの [概要] ページで、[ブランチ] を選択します。
-
[ブランチルール] 列で、リポジトリの各ブランチのルールの状態を表示します。[標準] は、ブランチアクションのルールがソースリポジトリで作成されたブランチのデフォルトであり、プロジェクト内のそれらのロールに付与されたアクセス許可と一致することを示します。[カスタム] は、1 つ以上のブランチアクションに、そのブランチで許可される 1 つ以上のアクションを異なるロールセットに制限するルールがあることを示します。
ブランチのブランチルールの詳細を表示するには、確認するブランチの横にある [標準] または [カスタム] を選択します。
-
ブランチルールを作成または変更するには、[設定を管理] を選択します。ソースリポジトリの [設定] ページにある [ブランチルール] で [編集] を選択します。
-
[ブランチ] で、ドロップダウンリストのルールを構成するブランチ名を選択します。許可される各アクションタイプには、ドロップダウンリストでそのアクションの実行を許可するロールを選択して、[保存] を選択します。