このトピックでは、コードリポジトリのブランチ設定について説明します。
背景情報
ブランチ設定は 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 人のレビュー担当者を追加できます。
コードオーナーモード:
コードオーナーの詳細については、「コードオーナーメカニズム」をご参照ください。
自動ステータスチェックの設定
コードスキャン
コードスキャンタスクが有効になっていない限り、このチェックをマージゲートとして利用することはできません。設定の詳細については、「コード検出サービスの使用」をご参照ください。
コードスキャンタスクを有効にすると、それをマージゲートとして必須にすることができます。
パイプラインチェック
保護されたブランチでは、Alibaba Cloud DevOps Flow パイプラインと統合して、マージリクエストにマージゲートを追加できます。
コードリポジトリがパイプラインに関連付けられていない場合は、Alibaba Cloud DevOps Flow に移動してパイプラインを作成または関連付けます。「Flow パイプラインを関連付ける方法」をご参照ください。
重要各コードコミットでパイプラインチェックを自動的にトリガーするには、パイプラインの作成時に [code commit] トリガーイベントを選択します。それ以外の場合、マージリクエストを通過させるためにチェック結果が必要なため、パイプラインを手動でトリガーしてチェック結果を取得する必要があります。
[Edit Pipeline Source] パネルで、[Enable Code Source Trigger] トグルを有効にし、[Trigger Events] エリアで [Code commit] チェックボックスを選択します。
パイプラインを関連付けると、ここでそれを選択してマージゲートとして使用できます。
保護されたブランチの [Merge Rules] パネルで、[Require automated status checks before merging] トグルを有効にし、[Pipeline check] を選択して、ターゲットパイプライン (例: [Pipeline 2024-10-17]) を選択します。
選択したパイプラインは、この保護されたブランチを対象とするすべてのマージリクエストの必須チェックになります。リクエストをマージする前に、パイプラインが成功する必要があります。
重要マージゲートとして指定されたパイプラインは、少なくとも 1 回正常に実行されていることを確認してください。