カスタムリポジトリロールについて
リポジトリでのPull Requestの作成やOrganizationの支払い設定の変更など、GitHub Enterprise Serverでなんらかのアクションを行うためには、ユーザは関連するアカウントやリソースに対する十分なアクセス権を持っていなければなりません。 このアクセスは、権限によって制御されます。 権限は、特定のアクションを行える能力です。 たとえばIssueを削除する能力は権限です。 ロールは、個人やTeamに割り当てることができる権限のセットです。
Organization内では、ロールをOrganization、Team、リポジトリのレベルで割り当てることができます。 ロールの様々なレベルに関する詳しい情報については「Organizationのロール」を参照してください。
最大で3つのカスタムリポジトリロールを作成することによって、リポジトリレベルで付与する権限をもっと詳細に制御できます。 カスタムリポジトリロールは、選択したカスタム名を持つ設定可能な権限のセットです。 カスタムロールを作成すると、リポジトリへの管理アクセスを持つユーザはそのロールを個人やTeamに割り当てることができます。 詳しい情報については「Organizationのリポジトリへの個人のアクセスの管理」及び「OrganizationのリポジトリへのTeamのアクセスの管理」を参照してください。
継承されたロールについて
カスタムリポジトリロールを作成する際は、事前設定された選択肢のセットから継承されたロールを選択することから始めます。 継承されたロールは、カスタムロールに含まれる権限の初期セットを決定します。 そして、そのロールは付与する追加権限を選択することによって、さらにカスタマイズできます。 利用可能な権限の完全なリストについては「カスタムロールのための追加権限」を参照してください。
継承されたロールの選択肢については、リポジトリの様々な種類のコントリビューターに対して標準化されています。
継承されたロール | 設計対象 |
---|---|
Read | プロジェクトを見たり議論したりしたい非コードコントリビューター。 |
Triage | 書き込みアクセスなしに、積極的にIssueやPull Requestを管理する必要があるコントリビューター。 |
Write | アクティブにプロジェクトに対してプッシュを行うOrganizationのメンバーとコントリビューター。 |
Maintain | 機微あるいは破壊的なアクションを行うためアクセスなしにリポジトリを管理する必要があるプロジェクトマネージャー。 |
カスタムロールの例
以下は、設定できるカスタムリポジトリロールの例です。
カスタムリポジトリロール | 概要 | 継承されたロール | 追加の権限 |
---|---|---|---|
Security engineer | コードをコントリビュートし、セキュリティパイプラインをメンテナンスできる | Maintain | Code scanningの結果の削除 |
Contractor | webhookのインテグレーションを開発できる | Write | webhookの管理 |
Community manager | コードをコントリビュートすることなく、コミュニティのすべてのやりとりを扱える | Read | - Issueを重複としてマーク - GitHub Pageの設定を管理 - Wikiの設定を管理 - ソーシャルプレビューの設定 - リポジトリのメタデータを編集 - ディスカッションのトリアージ |
カスタムロールの追加権限
継承されたロールを選択した後、カスタムロールの追加権限を選択できます。
継承されたロールにまだ含まれていない場合にのみ、追加の権限を選択できます。 たとえば、継承されたロールがリポジトリへのWriteアクセスを提供しているなら、"Close a pull request"権限は継承されたロールに既に含まれています。
IssueとPull Request
- Assign or remove a user(ユーザをアサインあるいは外す): ユーザをIssueあるいはPull Requestにアサインするか、ユーザをIssueあるいはPull Requestから外す。
- Add or remove a label(ラベルの追加あるいは削除): ラベルをIssueあるいはPull Requestに追加するか、ラベルをIssueあるいはPull Requestから削除する。
Issue
- Close an issue(Issueのクローズ)
- Reopen a closed issue(クローズされたIssueの再オープン)
- Delete an issue(Issueの削除)
- Mark an issue as a duplicate(Issueを複製としてマーク)
プルリクエスト
- Close a pull request(Pull Requestをクローズ)
- Reopen a closed pull request(クローズされたPull Requestを再オープン)
- Request a pull request review(Pull Requestのレビューをリクエスト): ユーザあるいはTeamからのレビューをリクエスト。
リポジトリ
- Set milestones(マイルストーンの設定): IssueあるいはPull Requestにマイルストーンを追加。
- Manage wiki settings(Wiki設定の管理): リポジトリでWikiを有効化。
- Manage project settings(プロジェクト設定の管理): リポジトリでプロジェクトを有効化。
- Manage pull request merging settings(Pull Requestのマージ設定の管理): マージ、squash、リベースなど、リポジトリで許可されるマージコミットの種類を選択。
- Manage GitHub Pages settings(設定の管理): リポジトリでGitHub Pagesを有効化し、公開したいブランチを選択。 詳しい情報については「GitHub Pages サイトの公開元を設定する」を参照してください。
- Manage webhooks(webhookの管理): リポジトリにwebhookを追加。
- Manage deploy keys(デプロイキーを管理): リポジトリにデプロイキーを追加。
- Edit repository metadata(リポジトリのメタデータを編集): リポジトリの説明とともにリポジトリのトピックを更新。
- Set the social preview(ソーシャルプレビューの設定): リポジトリがリンクされたときにソーシャルメディア上に表示される識別画像をリポジトリに追加。 詳細は「リポジトリのソーシャルメディア向けプレビューをカスタマイズする」を参照してください。
- Push commits to protected branches(保護されたブランチにコミットをプッシュ): 保護されたブランチとしてマークされているブランチにプッシュ。
- Create protected tags(保護されたタグの作成): タグの保護ルールにマッチしたタグの作成。 詳しい情報については「タグ保護ルールの設定」を参照してください。
- Delete protected tags(タグ保護ルールの削除): タグ保護ルールにマッチしたタグの削除。 詳しい情報については「タグ保護ルールの設定」を参照してください。
セキュリティ
- View code scanning results(Code scanningの結果を表示): code scanningアラートを表示できる。
- Dismiss or reopen code scanning results(Code scanningの結果を却下もしくは再オープン): code scanningアラートを却下もしくは再オープンできる。
- Delete code scanning results(Code scanningの結果の削除): code scanningアラートを削除できる。
- View Dependabotアラート(Dependabotアラートの表示): Dependabotアラートを見ることができる。
- Dismiss or reopen Dependabotアラート(Dependabotアラートを却下もしくは再オープン): Dependabotアラートを却下もしくは再オープンできる。
- View secret scanning results(Secret scanningの結果の表示): secret scanningアラートを表示できる。
- Dismiss or reopen secret scanning results(Secret scanningの結果の却下もしくは再オープン): secret scanningアラートを却下もしくは再オープンできる。
様々なアクセスレベルの優先順位
TeamのメンバーシップやOrganizationの基本権限など、様々な方法を通じて様々なレベルのアクセスを与えられている場合、最上位のアクセスが他よりも優先されます。 たとえば、OrganizationのオーナーがOrganizationのメンバーに継承ロールの"Read"を使うカスタムロールを与え、そしてOrganizationのオーナーがOrganizationの基本権限を"Write"にした場合、このカスタムロールはカスタムロールに含まれている追加の権限とともに、書き込みアクセスを持つことになります。
If a person has been given conflicting access, you'll see a warning on the repository access page. The warning appears with " Mixed roles" next to the person with the conflicting access. To see the source of the conflicting access, hover over the warning icon or click Mixed roles.
競合するアクセスを解決するには、Organizationの基本アクセスあるいはTeamのアクセスを調整するか、カスタムロールを編集してください。 詳しい情報については、以下を参照してください。
リポジトリロールの作成
新しいリポジトリロールを作成するには、継承されたロールに権限を追加し、カスタムロールに名前を付けます
- In the top right corner of GitHub Enterprise Server, click your profile photo, then click Your profile.
- In the top right corner of GitHub Enterprise Server, click your profile photo, then click Your organizations.
- Organization 名の下で、クリックします
Settings.
- Under "Organizations", next to the name of your organization, click Settings.
- In the "Access" section of the sidebar, click Repository roles.
- Create a Role(ロールの作成)をクリックしてください。
- "Name(名前)"の下で、リポジトリロールの名前を入力してください。
- "Description(説明)"の下で、リポジトリロールの説明を入力してください。
- "Choose a role to inherit(継承するロールの選択)"の下で、継承したいロールを選択してください。
- "Add Permissions(権限の追加)"の下で、ドロップダウンメニューを使ってカスタムロールに含めたい権限を選択してください。
- Create role(ロールの作成)をクリックしてください。
リポジトリロールの編集
- In the top right corner of GitHub Enterprise Server, click your profile photo, then click Your profile.
- In the top right corner of GitHub Enterprise Server, click your profile photo, then click Your organizations.
- Organization 名の下で、クリックします
Settings.
- Under "Organizations", next to the name of your organization, click Settings.
- In the "Access" section of the sidebar, click Repository roles.
- 編集したいロールの右でをクリックし、続いてEdit(編集)をクリックしてください。
- 編集し、続いてUpdate role(ロールの更新)をクリックしてください。
リポジトリロールの削除
既存のリポジトリロールを削除すると、そのカスタムロールを持つ保留中の招待、Team、ユーザはすべてOrganizationの基本権限に割り当てなおされます。
- In the top right corner of GitHub Enterprise Server, click your profile photo, then click Your profile.
- In the top right corner of GitHub Enterprise Server, click your profile photo, then click Your organizations.
- Organization 名の下で、クリックします
Settings.
- Under "Organizations", next to the name of your organization, click Settings.
- In the "Access" section of the sidebar, click Repository roles.
- 削除したいロールの右でをクリックし、続いてDelete(削除)をクリックしてください。
- 削除したいロールに対する変更をレビューし、続いてDelete role(ロールの削除)をクリックしてください。