このページでは、Secure Source Manager リポジトリのブランチ保護を構成する方法について説明します。
ブランチ保護を使用すると、リポジトリ管理者は、ブランチを変更できるユーザー、変更を承認またはレビューする必要があるユーザー、承認された変更をブランチにマージする前に満たす必要がある条件を制御するルールを設定できます。
ブランチ保護ルールの詳細については、ブランチ保護 の概要をご覧ください。
始める前に
必要なロール
Secure Source Manager リポジトリのブランチ保護ルールを構成するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
Secure Source Manager インスタンス アクセサー (
roles/securesourcemanager.instanceAccessor)が Secure Source Manager インスタンスにあります -
Secure Source Manager リポジトリに対する Secure Source Manager リポジトリ管理者 (
roles/securesourcemanager.repoAdmin) -
Secure Source Manager インスタンス内の任意のリポジトリの保護されたブランチで pull リクエストを承認するには:
-
インスタンスのプロジェクトに対する Secure Source Manager リポジトリ pull リクエスト承認者 (
roles/securesourcemanager.repoPullRequestApprover) Google Cloud -
インスタンスのプロジェクトに対する Secure Source Manager リポジトリ ライター (
roles/securesourcemanager.repoWriter) Google Cloud
-
インスタンスのプロジェクトに対する Secure Source Manager リポジトリ pull リクエスト承認者 (
-
単一のリポジトリの保護されたブランチで pull リクエストを承認するには:
-
Secure Source Manager リポジトリ pull リクエスト承認者 (
roles/securesourcemanager.repoPullRequestApprover)リポジトリに対する -
リポジトリに対する Secure Source Manager リポジトリ ライター (
roles/securesourcemanager.repoWriter)
-
Secure Source Manager リポジトリ pull リクエスト承認者 (
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
Secure Source Manager ロールの付与については、 IAM によるアクセス制御と ユーザーにインスタンスへのアクセス権を付与するをご覧ください。
ブランチ保護ルールを作成する
コンソール
新しいブランチ保護ルールを作成するには、次の操作を行います。
- Secure Source Manager ウェブ インターフェースで、ブランチ保護ルールで保護するリポジトリを選択します。
- リポジトリ ページで [設定] をクリックします。
- [ブランチルール] タブをクリックします。
- [ブランチルールを追加] をクリックします。
[ブランチルール ID] フィールドに、ブランチルールの名前を入力します。
ブランチルール ID に使用できる文字は、英小文字、数字、ハイフンに限られます。最初の文字は文字、最後の文字は文字または数字にする必要があります。ブランチルール ID の最大文字数は 63 文字です。
[ブランチフィルタ] フィールドに、ルールを適用するブランチの名前を入力します。ルールをすべてのブランチに適用する場合は、
.*と入力します。完全な正規表現の一致は対象外です。有効なブランチルール フィルタは、リポジトリに対して一意である必要があります。ユーザーは、無効なブランチルール フィルタを複数持つことができます。たとえば、単一のリポジトリにブランチフィルタ
mainを持つ有効なブランチルールを 2 つ設定することはできません。ブランチに複数のルールが適用される場合、ブランチフィルタとして特定のブランチ名を持つブランチルールがワイルドカード ルールをオーバーライドします。 たとえば、ブランチフィルタ
mainを持つブランチルールは、ブランチフィルタ.*を持つブランチルールをオーバーライドします。ルールは結合されません。[ブランチ保護ルールの詳細] セクションで、次のオプションからブランチルールの要件を指定します。
マージ前に pull リクエストを必須にする: 有効にすると、ブランチへの直接 commit がブロックされます。保護されたブランチにマージする前に、pull リクエストを開く必要があります。
必要なレビュー担当者の数: pull リクエストをマージするために承認が必要な レビュー担当者の数を指定します。
必要な承認者の数: pull リクエストをマージするために承認が必要な 承認者の数を指定します。
レビュー担当者と承認者は、特定の IAM ロールを持つユーザーです。レビュー担当者と承認者に必要なロールについては、 ブランチ保護の概要をご覧ください。
古いレビューと承認でマージをブロックする: 有効にすると、レビューまたは承認が付与された後に新しい commit が pull リクエストに push された場合、レビューまたは承認が削除されます。
マージ前に会話の解決を必須にする: 有効にすると、 マージする前にすべてのコード コメントとリクエストの変更レビューを解決する必要があります。
線形履歴を必須にする: 有効にすると、 非線形の Git 履歴を作成する pull リクエストをマージできません。
ステータス チェックを必須にする: 有効にすると、選択したビルド ステータス チェック が、pull リクエストをマージする前に成功する必要があります。ブランチ保護のステータス チェックとして選択するには、トリガー ファイルでトリガーを構成する必要があります。
ブランチルールを保存するには、[送信] をクリックします。
[ブランチルール] タブが表示され、新しいブランチルールが一覧表示されます。
Terraform
Terraform 構成を適用または削除する方法については、 基本的な Terraform コマンドをご覧ください。 詳細については、 Terraform プロバイダのリファレンス ドキュメントをご覧ください。
Terraform で新しいブランチ保護ルールを作成するには、google_secure_source_manager_branch_rule
リソースを使用します。
次の構成例では、main ブランチのブランチ保護ルールを作成します。
サンプルを使用する前に、次のように置き換えます。
- BRANCH_RULE_ID: ブランチ保護ルールの ID。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リポジトリのロケーション。
- REPOSITORY_ID: リポジトリの ID。
- BRANCH_NAME_PATTERN: ブランチ名または正規表現パターン(
mainなど)。
resource "google_secure_source_manager_branch_rule" "default" {
branch_rule_id = "BRANCH_RULE_ID"
project = "PROJECT_ID"
location = "LOCATION"
repository_id = "REPOSITORY_ID"
include_pattern = "BRANCH_NAME_PATTERN"
minimum_approvals_count = 2
minimum_reviews_count = 2
require_comments_resolved = true
require_linear_history = true
require_pull_request = true
disabled = false
allow_stale_reviews = false
}
ブランチ保護ルールを変更する
ブランチ保護ルールを変更するには、次の操作を行います。
- Secure Source Manager ウェブ インターフェースで、変更するブランチ保護ルールを含むリポジトリを選択します。
- リポジトリ ページで [設定] をクリックします。
- [ブランチルール] タブをクリックします。
- 変更するブランチルールの名前をクリックします。
- ブランチ保護ルールを編集します。
- [更新] をクリックします。
ブランチ保護ルールが更新されます。
ブランチ保護ルールを削除する
ブランチ保護ルールを削除するには、次の操作を行います。
- Secure Source Manager ウェブ インターフェースで、ブランチルールを削除するリポジトリを選択します。
- リポジトリ ページで [設定] をクリックします。
- [ブランチルール] タブをクリックします。
- 削除するルールの行で、[削除] アイコン
をクリックします。 - [ブランチルールを削除] 確認画面で [はい] をクリックします。
ブランチ保護ルールが削除されます。