Skip to main content
Skip to content

カスタムリポジトリロールについて

カスタムのリポジトリロールを作成することで、Organization のリポジトリへのアクセスをよりきめ細かく制御できます。

メモ

カスタム リポジトリ ロールを作成できるのは、GitHub Enterprise Cloud を使用する organization のみです。GitHub Enterprise Cloud を無料で試す方法の詳細については、「GitHub Enterprise Cloud の試用版を設定する」を参照してください。

カスタムリポジトリロールについて

リポジトリでの pull request の作成や組織の課金設定の変更など、 GitHubに対してアクションを実行するには、ユーザーが関連するアカウントまたはリソースに十分なアクセス権を持っている必要があります。 このアクセスは、権限によって制御されます。 権限は、特定のアクションを行える能力です。 たとえばIssueを削除する能力は権限です。 ロールは、個人やTeamに割り当てることができる権限のセットです。

Organization内では、ロールをOrganization、Team、リポジトリのレベルで割り当てることができます。 さまざまなレベルのロールの詳細については、「組織の役割」を参照してください。

最大 20 個のカスタム リポジトリ ロールを作成して、リポジトリ レベルで付与するアクセス許可をより細かく制御できます。 3.19 より前の GitHub Enterprise Server では、最大 5 つのカスタム リポジトリ ロールを作成できます。 カスタムリポジトリロールは、選択したカスタム名を持つ設定可能な権限のセットです。 詳細については、 AUTOTITLE を参照してください。

カスタムロールを作成すると、リポジトリへの管理アクセスを持つユーザはそのロールを個人やTeamに割り当てることができます。 詳細については、「Organization のリポジトリへの個人のアクセスを管理する」および「Organization のリポジトリに対するチームのアクセスを管理する」を参照してください。

REST API を使って、カスタム リポジトリ ロールを作成して管理することもできます。 詳しくは、「カスタム リポジトリ ロールの REST API エンドポイント」をご覧ください。

カスタム リポジトリ ロールは、組織内の特定のリポジトリへのアクセスを管理します。 すべてのリポジトリへのアクセスを し、組織の管理設定へのアクセスを 制御するには、カスタム組織ロールを使用できます。 「カスタム組織ロールの権限」を参照してください。

カスタム組織役割は、organization 内の現在および将来のすべてのリポジトリにアクセス許可を付与するという点でリポジトリ役割とは異なります。 ただし、カスタム リポジトリ役割を使用すると、organization 内の特定のリポジトリにアクセス許可を付与できます。

継承されたロールについて

カスタムリポジトリロールを作成する際は、事前設定された選択肢のセットから継承されたロールを選択することから始めます。 継承されたロールは、カスタムロールに含まれる権限の初期セットを決定します。 そして、そのロールは付与する追加権限を選択することによって、さらにカスタマイズできます。 使用可能なアクセス許可の完全なリストについては、「カスタム ロールの追加のアクセス許可」を参照してください。

継承されたロールの選択肢については、リポジトリの様々な種類のコントリビューターに対して標準化されています。

継承されたロール向けに設計された
読み取りプロジェクトの表示やディスカッションを行いたい、コードを書かないコントリビューターにお勧めします
トリアージ書き込みアクセスなしで、積極的に Issue や Pull Request を管理する必要があるコントリビューター
書き込みプロジェクトに積極的に貢献する組織のメンバーや協力者。
管理機密の、あるいは破壊的なアクションへのアクセスなしにリポジトリを管理する必要があるプロジェクトマネージャー

カスタム ロールの例

以下は、設定できるカスタムリポジトリロールの例です。

カスタムリポジトリ役割まとめ継承されたロール追加の権限
セキュリティ エンジニアコードをコントリビュートし、セキュリティパイプラインをメンテナンスできる
管理コードスキャン結果を削除
契約者webhookのインテグレーションを開発できる
書き込みwebhookの管理
コミュニティ マネージャーコードをコントリビュートすることなく、コミュニティのすべてのやりとりを扱える
読み取り- issue を複製としてマークする
- GitHub ページの設定を管理する
- Wiki 設定を管理する
- ソーシャル プレビューを設定する
- リポジトリのメタデータを編集する
- ディスカッションの優先順位を決定する

カスタムロールの追加権限

継承されたロールを選択した後、カスタムロールの追加権限を選択できます。

継承されたロールにまだ含まれていない場合にのみ、追加の権限を選択できます。 たとえば、継承されたロールでリポジトリへの書き込みアクセスが提供されている場合は、"pull request をクローズする" 権限は継承されたロールに既に含まれています。

ディスカッション

  • ディスカッション カテゴリを作成する
  • ディスカッション カテゴリを編集する
  • ディスカッション カテゴリを削除する
  • ディスカッションの回答をマークまたはマーク解除する
  • ディスカッション コメントを非表示または非表示解除する
  • issue をディスカッションに変換する

詳しくは、「GitHub Discussions ドキュメント」をご覧ください。

イシューとプル要求

  • ユーザーの割り当てまたは削除
  • ラベルの追加または削除

問題

  • issue をクローズする
  • クローズされた issue を再オープンする
  • issue を削除する
  • issue を複製としてマークする

マージ キュー

  • ソロ マージを要求する
  • キューの先頭に移動する

詳しくは、「マージキューの管理」をご覧ください。

Pull request(プルリクエスト)

  • pull request をクローズする
  • クローズされた pull request を再オープンする
  • pull request レビューを要求する

リポジトリ

  • マイルストーンを設定する
  • wiki 設定を管理する
  • プロジェクト設定を管理する
  • pull request のマージ設定を管理する
  • GitHub Pages 設定を管理する (「GitHub Pages サイトの発行ソースの構成」を参照してください)
  • webhookの管理
  • デプロイキーの管理
  • リポジトリ メタデータの編集
  • 相互作用の制限を設定する
  • ソーシャル プレビューを設定する
  • 保護されたブランチへコミットをプッシュする
    • 基本ロールは write である必要があります
    • ブランチ保護ルールは引き続き適用されます
  • 保護されたタグを作成する
  • 保護されたタグを削除する
  • ブランチ保護をバイパスする
  • リポジトリ ルールを編集する

セキュリティ

  • code scanning アラートを確認する
  • code scanning アラートを閉じる、またはもう一度開く
  • code scanning のアラートを削除する
  • Dependabot alertsを表示する
  • Dependabot alertsを閉じる、またはもう一度開く
  • secret scanning アラートを表示する
  • secret scanning アラートを閉じる、もう一度開くまたは割り当てる

Actions

  • GitHub Actions の全般設定を管理する
  • ランナーを管理する
  • シークレットを管理する
  • 変数の管理
  • 環境を管理する (環境シークレットと変数を含む)

様々なアクセスレベルの優先順位

役割とアクセス許可は付加的なものです。 チームのメンバーシップや organization の基本アクセス許可など、さまざまな方法を通じてさまざまなレベルのアクセスがユーザーに付与されている場合、そのユーザーにはすべてのアクセス許可の合計が付与されます。 たとえば、organization の所有者が organization のメンバーに継承役割の "Read" を使うカスタム役割を付与し、そして organization の所有者が organization の基本アクセス許可を "Write" にした場合、このカスタム役割を持つメンバーはカスタム役割に含まれている追加のアクセス許可とともに、書き込みアクセス権限を持つことになります。

ユーザーに競合するアクセス権が付与されている場合は、リポジトリのアクセス ページに警告が表示されます。 競合するアクセス権を持つユーザーの横に、[ Mixed roles] という警告が表示されます。 競合するアクセス権のソースを表示するには、警告アイコンをポイントするか、 [混合ロール] をクリックします。

競合するアクセスを解決するには、Organizationの基本アクセスあるいはTeamのアクセスを調整するか、カスタムロールを編集してください。 詳細については、次を参照してください。