Skip to main content

Enterprise Server 3.20 は、現在リリース候補として使用できます。

組織内のリポジトリのルールセットを作成する

組織内の複数のリポジトリを対象にしたルールセットを作成できます。

この機能を使用できるユーザーについて

Organization owners can create rulesets at the organization level.

はじめに

GitHub Team または GitHub Enterprise プランのお客様は、organization でルールセットを作成して、ユーザーが organization 内のリポジトリと対話する方法を制御できます。 どのユーザーが特定のブランチにコミットをプッシュできるか、コミットをどのようにフォーマットする必要があるか、どのユーザーがタグを削除または名前変更できるかといったことを制御できます。 また、ユーザーがリポジトリの名前を変更できないようにすることもできます。

また、プライベートまたは内部リポジトリ、およびリポジトリのフォーク ネットワーク全体へのプッシュをブロックするように、プッシュ ルールセットを作成することもできます。 プッシュ ルールセットを使用すると、ファイル拡張子、ファイル パスの長さ、ファイルとフォルダーのパス、およびファイル サイズに基づいてプッシュをブロックできます。

フォークは、アップストリーム リポジトリからブランチまたはタグのルールセットを継承しません。 ただし、組織が所有するフォークは、他のリポジトリと同様に、作成するルールセットの対象となります。

フォークは、ルート リポジトリからプッシュ ルールセットを_継承します_。 プッシュ ルールは、リポジトリのフォーク ネットワーク全体に適用され、リポジトリへのすべてのエントリ ポイントが確実に保護されます。 たとえば、プッシュルールセットが有効になっているリポジトリをフォークした場合、フォークされたリポジトリにも同じプッシュルールセットが適用されます。

フォークされたリポジトリの場合、プッシュ ルールのバイパス アクセス許可を持つユーザーは、ルート リポジトリのバイパス アクセス許可を持つユーザーだけです。

事前構築済みのルールセットのインポート

GitHub によって事前構築済みのルールセットの 1 つをインポートするには、「github/ruleset-recipes」を参照してください 。

JSON ファイルを使って既存のルールセットをインポートできます。 これは、複数のリポジトリまたは組織に同じルールセットを適用する場合に便利です。詳細については、「組織内のリポジトリのルールセットを管理する」を参照してください。

          `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 のドキュメントを参照してください。

コミット メタデータに正規表現を使用する

ブランチまたはタグをターゲットとするルールセットにメタデータ制限を追加するときは、正規表現構文を使って、コミット メッセージ、ブランチ名またはタグ名などの関連するメタデータが一致する必要がある、または一致してはならないパターンを定義できます。

既定では、メタデータの制限は正規表現パターンを受け入れません。 これを有効にするには、ルールセットのメタデータ制限を作成するときに、[特定の正規表現パターンに一致する必要がある] を選択します。

ルールセットでは、RE2 構文がサポートされています。 詳しくは、Google の構文ガイドに関するページをご覧ください。 式を検証するには、regex101.com の検証コントロールを使い、左側のサイドバーで "Golang" フレーバーを選択できます。

既定では、メタデータ制限の正規表現では、複数行のテキストは考慮されません。 たとえば、複数行のコミット メッセージがある場合、パターン ^ABC は、メッセージの最初の行が ABC で始まっていれば一致します。 複数行のメッセージと一致させるには、表現を (?m) で開始します。

?! で示される負の先読みアサーションはサポートされていません。 ただし、特定の文字列の後に別の特定の文字列が続いていないケースを検索する必要がある場合は、? で示される正の先読みアサーションを、"特定の正規表現パターンと一致してはならない" という要件と組み合わせて使用できます。

メモ

コントリビューターにコミットのサインオフを要求する場合、それが正規表現のパターンを妨げる可能性があります。 ユーザーがサインオフすると、GitHub によって Signed-off-by: #AUTHOR-NAME <#AUTHOR-EMAIL> のような文字列がコミット メッセージに追加されます。 詳しくは、「組織のコミット署名ポリシーの管理」をご覧ください。

便利な正規表現パターン

次の例では、コミット メタデータに役立つパターンを示します。 これらのパターンを使用するには、 [要件] を [特定の正規表現パターンに一致する必要がある] に設定します。

ブランチ名が Windows と互換性があることを確認する

次のパターンを使って、ブランチ名に数字、小文字、文字 -_ のみが含まれることを確認できます。 これにより、ブランチ名が、既定で大文字と小文字を区別するファイル システムを使用しないオペレーティング システムと互換性があることが確認されます。

Text
\A[0-9a-z-_]$

一致する: my-branch

一致しない: myBranch

タグ名でセマンティック バージョン管理が使用されていることを確認する

次のパターンを使って、タグ名がセマンティック バージョン管理に準拠していることを確認できます。 詳しくは、semver.org のドキュメントをご覧ください。

Text
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$

一致する: 1.2.310.20.301.1.2-prerelease+meta

一致しない: 1.21.2-SNAPSHOT

コミット メッセージの行の長さを制限する

Pro Git の書籍では、コミット メッセージの最初の行を約 50 文字に制限することが推奨されています。

次のパターンを使って、コミット メッセージの最初の行が 50 文字以下であることを確認できます。

Text
\A.{1,50}$
コミット メッセージが解決と issue 番号で始まっていることを確認する

次のパターンを使って、コミット メッセージに Resolves: または Fixes: という単語と、それに続く #1234 のような文字列が含まれていることを確認できます。

Text
^(Resolves|Fixes): \#[0-9]+$

一致する: Fixes: #1234

一致しない: Add conditional logic to foo.bar

従来のコミットを適用する

次のパターンを使って、コミット メッセージが従来のコミット仕様に準拠していることを確認できます。 詳しくは、conventionalcommits.org をご覧ください。

Text
^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(\([\w\-\.]+\))?(!)?: ([\w ])+([\s\S]*)

一致する: feat: allow provided config object to extend other configs

一致しない: Add conditional logic to foo.bar

ルールセット適用状況の利用

ルールセットの作成または編集中に、適用ステータスを使用してルールセットの適用方法を構成できます。

ルールセットには、次の適用ステータスのいずれかを選択できます。

  •      **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Active:** ルールセットは作成時に適用されます。
    
  •      **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-meter" aria-label="meter" role="img"><path d="M8 1.5a6.5 6.5 0 1 0 6.016 4.035.75.75 0 0 1 1.388-.57 8 8 0 1 1-4.37-4.37.75.75 0 1 1-.569 1.389A6.473 6.473 0 0 0 8 1.5Zm6.28.22a.75.75 0 0 1 0 1.06l-4.063 4.064a2.5 2.5 0 1 1-1.06-1.06L13.22 1.72a.75.75 0 0 1 1.06 0ZM7 8a1 1 0 1 0 2 0 1 1 0 0 0-2 0Z"></path></svg> Evaluate:** ルールセットは適用されませんが、[Rule Insights] ページでルールに違反するアクションと違反しないアクションを監視できます。
    
  •      **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-skip" aria-label="skip" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg> Disabled:** ルールセットは、適用または評価されません。
    

「評価」モードを使用することは、ルールセットを適用せずにテストするための優れたオプションです。 「ルールの分析情報」ページを使用して、そのコントリビューションがルールに違反したかどうかを確認できます。

分岐またはタグルールセットの作成

  1. GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。

  2. 組織の隣の [設定] をクリックします。

  3. 左側のサイドバーの [Code, planning, and automation] セクションで、[ Repository] をクリックし、[Rulesets] をクリックします。

    組織の設定ページのスクリーンショット。 サイド バーで、[ルールセット] というラベルの付いたリンクがオレンジ色の枠線で囲まれています。

  4. 新しいルールセット」をクリックします。

  5. ブランチを対象とするルールセットを作成するには、 [新しいブランチ ルールセット] をクリックします。 または、タグを対象とするルールセットを作成するには、[新しいタグ ルールセット] をクリックします。

  6. [ルールセット名] に、ルールセットの名前を入力します。

  7. 必要に応じて、既定の適用状態を変更するには、 [Disabled] をクリックして、新しい適用状態を選びます。

ブランチまたはタグのルールセットに対するバイパス アクセス許可の付与

ルールセットに対し、特定のロール、チーム、またはアプリのバイパス アクセス許可を付与でき、バイパス要求を承認する機能も付与できます。 バイパス アクセスの対象になるものを次に示します。

  • リポジトリ管理者、organization 所有者、Enterprise 所有者
  • 保守ロール、書き込みロール、または書き込みロールに基づくカスタム リポジトリ ロール
  • シークレット チームを除くチーム。 「AUTOTITLE」を参照してください。
  • キーを配置する
  • GitHub Apps
  • Dependabot。 Dependabot の詳細については、「Dependabot クイックスタート ガイド」を参照してください。
  1. ルールセットに対するバイパス アクセス許可を付与するには、[Bypass list] セクションの [Add bypass] をクリックします。

  2. 表示される [バイパスの追加] モーダル ダイアログで、バイパスアクセス許可を付与するロール、チーム、またはアプリを検索し、[提案] セクションからロール、チーム、またはアプリを選択し、[選択項目の追加] をクリックします。

  3. 必要に応じて、リポジトリに直接プッシュすることを許可せずにアクターにバイパスを許可するには、[常に許可] の右側にある をクリックし、次に [pull request のみ] をクリックします。

    選択したアクターは、リポジトリに変更を加えるために pull request を開いて、pull request と監査ログに変更の明確な証跡を作成する必要があります。 アクターは、ブランチの保護をバイパスして、その pull request をマージすることを選択できます。

組織内でターゲットにするリポジトリの選択

ルールセットを使うと、organization 内のすべてのリポジトリ、特定の名前付け規則と一致する organization 内のリポジトリ、カスタム プロパティを持つ organization 内のリポジトリ、または organization 内の手動で選んだリポジトリ一覧をターゲットすることを選択できます。

カスタム プロパティについて詳しくは、「Organization 内リポジトリのカスタム プロパティの管理」をご覧ください。

リポジトリが組織レベルで作成されたルールセットのターゲットになっている場合は、組織のオーナーのみがそのルールセットを編集できます。 ただし、リポジトリへの管理者アクセス権を持つユーザー、または "リポジトリ ルールの編集" アクセス許可を含むカスタム ロールを持つユーザーは、リポジトリ レベルで追加のルールセットを作成できます。 これらのルールセット内のルールは、組織レベルで定義されたルールと集約されます。 その結果、新しいルールセットを作成すると、ブランチまたはタグを対象とするルールは、より制限が厳しくなりますが、制限が緩くなることはありません。 ルールセットの作成について詳しくは、「ルールセットについて」をご覧ください。

プロパティに基づいて組織内のリポジトリをターゲットにする

カスタム プロパティに基づいて、組織内のリポジトリをターゲットにすることができます。 「Organization 内リポジトリのカスタム プロパティの管理」を参照してください。

  1. プロパティに基づいて organization 内のリポジトリの動的リストをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [Repositories matching a filter] を選びます。
  2. ターゲットを追加するには、フィルター セクションで、クエリを入力する (例: visibility:private props.team:infra -language:java) か、フィルターで選択します。
  3. 表示されるモーダル ダイアログで、ドロップダウン メニューからカスタムまたはシステム プロパティを選んで、各プロパティの値を選びます。
  4. [適用] をクリックします。

組織内のすべてのリポジトリをターゲットにする

Organization 内のすべてのリポジトリをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [All repositories] を選びます。

組織内のリポジトリを選択してターゲットにする

  1. Organization 内の手動で選んだリポジトリの静的なリストをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [Only selected repositories] を選びます。
  2. ターゲットとするリポジトリを選ぶには、[Targeting criteria] セクションで [ Select repositories] を選んでから、ターゲットとする各リポジトリの名前を検索します。 検索結果から各リポジトリを選びます。

組織内の名前付け規則によるリポジトリのターゲット設定

  1. 名前付け規則に基づいて organization 内のリポジトリの動的リストをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [Repositories matching a name] を選びます。

  2. ターゲット パターンの定義を開始するには、[Targeting criteria] セクションで [Add a target ] を選び、次に [Include by pattern] または [Exclude by pattern] をクリックします。

  3. 表示されるモーダル ダイアログで、fnmatch 構文を使ってリポジトリの名前付けパターンを入力し、 [包含パターンの追加] または [除外パターンの追加] をクリックします。 fnmatch の構文について詳しくは、「fnmatch 構文の使用」をご覧ください。

    メモ

    複数のターゲット条件を同じルールセットに追加できます。 たとえば、パターン *cat* に一致するリポジトリを含め、さらにパターン not-a-cat に一致するリポジトリを明示的に除外できます。

  4. 必要に応じて、ルールセットの構成ページで [ターゲット リポジトリの名前変更を禁止する] を選びます。

ターゲットにするブランチまたはタグの選択

ブランチまたはタグをターゲットにするには、[ターゲット ブランチ] または [ターゲット タグ] セクションで、[ターゲットの追加] を選び、ブランチまたはタグを含めるまたは除外する方法を選びます。 fnmatch 構文を使って、パターンに基づいてブランチまたはタグを含めたり除外したりできます。 詳細については、「fnmatch 構文の使用」を参照してください。

複数のターゲット条件を同じルールセットに追加できます。 たとえば、既定のブランチを含め、*feature* のパターンに一致するブランチを含めてから、not-a-feature のパターンに一致する特定のブランチを除外することができます。

ブランチまたはタグの保護の選択

[ブランチ保護] または [タグ保護] セクションで、ルールセットに含めるルールを選びます。 ルールを選ぶと、そのルールに追加設定を入力できる場合があります。 ルールの詳細については、「ルールセットで使用できるルール」を参照してください。

メモ

[Additional settings] セクションで [Require status checks before merging] をオンにする場合:

  • 必須にする各状態チェックの名前を入力できます。 要件としての状態チェックの追加を完了するには、 をクリックする必要があります。
  • [マージする前にブランチを最新にする必要がある] をオンにする場合は、保護を有効にするためのチェックを定義する必要があります。

メタデータの制限追加

メタデータの制限は、リポジトリでのコミット間の整合性の向上を目的とする必要があります。 pull request でのコード レビュー必須化などのセキュリティ対策を置き換えることを意図したものではありません。

メモ

ブランチをスカッシュ マージする場合、そのブランチに対するすべてのコミットがベース ブランチのメタデータ要件を満たす必要があります。

正規表現で行末アンカーを使用する場合は、単独で\n?$するのではなく、$を使用します。 省略可能な \n? は、Git プッシュ/CLI フローに存在する可能性がある末尾の改行と一致しますが、Web UI と API を介して作成されたコミットに対して引き続き動作します。

  1. コミット メタデータまたはブランチ名を制御するルールを追加するには、ルールセットを作成または編集するときに [Restrictions] セクションで、[Restrict commit metadata] または [Restrict branch names] をクリックします。

  2. 制限の設定を構成して、[追加] をクリックします。 同じルールセットに複数の制限を追加できます。

  3. 特定の正規表現パターンと一致させるには、[要件] ドロップダウンで [特定の正規表現パターンに一致する必要がある] を選択します。

    [一致するパターンで開始する必要がある] など、ほとんどの要件では、入力したパターンはリテラルに解釈され、ワイルドカードはサポートされません。 たとえば、* 文字が表すのは、リテラルな * 文字のみです。

    より複雑なパターンの場合は、[特定の正規表現パターンに一致する必要がある] または [特定の正規表現パターンに一致しない] を選び、正規表現構文を使って、一致するパターンを定義できます。 詳細については、GitHub Enterprise Cloud ドキュメントの「メタデータのコミットに正規表現を使う」を参照してください。

    リポジトリのルールセットを表示しているすべてのユーザーは、指定した説明を表示できます。

  4. 必要に応じて、メタデータ制限を含むルールセットを適用する前に、ルールセットに対して "評価" の適用状態を選択し、共同作成者に影響を与えることなくメタデータ制限の効果をテストします。 メタデータの制限の詳細については、「ルールセットで使用できるルール」を参照してください。

ブランチまたはタグのルールセットの最終化と次のステップ

ルールセットの作成を完了するには、[作成] をクリックします。 ルールセットの適用ステータスが "アクティブ" に設定されている場合、ルールセットはすぐに有効になります。

ルールセットの分析情報を表示して、ルールが共同作成者にどのように影響しているかを確認できます。 適用ステータスが "評価" に設定されている場合、ルール セットがアクティブであった場合に合格または失敗したアクションを確認できます。 ルールセットの分析情報の詳細については、「リポジトリのルールセットの管理」を参照してください。

プッシュルールセットの作成

メモ

このルールセットを使うと、リポジトリのフォーク ネットワーク全体にプッシュ制限を適用できます。

Organization 内のプライベート リポジトリまたは内部リポジトリのプッシュ ルールセットを作成できます。

  1. GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。

  2. 組織の隣の [設定] をクリックします。

  3. 左側のサイドバーの [Code, planning, and automation] セクションで、[ Repository] をクリックし、[Rulesets] をクリックします。

    組織の設定ページのスクリーンショット。 サイド バーで、[ルールセット] というラベルの付いたリンクがオレンジ色の枠線で囲まれています。

  4. 新しいルールセット」をクリックします。

  5. ブランチを対象とするルールセットを作成するには、 [新しいプッシュ ルールセット] をクリックします。

  6. [ルールセット名] に、ルールセットの名前を入力します。

  7. 必要に応じて、既定の適用状態を変更するには、 [Disabled] をクリックして、新しい適用状態を選びます。

プッシュ ルールセットに対するバイパス アクセス許可の付与

メモ

リポジトリをターゲットとするプッシュ ルールセットのアクセス許可は、このリポジトリのフォーク ネットワーク全体に継承されます。 つまり、このリポジトリのフォーク ネットワーク全体のリポジトリでこのルールセットをバイパスできる唯一のユーザーが、ルート リポジトリでこのルールセットをバイパスできるユーザーです。

ルールセットに対し、特定のロール、チーム、またはアプリのバイパス アクセス許可を付与でき、バイパス要求を承認する機能も付与できます。 バイパス アクセスの対象になるものを次に示します。

  • リポジトリ管理者、organization 所有者、Enterprise 所有者
  • 保守ロール、書き込みロール、または書き込みロールに基づくカスタム リポジトリ ロール
  • シークレット チームを除くチーム。 「AUTOTITLE」を参照してください。
  • キーを配置する
  • GitHub Apps
  • Dependabot。 Dependabot の詳細については、「Dependabot クイックスタート ガイド」を参照してください。
  1. ルールセットに対するバイパス アクセス許可を付与するには、[Bypass list] セクションの [Add bypass] をクリックします。
  2. 表示される [バイパスの追加] モーダル ダイアログで、バイパスアクセス許可を付与するロール、チーム、またはアプリを検索し、[提案] セクションからロール、チーム、またはアプリを選択し、[選択項目の追加] をクリックします。

組織内でターゲットにするリポジトリの選択

ルールセットを使うと、organization 内のすべてのリポジトリ、特定の名前付け規則と一致する organization 内のリポジトリ、カスタム プロパティを持つ organization 内のリポジトリ、または organization 内の手動で選んだリポジトリ一覧をターゲットすることを選択できます。

カスタム プロパティについて詳しくは、「Organization 内リポジトリのカスタム プロパティの管理」をご覧ください。

リポジトリが組織レベルで作成されたルールセットのターゲットになっている場合は、組織のオーナーのみがそのルールセットを編集できます。 ただし、リポジトリへの管理者アクセス権を持つユーザー、または "リポジトリ ルールの編集" アクセス許可を含むカスタム ロールを持つユーザーは、リポジトリ レベルで追加のルールセットを作成できます。 これらのルールセット内のルールは、組織レベルで定義されたルールと集約されます。 その結果、新しいルールセットを作成すると、ブランチまたはタグを対象とするルールは、より制限が厳しくなりますが、制限が緩くなることはありません。 ルールセットの作成について詳しくは、「ルールセットについて」をご覧ください。

プロパティに基づいて組織内のリポジトリをターゲットにする

カスタム プロパティに基づいて、組織内のリポジトリをターゲットにすることができます。 「Organization 内リポジトリのカスタム プロパティの管理」を参照してください。

  1. プロパティに基づいて organization 内のリポジトリの動的リストをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [Repositories matching a filter] を選びます。
  2. ターゲットを追加するには、フィルター セクションで、クエリを入力する (例: visibility:private props.team:infra -language:java) か、フィルターで選択します。
  3. 表示されるモーダル ダイアログで、ドロップダウン メニューからカスタムまたはシステム プロパティを選んで、各プロパティの値を選びます。
  4. [適用] をクリックします。

組織内のすべてのリポジトリをターゲットにする

Organization 内のすべてのリポジトリをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [All repositories] を選びます。

組織内のリポジトリを選択してターゲットにする

  1. Organization 内の手動で選んだリポジトリの静的なリストをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [Only selected repositories] を選びます。
  2. ターゲットとするリポジトリを選ぶには、[Targeting criteria] セクションで [ Select repositories] を選んでから、ターゲットとする各リポジトリの名前を検索します。 検索結果から各リポジトリを選びます。

組織内の名前付け規則によるリポジトリのターゲット設定

  1. 名前付け規則に基づいて organization 内のリポジトリの動的リストをターゲットにするには、[Target repositories] セクションで [Repository targeting criteria] の横にある [Repositories matching a name] を選びます。

  2. ターゲット パターンの定義を開始するには、[Targeting criteria] セクションで [Add a target ] を選び、次に [Include by pattern] または [Exclude by pattern] をクリックします。

  3. 表示されるモーダル ダイアログで、fnmatch 構文を使ってリポジトリの名前付けパターンを入力し、 [包含パターンの追加] または [除外パターンの追加] をクリックします。 fnmatch の構文について詳しくは、「fnmatch 構文の使用」をご覧ください。

    メモ

    複数のターゲット条件を同じルールセットに追加できます。 たとえば、パターン *cat* に一致するリポジトリを含め、さらにパターン not-a-cat に一致するリポジトリを明示的に除外できます。

  4. 必要に応じて、ルールセットの構成ページで [ターゲット リポジトリの名前変更を禁止する] を選びます。

プッシュ保護の選択

ファイル拡張子、ファイル パスの長さ、ファイルとフォルダーのパス、ファイル サイズに基づいて、このリポジトリとこのリポジトリのフォーク ネットワーク全体へのプッシュをブロックできます。

構成したプッシュ保護によって、このリポジトリ内およびこのリポジトリのフォーク ネットワーク全体のプッシュがブロックされます。

  1. [プッシュ保護] で、適用する制限をクリックします。 次に、選択した制限の詳細を入力します。

    ファイル パスの制限については、部分パスまたは完全パスを使用できます。 これには fnmatch の構文を使用できます。 たとえば、test/demo/**/* を対象とする制限により、test/demo/ ディレクトリ内のファイルまたはフォルダーへのプッシュが禁止されます。 test/docs/pushrules.md を対象とした制限により、test/docs/ ディレクトリ内の pushrules.md ファイルへのプッシュが禁止されます。 詳しくは、「リポジトリのルールセットの作成」をご覧ください。

プッシュルールセットの確定と次のプロセス

ルールセットの作成を完了するには、[作成] をクリックします。 ルールセットの適用ステータスが "アクティブ" に設定されている場合、ルールセットはすぐに有効になります。

ルールセットの分析情報を表示して、ルールが共同作成者にどのように影響しているかを確認できます。 適用ステータスが "評価" に設定されている場合、ルール セットがアクティブであった場合に合格または失敗したアクションを確認できます。 ルールセットの分析情報の詳細については、「リポジトリのルールセットの管理」を参照してください。