Skip to main content

ユーザーが organization 内のリポジトリを使用する方法の管理

リポジトリ ポリシーを作成して、リポジトリの作成や削除などを実行できるユーザーを制御します。

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

Organization owners

メモ

現在、リポジトリ ポリシーは パブリック プレビュー 段階であり、変更される可能性があります。 Organization あたり合計で最大 75 個のポリシーとルールセットを、Enterprise あたり合計で最大 75 個のポリシーとルールセットを設定できます。

リポジトリのライフサイクルにおける主要なイベント (リポジトリを作成または削除できるユーザーなど) を管理するために、リポジトリ ポリシーを作成できます。 リポジトリ ポリシーは、影響を受けるユーザーと対象となるリポジトリを柔軟に制御できる制限のコレクションです。

リポジトリ ポリシーでは、以下を制限できます。

  • 新しいリポジトリと可視性の変更に対して許可する可視性
  • リポジトリを作成できるユーザー。
  • リポジトリを削除できるユーザー。
  • リポジトリを organization の外部に委譲できるユーザー。
  • ユーザーがリポジトリに名前を付ける方法。

ヒント

Enterprise 所有者である場合は、複数の organization に適用するリポジトリ ポリシーを作成できます。 「ユーザーが Enterprise 内のリポジトリを使用する方法の管理」を参照してください。

リポジトリ ポリシーを使って、次のような操作を行うことができます。

  • すべての新しいリポジトリが、kebab-case などの特定の名前付け規則を使うようにする。
  • Organization 管理者以外がリポジトリを削除できないようにする。
  • Enterprise の "オープンソース" organization 内でのみパブリック リポジトリを作成できるようにする。
  • メタデータが失われる可能性を避けるために、パブリック リポジトリがプライベート リポジトリに変更されないようにする。

リポジトリをターゲットにするにはどうすればよいですか?

リポジトリ ポリシーはカスタム リポジトリ プロパティと併用することをお勧めします。 カスタム プロパティをリポジトリに追加すると、ポリシーでそれらのリポジトリを柔軟にターゲットにすることができます。

たとえば、運用データやその他の機密情報を含むリポジトリにマークするプロパティを追加し、誰もそれらのリポジトリを公開できないようにすることができます。

カスタム プロパティを作成および設定するには、「組織内リポジトリのカスタム プロパティの管理」を参照してください。

カスタム プロパティではなく、リポジトリの一覧から選ぶか、fnmatch 構文を使って特定の名前付けパターンを持つリポジトリをターゲットにすることができます。

他のポリシーとの相互作用

使用できる制限の一部は、organization または Enterprise の設定の [Member privileges] ページで設定されるポリシーと重複しています。

リポジトリ ポリシーを作成しても、既存の "メンバー特権" ポリシーはオーバーライドされません。 そうではなく、ポリシーは追加的なものであるため、最も制限が厳しいバージョンのポリシーが適用されます。 これは、メンバー特権ポリシーと、Enterprise または organization レベルで作成された他のリポジトリ ポリシーの両方に適用されます。

メンバー特権ポリシーと比較すると、リポジトリ ポリシーにはいくつかの利点があります。

  • Organization とリポジトリをより柔軟にターゲットにすることができます。
  • これにより、ポリシーをバイパスするオプションを特定のアクターに与えることができます。

リポジトリ ポリシーの作成

  1. GitHub の右上隅でプロフィール写真を選んでから、 [Your organizations] をクリックします。
  2. 組織の隣の [設定] をクリックします。
  3. ページの左側にあるサイドバーで、[ Policies] をクリックします。
  4. [Policies] で、[Repository] をクリックします。
  5. [新しいポリシー] をクリックします。
  6. 新しいポリシーを構成し、[Create] をクリックします。 ヘルプが必要な場合は、次のサブセクションを参照してください。

ポリシー名

ポリシーの目的を伝えるために、わかりやすいものを使ってください。 (例: Prevent public repos on production)。

適用状態

作成時にポリシーを適用したくない場合は、[Disabled] に設定します。 それ以外の場合は、[Active] に設定します。

許可リスト

このポリシーの制限をバイパスできるロールを選びます。

目標値

ポリシーを適用する organization 内のリポジトリを選びます。 すべてのリポジトリを選ぶ、既存のリポジトリを選ぶ、または現在と将来のリポジトリの名前またはカスタム プロパティを指定して動的規則を作成することができます。

名前を指定して動的リストを設定する場合は、fnmatch 構文を使って 1 つ以上の名前付けパターンを追加します。

  • たとえば、文字列 *open-source は、名前が open-source で終わるリポジトリと一致します。 構文の詳細については、「リポジトリのルールセットの作成」を参照してください。
  • 必要に応じて、許可リストに含まれない、ユーザーが選んだリポジトリの名前を変更できないようにすることができます。 また、[Policies] セクションで名前の形式を制御することもできます。

ポリシー

含める制限を選びます。 ポリシーがアクティブな場合、制限は対象のすべてのリポジトリに適用されますが、許可リストに含まれるユーザーまたはチームは制限をバイパスできます。

[Restrict names] ポリシーを選んだ場合は、正規表現構文を使って、リポジトリ名が一致する必要がある、または一致してはならないパターンを設定する必要があります。 たとえば、kebab-case の名前付けを適用するパターンは ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$ のようになります。

  • パターンは RE2 構文をサポートしています。 Google の構文ガイドを参照してください。
  • 式を検証するには、[Test pattern] をクリックし、パターンとテスト値を入力します。