カスタムリポジトリロールについて
リポジトリでの pull request の作成や organization の請求設定の変更など、GitHub 上で何らかのアクションを実行するには、関連するアカウントまたはリソースに対して十分なアクセス権を持っている必要があります。 このアクセスは、権限によって制御されます。 権限は、特定のアクションを行える能力です。 たとえばIssueを削除する能力は権限です。 ロールは、個人やTeamに割り当てることができる権限のセットです。
Organization内では、ロールをOrganization、Team、リポジトリのレベルで割り当てることができます。 さまざまなレベルのロールの詳細については、「Organizationのロール」を参照してください。
最大 20 個のカスタム リポジトリ ロールを作成して、リポジトリ レベルで付与するアクセス許可をより細かく制御できます。 3.19 より前のバージョンの GitHub Enterprise Server では、最大 5 個のカスタム リポジトリ ロールを作成できます。 カスタムリポジトリロールは、選択したカスタム名を持つ設定可能な権限のセットです。詳細については、「Organizationのカスタムリポジトリロールの管理」を参照してください。
カスタムロールを作成すると、リポジトリへの管理アクセスを持つユーザはそのロールを個人やTeamに割り当てることができます。 詳細については、「Organization のリポジトリへの個人のアクセスを管理する」および「Organization のリポジトリに対するチームのアクセスを管理する」を参照してください。
REST API を使って、カスタム リポジトリ ロールを作成して管理することもできます。 詳しくは、「カスタム リポジトリ ロールの REST API エンドポイント」をご覧ください。
カスタム リポジトリ役割は、organization 内の特定のリポジトリへのアクセスを管理します。 すべてのリポジトリへのアクセスを許可し、organization の管理設定へのアクセスを制御するには、カスタム組織役割を使用できます。 「カスタム組織の役割の情報」を参照してください。
カスタム組織役割は、organization 内の現在および将来のすべてのリポジトリにアクセス許可を付与するという点でリポジトリ役割とは異なります。 ただし、カスタム リポジトリ役割を使用すると、organization 内の特定のリポジトリにアクセス許可を付与できます。
継承されたロールについて
カスタムリポジトリロールを作成する際は、事前設定された選択肢のセットから継承されたロールを選択することから始めます。 継承されたロールは、カスタムロールに含まれる権限の初期セットを決定します。 そして、そのロールは付与する追加権限を選択することによって、さらにカスタマイズできます。 使用可能なアクセス許可の完全なリストについては、「カスタム ロールの追加のアクセス許可」を参照してください。
継承されたロールの選択肢については、リポジトリの様々な種類のコントリビューターに対して標準化されています。
| 継承されたロール | 対象 | 
|---|---|
| 読み取り | プロジェクトの表示やディスカッションを行いたい、コードを書かないコントリビューターにお勧めします | 
| トリアージ | 書き込みアクセスなしで、積極的に Issue や Pull Request を管理する必要があるコントリビューター | 
| 書き込み | 積極的にプロジェクトに対してプッシュを行う Organization のメンバーとコントリビューター。 | 
| 管理 | 機密の、あるいは破壊的なアクションへのアクセスなしにリポジトリを管理する必要があるプロジェクトマネージャー | 
カスタム ロールの例
以下は、設定できるカスタムリポジトリロールの例です。
| カスタムリポジトリロール | まとめ | 継承されたロール | 追加の権限 | 
|---|---|---|---|
| セキュリティ エンジニア | コードをコントリビュートし、セキュリティパイプラインをメンテナンスできる | 管理 | Code scanningの結果の削除 | 
| Contractor | webhookのインテグレーションを開発できる | 書き込み | webhookの管理 | 
| Community manager | コードをコントリビュートすることなく、コミュニティのすべてのやりとりを扱える | 読み取り | - issue を複製としてマークする  - GitHub ページの設定を管理する - Wiki 設定を管理する - ソーシャル プレビューを設定する - リポジトリのメタデータを編集する - ディスカッションをトリアージする  | 
カスタムロールの追加権限
継承されたロールを選択した後、カスタムロールの追加権限を選択できます。
継承されたロールにまだ含まれていない場合にのみ、追加の権限を選択できます。 たとえば、継承されたロールでリポジトリへの書き込みアクセスが提供されている場合は、"pull request をクローズする" 権限は継承されたロールに既に含まれています。
ディスカッション
- ディスカッション カテゴリを作成する
 - ディスカッション カテゴリを編集する
 - ディスカッション カテゴリを削除する
 - ディスカッションの回答をマークまたはマーク解除する
 - ディスカッション コメントを非表示または非表示解除する
 - issue をディスカッションに変換する
 
詳しくは、「GitHub Discussions のドキュメント」をご覧ください。
IssueとPull Request
- ユーザーの割り当てまたは削除
 - ラベルの追加または削除
 
問題
- 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 を閉じる、またはもう一度開く
 
様々なアクセスレベルの優先順位
役割とアクセス許可は付加的なものです。 チームのメンバーシップや organization の基本アクセス許可など、さまざまな方法を通じてさまざまなレベルのアクセスがユーザーに付与されている場合、そのユーザーにはすべてのアクセス許可の合計が付与されます。 たとえば、organization の所有者が organization のメンバーに継承役割の "Read" を使うカスタム役割を付与し、そして organization の所有者が organization の基本アクセス許可を "Write" にした場合、このカスタム役割を持つメンバーはカスタム役割に含まれている追加のアクセス許可とともに、書き込みアクセス権限を持つことになります。
ユーザーに競合するアクセス権が付与されている場合は、リポジトリのアクセス ページに警告が表示されます。 競合するアクセス権を持つユーザーの横に、[ Mixed roles] という警告が表示されます。 競合するアクセス権のソースを表示するには、警告アイコンをポイントするか、 [混合ロール] をクリックします。
競合するアクセスを解決するには、Organizationの基本アクセスあるいはTeamのアクセスを調整するか、カスタムロールを編集してください。 詳細については、次を参照してください。