組織のルールセットの管理について
組織レベルでルールセットを作成した後にルールセットを変更して、ユーザーがターゲット リポジトリと対話する方法を変更できます。 たとえば、これらのリポジトリのブランチまたはタグをより適切に保護するためのルールを追加したり、リポジトリの共同作成者エクスペリエンスへの影響をテストした後でルール セットを「評価」モードから「アクティブ」に切り替えたりすることができます。 リポジトリのブランチに適用される組織のルールセットでは、リポジトリ管理者がターゲット リポジトリのブランチの名前を変更したり、既定のブランチを別のブランチに変更したりすることができなくなります。 リポジトリ管理者は、適切なアクセス許可を持っている限り、ブランチを作成および削除できます。
Note
プッシュ ルールの委任されたバイパスは現在 パブリック プレビュー 段階であり、変更される可能性があります。
プッシュルールセットの委任されたバイパスを使用すると、プッシュ保護をバイパスできるユーザーと、ブロックされたプッシュを許可する必要があるユーザーを制御できます。
委任されたバイパスでは、リポジトリの投稿者は、制限された内容を含むコミットをプッシュする際に、「バイパス権限」を要求する必要があります。 要求は、指定されたレビュー担当者グループに送信されます。レビュー担当者は、プッシュ ルールをバイパスする要求を承認または拒否します。
プッシュ ルールをバイパスする要求が承認された場合、投稿者は制限された内容などコミットをプッシュできます。 要求が拒否された場合、投稿者は、再度プッシュする前に、制限された内容などのコミット (複数可) から内容を削除する必要があります。
委任されたバイパスを構成するには、組織の所有者またはリポジトリ管理者が最初に 「バイパス リスト」 を作成します。 バイパス リストには、チームやリポジトリ管理者など、プッシュ保護をバイパスする要求を監督する特定のロールとチームが含まれます。 詳細については、「組織内のリポジトリのルールセットを管理する」および「ルールセットについて」を参照してください。
REST および GraphQL API を使ってルールセットを管理できます。 詳細については、「ルールの REST API エンドポイント」および「ミューテーション」を参照してください。
Note
リポジトリの読み取りアクセス権を持つすべてのユーザーは、そのリポジトリで動作しているアクティブなルールセットを見ることができます。
ルールセットの編集
ルールセットを編集して、名前、バイパスのアクセス許可、ルールなど、ルールセットの一部を変更できます。 また、ルールセットを有効または一時的に無効にする場合など、ルールセットを編集してその状態を変更することもできます。
-
GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
-
組織の隣の [設定] をクリックします。
-
左のサイド バーの [コード、計画、自動化] セクションで、[ リポジトリ] をクリックし、[ルールセット] をクリックします。
-
[ルールセット] ページで、編集するルールセットの名前をクリックします。
-
必要に応じてルールセットを変更します。 使用可能なルールについて詳しくは、「ルールセットで使用できるルール」を参照してください。
-
ページの下部にある [変更の保存] をクリックします。
ルールセットの削除
Tip
ルールセットを一時的に無効にしたいが、削除したくない場合は、ルールセットの状態を "無効" に設定できます。 詳しくは、「ルールセットの編集」をご覧ください。
-
GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
-
組織の隣の [設定] をクリックします。
-
左のサイド バーの [コード、計画、自動化] セクションで、[ リポジトリ] をクリックし、[ルールセット] をクリックします。
-
削除するルールセットの名前をクリックします。
-
ルールセットの名前の右側にある を選び、 [ルールセットの削除] をクリックします。
ルールセット履歴の使用
Note
- ルールセット履歴は現在 パブリック プレビュー にあり、変更される可能性があります。
- 2023 年 10 月 11 日の パブリック プレビュー のリリース後にルールセットに加えられた変更のみがルールセット履歴に含まれます。
ルールセットに対するすべての変更を表示し、特定のイテレーションに戻すことができます。 特定のイテレーションでのルールセットの構成を含む JSON ファイルをダウンロードすることもできます。 ルールセットのバイパス リストは、エクスポートされた JSON ファイルから除外されます。
-
GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
-
組織の隣の [設定] をクリックします。
-
左のサイド バーの [コード、計画、自動化] セクションで、[ リポジトリ] をクリックし、[ルールセット] をクリックします。
-
ルールセットの変更履歴を表示するには、ルールセットの名前の右側にある を選択し、[ 履歴] をクリックします。
-
特定のイテレーションの右側にある を選択し、[変更の比較]、[復元]、または [ダウンロード] をクリックします。
ルールセットのインポート
前のセクションからエクスポートした JSON ファイルを使用して、別のリポジトリまたは組織からルールセットをインポートできます。 これは、複数のリポジトリまたは組織に同じルールセットを適用する場合に便利です。
-
GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
-
組織の隣の [設定] をクリックします。
-
左のサイド バーの [コード、計画、自動化] セクションで、[ リポジトリ] をクリックし、[ルールセット] をクリックします。
-
[新しいルールセット] ドロップダウンを選択し、[ルールセットのインポート] をクリックします。
-
エクスポートされた JSON ファイルを開きます。
-
インポートしたルールセットを確認し、[作成] をクリックします。
ルールセットの分析情報の表示
ルールセットの分析情報を表示して、ルールセットが組織内のリポジトリにどのように影響しているかを確認できます。 [ルールの分析情報] ページに、次のユーザー アクションのタイムラインが表示されます。 フィルターを使用し、探しているものを見つけることができます。
- 1 つ以上のルールセットに対してチェックされ、成功したアクション。
- 1 つ以上のルールセットに対してチェックされ、失敗したアクション。
- 他のユーザーがバイパスした 1 つ以上のルールセットに対するアクション。
ルールセットが "評価" モードで実行されている場合、ルールセットがアクティブなときに成功または失敗するアクションを確認することができます。
-
GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
-
組織の隣の [設定] をクリックします。
-
左のサイド バーの [コード、計画、自動化] セクションで、 [ リポジトリ] をクリックし、[ルール分析情報] をクリックします。
-
[ルール分析情報] ページで、ページ上部のドロップダウン メニューを使用して、ルールセット、リポジトリ、アクター、期間でアクションをフィルター処理します。
-
バイパスに失敗した、またはバイパスを必要とした特定のルールを確認するには、 をクリックして、ルールセットの名前を展開します。
プッシュ ルールをバイパスする要求の管理
Note
プッシュ ルールの委任されたバイパスは現在 パブリック プレビュー 段階であり、変更される可能性があります。
バイパス権限のすべての要求は、リポジトリの [ルール設定] タブにある [バイパス要求] ページで表示および管理できます。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
[バイパス要求] をクリックします。
承認者 (バイパス リストのメンバー)、要求者 (要求を作成する投稿者)、期間、および状態によって要求をフィルター処理できます。 要求には次の状態が割り当てられます。
状態 | 説明 |
---|---|
Cancelled | 要求は投稿者によって取り消されました。 |
Completed | 要求が承認され、コミットがリポジトリにプッシュされました。 |
Denied | 要求が審査され否認されました。 |
Expired | 要求の有効期限が切れました。 要求は 7 日間有効です。 |
Open | 要求はまだレビューされていないか、承認されていますが、コミットがリポジトリにプッシュされていません。 |
投稿者が制限された内容などコミットをプッシュするバイパス権限を要求すると、バイパス リストのメンバーはすべて、要求へのリンクを含む電子メールによる通知を受信します。 その後、バイパス リストのメンバーは、要求の有効期限が切れる前に、要求を確認して承認または拒否する 7 日間があります。
投稿者は電子メールで決定を通知され、必要なアクションを実行する必要があります。 要求が承認された場合、投稿者は制限された内容などコミットをリポジトリにプッシュできます。 要求が拒否された場合、投稿者はコミットから制限された内容を削除して、コミットをリポジトリに正常にプッシュする必要があります。