このトピックでは、コードリポジトリのブランチ設定について説明します。
背景情報
ブランチ設定は、次の 2 つの部分で構成されます。
デフォルトブランチ設定
デフォルトブランチは、クローン作成、ブランチ作成、マージリクエストの作成、およびコードの閲覧のベースとなるブランチです。また、誤った削除から保護することもできます。コードリポジトリの管理者は、チームの開発プラクティスに合わせてデフォルトブランチを変更できます。
保護ブランチ設定
保護ブランチは、削除と強制プッシュを制限します。コードリポジトリの管理者は、ルールを設定して重要なブランチを保護し、誤った削除や強制プッシュを防ぎ、主要なブランチのセキュリティとそのコミットのトレーサビリティを確保できます。
ブランチ設定へのアクセス
コードリポジトリの管理者として、ご利用のコードリポジトリに移動し、上部のメニューバーで をクリックします。

保護ブランチルールの作成
保護ブランチルールを作成するには、次の手順に従います。

ステップ 1:ブランチの選択
ブランチは、次の 2 つの方法のいずれかで指定できます。
方法 1:特定のブランチのフルネームを入力します。
方法 2:ワイルドカードパターンを使用します (
?と*のみがサポートされています)。パターンが複数のブランチに一致する場合、一致したすべてのブランチが表示されます。保護ブランチが複数のルールに一致する場合、どのルールが有効になりますか?
優先度:コードリポジトリ内のブランチが複数の保護ブランチルールに一致する場合、特定のブランチ名を対象とするルールが最も高い優先度を持ちます。ブランチが複数のワイルドカードルールに一致する場合、最初に作成されたルールが優先されます。
たとえば、
master-1、master-2、master-prod-1というブランチを持つコードリポジトリを考えます。保護ルールは、master-*、master-1、master-prod-*の順に作成されます。次の表は、ルールの適用方法を示しています。ブランチ名
一致するルール
有効なルール
master-1
master-*, master-1
master-1
master-2
master-*
master-*
master-prod-1
master-*, master-prod-*
master-*
ステップ 2:プッシュルールの設定
この保護ブランチに直接プッシュできるロールとメンバーを指定します。
許可されるロール:デフォルトでは、管理者と開発者のロールがプッシュを許可されています。ロールのプッシュをブロックするには、その選択を解除します。
Noneを選択した場合、誰もブランチにプッシュできません。許可されるメンバー:コードリポジトリから特定のメンバーにプッシュアクセス権を付与できます。選択されたメンバーは、コードリポジトリに対する書き込み権限を持っている必要があります。
ステップ 3:マージルールの設定
マージリクエストをマージできるロールとメンバーを指定します。
許可されるロール:デフォルトでは、管理者と開発者のロールがマージを許可されています。ロールのマージをブロックするには、その選択を解除します。
許可されるメンバー:コードリポジトリから特定のメンバーにマージ権限を付与できます。選択されたメンバーは、コードリポジトリに対する書き込み権限を持っている必要があります。
ロールと個々のメンバーの権限は組み合わされます。たとえば、管理者ロールのみにプッシュを許可し、かつ「ユーザー A」という名前の開発者にも特別に許可した場合、ユーザー A が管理者でなくても、管理者とユーザー A の両方が保護ブランチにプッシュできます。
ステップ 4:承認ルールの設定
手動承認ルールの設定

コードレビューには、次の条件を設定できます。
作成者による承認を許可:はい / いいえ。
マージする前に、すべてのコードレビューコメントを解決する必要があります。
2 つの承認モードが利用可能です。
一般モード:
必要な承認者の最小数:1。
承認を許可されるロール:管理者 + 開発者。
デフォルトのレビュアー:レビュアーが指定されていない場合、このセクションは非表示になります。最大 20 人のレビュアーを追加できます。
CodeOwner モード:
CodeOwner の詳細については、「CodeOwner の仕組み」をご参照ください。
自動チェックルールの設定
コードスキャン
コードスキャンタスクが有効になっていない限り、このチェックをマージリクエストのゲートとして使用することはできません。設定の詳細については、「コード検出サービスの使用」をご参照ください。

コードスキャンタスクを有効にすると、それをマージゲートとして設定できます。

パイプラインチェック
保護ブランチでは、Flow パイプラインと統合して、マージリクエストにマージゲートを追加できます。

コードリポジトリがパイプラインに関連付けられていない場合は、Alibaba Cloud DevOps Flow に移動してパイプラインを作成または関連付けます。詳細については、「Flow パイプラインの関連付け方法」をご参照ください。
重要各コードコミットでパイプラインチェックを自動的にトリガーするには、パイプライン作成時に [コードコミット] トリガーイベントを選択します。そうしないと、マージリクエストがパスするためにその結果が必要となるため、チェック結果を得るにはパイプラインを手動でトリガーする必要があります。

パイプラインを関連付けた後、ここでそれを選択してマージゲートとして使用できます。

選択されたパイプラインは、この保護ブランチをターゲットとするすべてのマージリクエストで必須のチェック項目になります。リクエストをマージする前に、パイプラインがパスする必要があります。
重要マージゲートとして指定されたパイプラインが、少なくとも 1 回は正常に実行されていることを確認してください。