メモ
現在、リポジトリ ポリシーは パブリック プレビュー 段階であり、変更される可能性があります。 Organization あたり合計で最大 75 個のポリシーとルールセットを、Enterprise あたり合計で最大 75 個のポリシーとルールセットを設定できます。
リポジトリのライフサイクルにおける主要なイベント (リポジトリを作成または削除できるユーザーなど) を管理するために、リポジトリ ポリシーを作成できます。 リポジトリ ポリシーは、影響を受けるユーザーと対象となるリポジトリを柔軟に制御できる制限のコレクションです。
リポジトリ ポリシーでは、以下を制限できます。
- 新しいリポジトリと可視性の変更に対して許可する可視性。
- リポジトリを作成できるユーザー。
- リポジトリを削除できるユーザー。
- リポジトリを organization の外部に委譲できるユーザー。
- ユーザーがリポジトリに名前を付ける方法。
Examples
リポジトリ ポリシーを使って、次のような操作を行うことができます。
- すべての新しいリポジトリが、
kebab-caseなどの特定の名前付け規則を使うようにする。 - Organization 管理者以外がリポジトリを削除できないようにする。
- Enterprise の "オープンソース" organization 内でのみパブリック リポジトリを作成できるようにする。
- メタデータが失われる可能性を避けるために、パブリック リポジトリがプライベート リポジトリに変更されないようにする。
Creating a repository policy
- GitHub の右上隅にあるプロフィール画像をクリックします。
- ご自分の環境に応じて、[Your enterprise] または [Your enterprises] をクリックし、表示するエンタープライズをクリックします。
- ページの上部にある [ Policies] をクリックします。
- Under "Policies", click Repository.
- Click New policy.
- Configure your new policy, then click Create. For help, consult the following subsections.
Policy name
Use something descriptive to communicate the purpose of the policy. Organization owners can view the policy, so good names help add clarity. For example: Prevent public repos on production.
Enforcement status
作成時にポリシーを適用したくない場合は、[Disabled] に設定します。 それ以外の場合は、[Active] に設定します。
Allow list
このポリシーの制限をバイパスできるロールを選びます。
Targets
Choose which organizations and repositories the policy applies to.
Target organizations
Select all organizations, choose a selection of existing organizations, or set a dynamic list by name. If you use Enterprise Managed Users, you can also choose to target all repositories owned by users in your enterprise.
If you set a dynamic list, you'll add one or more naming patterns using fnmatch syntax. For example, the string *open-source would match any organization with a name that ends with open-source. For syntax details, see リポジトリのルールセットの作成.
Target repositories
Choose which repositories (current or future) to target in the selected organizations. You can select all repositories or set a dynamic list by custom property.
Policies
含める制限を選びます。 ポリシーがアクティブな場合、制限は対象のすべてのリポジトリに適用されますが、許可リストに含まれるユーザーまたはチームは制限をバイパスできます。
[Restrict names] ポリシーを選んだ場合は、正規表現構文を使って、リポジトリ名が一致する必要がある、または一致してはならないパターンを設定する必要があります。 たとえば、kebab-case の名前付けを適用するパターンは ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$ のようになります。
- パターンは RE2 構文をサポートしています。 Google の構文ガイドを参照してください。
- 式を検証するには、[Test pattern] をクリックし、パターンとテスト値を入力します。
Delegating bypass of policies
メモ
リポジトリ ポリシーの委任されたバイパスは パブリック プレビュー 段階であり、変更される可能性があります。
リポジトリ ポリシーに対して委任されたバイパスを使うと、リポジトリの削除と可視性の変更について、リポジトリ ポリシーをバイパスできるユーザーを制御できます。
委任されたバイパスでは、リポジトリ管理者は要求を送信して、リポジトリの可視性の変更またはリポジトリの削除を行う必要があります。 要求は指定されたレビュー担当者グループに送信され、レビュー担当者はリポジトリ ポリシーをバイパスする要求を承認または拒否します。
リポジトリ ポリシーをバイパスする要求が承認されると、要求の変更はすぐに完了します。 要求が拒否された場合、要求された変更は行われませんが、再度要求できます。
委任されたバイパスを構成するには、Enterprise 所有者または organization 所有者が最初に "バイパス リスト" を作成します。 バイパス リストには、チームやリポジトリの管理者など、リポジトリ ポリシーをバイパスする要求を監視する特定のロールとチームが含まれます。 詳しくは、「ユーザーが Enterprise 内のリポジトリを使用する方法の管理」をご覧ください。
Next steps
Create rulesets to consistently govern important branches in your enterprise's repositories. See Protecting branches in your enterprise with rulesets.