はじめに
ルールセットを作成して、ユーザーがリポジトリ内で選んだブランチとタグを操作する方法を制御できます。 ルールセットを作成するときに、特定のユーザーがルールセットの中のルールをバイパスすることを許可できます。 これは、特定のアクセス許可を持つユーザー、特定のチーム、または GitHub Apps です。 このルールセットについて詳しくは、「ルールセットについて」をご覧ください。
ルールセットを作成するには、次の手順を完了します。
分岐またはタグルールセットの作成
-
GitHub.com で、リポジトリのメイン ページへ移動します。
-
リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
左側のサイド バーの [コードと自動化] の下で、 [ルール] をクリックし、 [ルールセット] をクリックします。
-
ブランチを対象とするルールセット、またはタグを対象とするルールセットを作成できます。
-
ブランチを対象とするルールセットを作成するには、 [新しいブランチ ルールセット] をクリックします。
-
タグを対象とするルールセットを作成するには、[] を選び、 [新しいタグ ルールセット] をクリックします。
-
-
[全般] セクションで、ルールセットの名前を入力し、 [無効] を選択して、次の適用ステータスのいずれかをクリックします。
- アクティブ: ルールセットは作成時に適用されます。
- 無効: ルール セットは、 に適用されません。
ルールセットに対するバイパス アクセス許可の付与
特定のロール、チーム、またはアプリにルール セットのアクセス許可をバイパスさせることができます。 バイパス アクセスの対象となるのは次のとおりです。
- リポジトリ管理者または組織の所有者
- 保守ロール、書き込みロール、または書き込みロールに基づくカスタム リポジトリ ロール
- Teams
- GitHub Apps
-
ルールセットのバイパスのアクセス許可を付与するには、[バイパス リスト] セクションで [バイパスの追加] をクリックします。
-
表示される [バイパスの追加] モーダル ダイアログで、バイパスアクセス許可を付与するロール、チーム、またはアプリを検索し、[提案] セクションからロール、チーム、またはアプリを選択し、[選択項目の追加] をクリックします。
-
必要に応じて、リポジトリに直接プッシュすることを許可せずにアクターにバイパスを許可するには、[常時] を選択し、[pull request のみ] をクリックします。
選択したアクターは、リポジトリに変更を加えるために pull request を開く必要があり、これにより、変更を含む明確なデジタル 証跡が作成されます。 アクターは、ブランチ保護をバイパスし、その pull request をマージすることを選択できます。
ターゲットにするブランチまたはタグの選択
ブランチまたはタグをターゲットにするには、[ターゲット ブランチ] または [ターゲット タグ] セクションで、[ターゲットの追加] を選び、ブランチまたはタグを含めるまたは除外する方法を選びます。 fnmatch
構文を使って、パターンに基づいてブランチまたはタグを含めたり除外したりできます。 詳しくは、fnmatch
構文の使用に関するページを参照してください。
複数のターゲット条件を同じルールセットに追加できます。 たとえば、既定のブランチを含め、*feature*
のパターンに一致するブランチを含めてから、not-a-feature
のパターンに一致する特定のブランチを除外することができます。
ブランチまたはタグの保護の選択
[ブランチ保護] または [タグ保護] セクションで、ルールセットに含めるルールを選びます。 ルールを選ぶと、そのルールに追加設定を入力できる場合があります。 このルールについて詳しくは、「ルールセットで使用できるルール」をご覧ください。
注: [その他の設定] セクションで [マージ前に状態チェックを必須にする] をオンにする場合:
- 必須にする各状態チェックの名前を入力できます。 要件としての状態チェックの追加を完了するには、 をクリックする必要があります。
- [マージする前にブランチを最新にする必要がある] をオンにする場合は、保護を有効にするためのチェックを定義する必要があります。
ルールセットの作成を完了するには、[作成] をクリックします。 ルールセットの適用ステータスが "アクティブ" に設定されている場合、ルールセットはすぐに有効になります。
fnmatch
構文の使用
fnmatch
構文を使うと、ルールセットを作成するときに、ブランチとタグの名前をターゲットにするパターンを定義できます。
*
ワイルドカードを使って、任意の文字列に一致させることができます。 GitHub では File::FNM_PATHNAME
フラグを File.fnmatch
構文で使うため、*
のワイルドカードがディレクトリの区切り記号 (/
) と照合されません。 たとえば、qa/*
は、qa/
で始まり、1 つのスラッシュを含むすべてのブランチと照合されますが、qa/foo/bar
とは照合されません。 qa
の後には、qa/**/*
を使用して任意の数のスラッシュを含めることができます。これは、たとえば qa/foo/bar/foobar/hello-world
と一致します。 qa**/**/*
を使い qa
の文字列を拡張して、より包括的にすることもできます。
構文のオプションについて詳しくは、fnmatch のドキュメントを参照してください。
注: GitHub は fnmatch
構文で File::FNM_PATHNAME
はサポートされていますが、File::FNM_EXTGLOB
はサポートされていません。