ブランチ保護をルールセットに変換する方法について
ルールセットを使用すると、リポジトリに対する保護の適用方法をより明確に把握し、制御できます。 ブランチ保護規則とは異なり、複数のルールセットを同じブランチに同時に適用でき、読み取りアクセス権を持つユーザーはアクティブなルールセットを表示できます。 これにより、開発者は自分たちに影響するルールを理解し、監査担当者は管理者アクセスなしでリポジトリの保護を確認できます。
対象となるブランチ保護規則は、リポジトリのルールセット設定からまとめてインポートすることも、1 つずつルールを変換することもできます。
GitHub は、ブランチ保護規則ごとに 1 つ以上のルールセットを提案します。 ルールセットを作成する前に、ルールセットの名前と動作の変更に関する警告を確認できます。 1 つのブランチ保護規則は、その保護を 1 つのルール セットで表すことができない場合に、複数のルールセットを生成できます。
ルールセットの一般情報については、「ルールセットについて」をご覧ください。
リポジトリのブランチ保護ルールを変換する
複数の適格なブランチ保護規則を変換できます。 ルールセットを作成する前に、インポートする保護と新しいルールセットの適用方法を確認して構成できます。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
左側のサイドバーの 「コード、計画、自動化」で、「 ルールセット」をクリックし、「 ルールセット」をクリックします。
-
[ルールセット] ページの上部にある [ ブランチ保護規則のインポート] をクリックします。
-
[インポートの確認] ダイアログで、提案されたルールセットを確認します:
- 保護に既に既存のルールセットでカバーされているというラベルが付いている場合、インポートによって別のルールセットは作成されません。
- 新しい動作に関する警告を確認します。 ブランチ保護規則では、複数の規則セットが提案される可能性があります。
-
[ 適用状況 ] ドロップダウンから、新しいルールセットに対する状況を選択します。
- アクティブ: ルールセットが作成されるとすぐに施行されます。
- 評価モード: ルールセットを適用せずにどのように動作するかを記録します。
- 無効: ルールセットを評価または適用せずに作成します。
-
作成する各提案済みルール セットのチェック ボックスをオンにします。
-
ルールセットの作成 をクリックします。
-
次の [ルールセットの作成] ダイアログで、元のブランチ保護ルールをどうするかを選択します。
- 元の保護設定を保持するには、[ルールを保持] をクリックします。 元のルールは、一致するブランチを引き続き保護します。 Active ルールセットは、それらと併せて適用されるため、変更は両方を満たす必要があります。
- 元の保護を削除するには、ブランチ保護ルールを削除 をクリックします。 新しいルールセットが アクティブ で、意図した分岐をカバーし、期待どおりに動作することを確認してからでないと、元のルールは削除しないでください。 評価中 ルールセットと 無効な ルールセットでは、アクティブな保護は提供されません。
単一のブランチ保護ルールをルール セットに変換する
一度に 1 つのブランチ保護規則の変換を確認して構成する場合は、単一ルール フローを使用します。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの 「コード、計画、自動化」 セクションで、「 ブランチ」をクリックします。
-
[ブランチ保護ルール] で、変換するルールを見つけて、[ルールセットに変換] をクリックします。
-
この変換で作成される各ルール セットのルール セット名を設定します。
-
1 つまたは複数のルールセットを作成するときに何が変わるかを理解するには、「新しい動作」セクションを確認してください。
-
「適用状況」で、新しいルールセットがどのように適用されるかを選択します。 詳細については、「適用状況の選択」を参照してください。
[アクティブ] を選択した場合は、必要に応じて、移行が完了したら [ブランチ保護規則を削除] を選択することで、変換の一環として元のブランチ保護規則を削除できます
- ルールセットの作成 をクリックします。 変換によって複数のルールセットが生成される場合、ボタンにはルールセット数が表示されます (たとえば、2 つのルールセットの作成)。
元のブランチ保護規則を保持すると、一致するブランチが引き続き保護されます。 アクティブなルールセットがそれと併せて適用されるため、変更は両方を満たす必要があります。 Evaluate ルール セットは、ルールを適用せずにどのように動作するかを記録します。
適用状態の選択
ブランチ保護規則を変換する場合は、新しいルールセットの適用状態を選択します。
- アクティブ: ルール セットは、作成されるとすぐに適用されます。
- 評価: ルール セットはルールを適用せずに実行されるため、ルールセットが有効になる前に動作を確認できます。
既定では アクティブ が選択されていますが、状況に合うステータスを検討してください。
- 以前に同様のルールを作成または移行し、結果に自信がある場合は、 Active を使用できます。
- これが最初の移行である場合は、 評価 モードで開始することを検討してください。 新しいルールセットが期待どおりに動作することを確認し、テストが完了したら元のブランチ保護規則を削除できます。
元のブランチ保護規則の削除
ルールを変換した後、Branches 設定ページに戻ります。 変換プロセス中にブランチ保護ルールを削除しないことを選択した場合、新しいルールセットでそれが完全にカバーされていると、一覧に表示されるルールには「このルールはルールセットで完全にカバーされており、安全に削除できます」というメッセージが表示され、ルールセットに変換ボタンの代わりに削除ボタンが表示されます。
元のルールを削除する前に、新しいルールセットが期待どおりに動作することを確認することをお勧めします特に Evaluate モードで作成した場合は。 準備ができたら、[ 削除 ] をクリックしてブランチ保護規則を削除します。