カスタムリポジトリロールについて
リポジトリでのPull Requestの作成やOrganizationの支払い設定の変更など、GitHub Enterprise Serverでなんらかのアクションを行うためには、ユーザは関連するアカウントやリソースに対する十分なアクセス権を持っていなければなりません。 このアクセスは、権限によって制御されます。 権限は、特定のアクションを行える能力です。 たとえばIssueを削除する能力は権限です。 ロールは、個人やTeamに割り当てることができる権限のセットです。
Organization内では、ロールをOrganization、Team、リポジトリのレベルで割り当てることができます。 さまざまなレベルのロールについて詳しくは、「Organizationのロール」をご覧ください。
リポジトリ レベルで付与したアクセス許可をさらに細かく制御するには、最大 5 つ のカスタム リポジトリ ロールを作成します。 カスタムリポジトリロールは、選択したカスタム名を持つ設定可能な権限のセットです。詳しくは、「Organizationのカスタムリポジトリロールの管理」をご覧ください。
カスタムロールを作成すると、リポジトリへの管理アクセスを持つユーザはそのロールを個人やTeamに割り当てることができます。 詳細については、「Organization のリポジトリへの個人のアクセスを管理する」および「Organization のリポジトリに対するチームのアクセスを管理する」を参照してください。
REST API を使って、カスタム リポジトリ ロールを作成して管理することもできます。 詳しくは、「カスタム リポジトリ ロールの REST API エンドポイント」を参照してください。
継承されたロールについて
カスタムリポジトリロールを作成する際は、事前設定された選択肢のセットから継承されたロールを選択することから始めます。 継承されたロールは、カスタムロールに含まれる権限の初期セットを決定します。 そして、そのロールは付与する追加権限を選択することによって、さらにカスタマイズできます。 使用可能なアクセス許可の完全なリストについては、「カスタム ロールの追加のアクセス許可」を参照してください。
継承されたロールの選択肢については、リポジトリの様々な種類のコントリビューターに対して標準化されています。
継承されたロール | 対象 |
---|---|
読み取り | プロジェクトの表示やディスカッションを行いたい、コードを書かないコントリビューターにお勧めします |
トリアージ | 書き込みアクセスなしで、積極的に Issue や Pull Request を管理する必要があるコントリビューター |
書き込み | 積極的にプロジェクトに対してプッシュを行う Organization のメンバーとコントリビューター。 |
管理 | 機密の、あるいは破壊的なアクションへのアクセスなしにリポジトリを管理する必要があるプロジェクトマネージャー |
カスタム ロールの例
以下は、設定できるカスタムリポジトリロールの例です。
カスタムリポジトリロール | まとめ | 継承されたロール | 追加の権限 |
---|---|---|---|
セキュリティ エンジニア | コードをコントリビュートし、セキュリティパイプラインをメンテナンスできる | 管理 | Code scanningの結果の削除 |
Contractor | webhookのインテグレーションを開発できる | 書き込み | webhookの管理 |
Community manager | コードをコントリビュートすることなく、コミュニティのすべてのやりとりを扱える | 読み取り | - issue を複製としてマークする - GitHub ページの設定を管理する - Wiki 設定を管理する - ソーシャル プレビューを設定する - リポジトリのメタデータを編集する - ディスカッションをトリアージする |
カスタムロールの追加権限
継承されたロールを選択した後、カスタムロールの追加権限を選択できます。
継承されたロールにまだ含まれていない場合にのみ、追加の権限を選択できます。 たとえば、継承されたロールでリポジトリへの書き込みアクセスが提供されている場合は、"pull request をクローズする" 権限は継承されたロールに既に含まれています。
Discussions
- Create a discussion category
- Edit a discussion category
- Delete a discussion category
- Mark or unmark discussion answers
- Hide or unhide discussion comments
- Convert issues to discussions
For more information, see "GitHub Discussions のドキュメント."
Issue and Pull Requests
- Assign or remove a user
- Add or remove a label
Issue
- Close an issue
- Reopen a closed issue
- Delete an issue
- Mark an issue as a duplicate
Pull Request
- Close a pull request
- Reopen a closed pull request
- Request a pull request review
Repository
- Set milestones
- Manage wiki settings
- Manage project settings
- Manage pull request merging settings
- Manage GitHub Pages settings (see "GitHub Pages サイトの公開元を設定する")
- Manage webhooks
- Manage deploy keys
- Edit repository metadata
- Set the social preview
- Push commits to protected branches
- Base role must be
write
- Branch protection rules will still apply
- Base role must be
- Create protected tags
- Delete protected tags
- Bypass branch protections
- Edit repository rules
Security
- View code scanning results
- Dismiss or reopen code scanning results
- Delete code scanning results
- View Dependabot alerts
- Dismiss or reopen Dependabot alerts
- View secret scanning results
- Dismiss or reopen secret scanning results
様々なアクセスレベルの優先順位
役割とアクセス許可は付加的なものです。 チームのメンバーシップや organization の基本アクセス許可など、さまざまな方法を通じてさまざまなレベルのアクセスがユーザーに付与されている場合、そのユーザーにはすべてのアクセス許可の合計が付与されます。 たとえば、organization の所有者が organization のメンバーに継承役割の "Read" を使うカスタム役割を付与し、そして organization の所有者が organization の基本アクセス許可を "Write" にした場合、このカスタム役割を持つメンバーはカスタム役割に含まれている追加のアクセス許可とともに、書き込みアクセス権限を持つことになります。
ユーザーに競合するアクセス権が付与されている場合は、リポジトリのアクセス ページに警告が表示されます。 警告は、競合するアクセス権を持つユーザーの横に [混合ロール] と共に表示されます。 競合するアクセス権のソースを表示するには、警告アイコンをポイントするか、 [混合ロール] をクリックします。
競合するアクセスを解決するには、Organizationの基本アクセスあるいはTeamのアクセスを調整するか、カスタムロールを編集してください。 詳細については、次を参照してください。