Skip to main content

リポジトリのルールセットの管理

リポジトリ内の既存のルールセットを編集、監視、削除して、ユーザーが特定のブランチやタグを操作する方法を変更できます。

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

リポジトリのルールセットは、そのリポジトリの読み取りアクセス権を持つすべてのユーザーが表示できます。 リポジトリの管理者アクセス権を持つユーザー、または "リポジトリ ルールの編集" アクセス許可を持つカスタム ロールは、リポジトリルールセットの分析情報を表示できます。 詳しくは、「カスタムリポジトリロールについて」をご覧ください。

ルールセットは、GitHub Free と GitHub Free の Organization のパブリック リポジトリ、GitHub Pro、GitHub Team、GitHub Enterprise Cloud のパブリックとプライベートのリポジトリで利用できます。 詳しくは、「GitHub のプラン」をご覧ください。

プッシュ ルールセットは、内部およびプライベート リポジトリ、プッシュ ルールセットが有効になっているリポジトリのフォーク、および企業内の組織の GitHub Enterprise Cloud プランで使用できます。

ルールセットを作成した後も、ルールセットに変更を加えることができます。 たとえば、ブランチまたはタグをより適切に保護するためのルールを追加したり、 をリポジトリの共同作成者エクスペリエンスへの影響をテストした後にルールセットを "評価" モードから "アクティブ" に切り替えたりできます。 の共同作成者エクスペリエンスに対する意図しない影響をトラブルシューティングするためにルールセットを一時的に無効にします。

REST および GraphQL API を使ってルールセットを管理できます。 詳細については、「ルールの REST API エンドポイント」および「ミューテーション」を参照してください。

ヒント: 組織の所有者である場合は、組織レベルでルールセットを作成できます。 これらのルールセットは、組織内の特定のリポジトリに、およびそれらのリポジトリ内の特定のブランチに適用できます。 詳しくは、「組織内のリポジトリのルールセットを作成する」を参照してください。

リポジトリのルールセットの表示

[Rulesets] ページでは、リポジトリへの読み取りアクセス権を持つすべてのユーザーが、特定のブランチ、タグ、またはプッシュ制限を対象とするアクティブなルールセットを表示できます。"評価" モードで実行されているルールセットも表示されますが、これは強制されません。

フォークされたリポジトリのプッシュ ルールセットの場合、[ルールセット] ページには、ルールが適用されているソース リポジトリによってルール セットが管理されていることが示されます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. 左側のファイル ツリー ビューで、 ブランチ ドロップダウン メニューを選択し、 [すべてのブランチを表示] をクリックします。 統合ファイル エディターの上部にあるブランチ ドロップダウン メニューも見つかります。

    リポジトリのファイル ツリー ビューのスクリーンショット。 ブランチ用のドロップダウン メニューが展開され、濃いオレンジの枠線で囲まれています。

  3. ブランチ名の左側にある をクリックします

  4. 必要に応じて、結果をフィルター処理するには、タブをクリックするか、[ブランチの検索] 検索バーを使用します。

  5. 表示するルールセットの名前をクリックします。

ルールセットの編集

注: ルールセットが組織レベルで作成されている場合、リポジトリの設定からルールセットを編集することはできません。 ルールセットを編集する権限を持っている場合は、組織の設定でそうすることができます。 詳しくは、「組織内のリポジトリのルールセットを管理する」を参照してください。

ルールセットを編集して、名前、バイパスのアクセス許可、ルールなど、ルールセットの一部を変更できます。 また、ルールセットを有効または一時的に無効にする場合など、ルールセットを編集してその状態を変更することもできます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイド バーの [コードと自動化] の下で、 [ルール] をクリックし、 [ルールセット] をクリックします。

    リポジトリの [設定] ページのサイド バーのスクリーンショット。 [ルール] サブメニューが展開され、[ルールセット] オプションの枠線がオレンジ色で表示されています。

  4. [ルールセット] ページで、編集するルールセットの名前をクリックします。

  5. 必要に応じてルールセットを変更します。 使用可能なルールについて詳しくは、「ルールセットで使用できるルール」を参照してください。

  6. ページの下部にある [変更の保存] をクリックします。

ルールセットの削除

ヒント: ルールセットを一時的に無効にしたいが、削除したくない場合は、ルールセットの状態を "無効" に設定できます。 詳しくは、「ルールセットの編集」をご覧ください。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイド バーの [コードと自動化] の下で、 [ルール] をクリックし、 [ルールセット] をクリックします。

    リポジトリの [設定] ページのサイド バーのスクリーンショット。 [ルール] サブメニューが展開され、[ルールセット] オプションの枠線がオレンジ色で表示されています。

  4. 削除するルールセットの名前をクリックします。

  5. ルールセットの名前の右側にある を選び、 [ルールセットの削除] をクリックします。

    ルールセットを編集するページのスクリーンショット。 3 つのドットのラベルが付いたボタンの下に、[ルールセットの削除] というラベルが付いたオプションがオレンジ色の枠線で囲まれています。

ルールセット履歴の使用

Note

  • ルールセット履歴は現在 パブリック プレビュー にあり、変更される可能性があります。
  • 2023 年 10 月 11 日の パブリック プレビュー のリリース後にルールセットに加えられた変更のみがルールセット履歴に含まれます。

ルールセットに対するすべての変更を表示し、特定のイテレーションに戻すことができます。 特定のイテレーションでのルールセットの構成を含む JSON ファイルをダウンロードすることもできます。 ルールセットのバイパス リストは、エクスポートされた JSON ファイルから除外されます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイド バーの [コードと自動化] の下で、 [ルール] をクリックし、 [ルールセット] をクリックします。

    リポジトリの [設定] ページのサイド バーのスクリーンショット。 [ルール] サブメニューが展開され、[ルールセット] オプションの枠線がオレンジ色で表示されています。

  4. ルールセットの変更履歴を表示するには、ルールセットの名前の右側にある を選択し、[ 履歴] をクリックします。

    リポジトリ ルールセットのページのスクリーンショット。 3 つのドットのラベルが付いたボタンの下に、[履歴] というラベルが付いたオプションがオレンジ色の枠線で囲まれています。

  5. 特定のイテレーションの右側にある を選択し、[変更の比較][復元]、または [ダウンロード] をクリックします。

    リポジトリ ルールセット履歴のページのスクリーンショット。 3 つのドットのラベルが付いたドロップダウン メニューが展開され、オレンジ色の枠線でハイライトされています。

ルールセットのインポート

JSON ファイルを使用して、別のリポジトリまたは組織からルールセットをインポートできます。 これは、複数のリポジトリまたは組織に同じルールセットを適用する場合に便利です。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイド バーの [コードと自動化] の下で、 [ルール] をクリックし、 [ルールセット] をクリックします。

    リポジトリの [設定] ページのサイド バーのスクリーンショット。 [ルール] サブメニューが展開され、[ルールセット] オプションの枠線がオレンジ色で表示されています。

  4. [新しいルールセット] ドロップダウンを選択し、[ルールセットのインポート] をクリックします。

    リポジトリ ルールセットのページのスクリーンショット。 [新しいルールセット] というラベルのドロップダウン メニューが展開され、"ルールセットのインポート" オプションがオレンジ色の枠線でハイライトされます。

  5. エクスポートされた JSON ファイルを開きます。

  6. インポートしたルールセットを確認し、[作成] をクリックします。

ルールセットの分析情報の表示

ルールセットの分析情報を表示して、ルールセットがリポジトリにどのように影響しているかを確認できます。 [ルールの分析情報] ページに、次のユーザー アクションのタイムラインが表示されます。 フィルターを使用し、探しているものを見つけることができます。

  • 1 つ以上のルールセットに対してチェックされ、成功したアクション。
  • 1 つ以上のルールセットに対してチェックされ、失敗したアクション。
  • 他のユーザーがバイパスした 1 つ以上のルールセットに対するアクション。

ルールセットが "評価" モードで実行されている場合、ルールセットがアクティブなときに成功または失敗するアクションを確認することができます。

[ルールの分析情報] ページのスクリーンショット。 1 つは "成功" とマークされ、1 つは "バイパス" とマークされ、1 つは "評価" ラベルで "失敗" とマークされた 3 つのアクションが一覧表示されています。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. 左側のサイド バーの [コードと自動化] で、 [ルール] をクリックし、 [分析情報] をクリックします。

    リポジトリの [設定] ページのサイド バーのスクリーンショット。 [ルール] サブメニューが展開され、[分析情報] オプションの枠線がオレンジ色で表示されています。

  4. [ルールの分析情報] ページで、ページ上部のドロップダウン メニューを使用して、ルールセット、ブランチ、アクター、期間でアクションをフィルター処理します。

  5. バイパスに失敗した、またはバイパスを必要とした特定のルールを確認するには、 をクリックして、ルールセットの名前を展開します。

    [ルールの分析情報] ページのスクリーンショット。 [octocat の作成は許可されません] というラベルが付いたイベントの右側にある 3 つの水平ドットのアイコンがオレンジ色の枠線で囲まれています。

  6. 必要に応じて、同じマージ グループ内の対応する pull request のマージ キューの詳細を確認します。

プッシュ ルールをバイパスする要求の管理

Note

プッシュ ルールの委任されたバイパスは現在 パブリック プレビュー 段階であり、変更される可能性があります。

バイパス権限のすべての要求は、リポジトリの [ルール設定] タブにある [バイパス要求] ページで表示および管理できます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. [バイパス要求] をクリックします。

承認者 (バイパス リストのメンバー)、要求者 (要求を作成する投稿者)、期間、および状態によって要求をフィルター処理できます。 要求には次の状態が割り当てられます。

状態説明
Cancelled要求は投稿者によって取り消されました。
Completed要求が承認され、コミットがリポジトリにプッシュされました。
Denied要求が審査され否認されました。
Expired要求の有効期限が切れました。 要求は 7 日間有効です。
Open要求はまだレビューされていないか、承認されていますが、コミットがリポジトリにプッシュされていません。

投稿者が制限された内容などコミットをプッシュするバイパス権限を要求すると、バイパス リストのメンバーはすべて、要求へのリンクを含む電子メールによる通知を受信します。 その後、バイパス リストのメンバーは、要求の有効期限が切れる前に、要求を確認して承認または拒否する 7 日間があります。

投稿者は電子メールで決定を通知され、必要なアクションを実行する必要があります。 要求が承認された場合、投稿者は制限された内容などコミットをリポジトリにプッシュできます。 要求が拒否された場合、投稿者はコミットから制限された内容を削除して、コミットをリポジトリに正常にプッシュする必要があります。