Skip to main content

Organizationのカスタムリポジトリロールの管理

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

Who can use this feature

Organization owners can manage custom repository roles.

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

リポジトリでのPull Requestの作成やOrganizationの支払い設定の変更など、GitHub Enterprise Serverでなんらかのアクションを行うためには、ユーザは関連するアカウントやリソースに対する十分なアクセス権を持っていなければなりません。 このアクセスは、権限によって制御されます。 権限は、特定のアクションを行える能力です。 たとえばIssueを削除する能力は権限です。 ロールは、個人やTeamに割り当てることができる権限のセットです。

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

最大 3 つのカスタム リポジトリ ロールを作成することで、リポジトリ レベルで付与するアクセス許可をより細かく制御できます。 カスタムリポジトリロールは、選択したカスタム名を持つ設定可能な権限のセットです。 カスタムロールを作成すると、リポジトリへの管理アクセスを持つユーザはそのロールを個人やTeamに割り当てることができます。 詳細については、「組織のリポジトリに対する個人のアクセスを管理する」と「組織のリポジトリに対するチームのアクセスを管理する」を参照してください。

REST API を使って、組織で使用できるカスタム リポジトリ ロールを一覧表示することもできます。 詳細については、カスタム リポジトリ ロールの API を参照してください。

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

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

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

継承されたロール対象
読み取りプロジェクトを見たり議論したりしたい非コードコントリビューター。
トリアージ書き込みアクセスなしに、積極的にIssueやPull Requestを管理する必要があるコントリビューター。
書き込みアクティブにプロジェクトに対してプッシュを行うOrganizationのメンバーとコントリビューター。
管理機微あるいは破壊的なアクションを行うためアクセスなしにリポジトリを管理する必要があるプロジェクトマネージャー。

カスタム ロールの例

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

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

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

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

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

ディスカッション

IssueとPull Request

  • ユーザーを割り当てる、または削除する: ユーザーを issue または pull request に割り当てるか、ユーザーを issue または pull request から削除します。
  • ラベルを追加または削除する: ラベルを issue または pull request に追加するか、ラベルを issue または pull request から削除します。

問題

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

Pull Request

  • pull request をクローズする
  • クローズされた pull request を再オープンする
  • pull request のレビューを要求する: ユーザーまたは Team にレビューを要求します。

リポジトリ

  • マイルストーンを設定する: issue または pull request にマイルストーンを追加します。
  • Wiki 設定を管理する: リポジトリに対して Wiki を有効にします。
  • プロジェクト設定を管理する: リポジトリのプロジェクトを有効にします。
  • pull request のマージ設定を管理する: マージ、squash、リベースなど、リポジトリで許可されるマージ コミットの種類を選びます。
  • GitHub Pages 設定を管理する: リポジトリに対して GitHub Pages を有効にし、公開するブランチを選択します。 詳細については、「GitHub Pages サイトの公開元を設定する」を参照してください。
  • Webhook を管理する: リポジトリに Webhook を追加します。
  • デプロイ キーを管理する: リポジトリにデプロイ キーを追加します。
  • リポジトリのメタデータを編集する: リポジトリの説明およびポジトリのトピックを更新します。
  • ソーシャル プレビューを設定する: リポジトリがリンクされたときにソーシャル メディア プラットフォーム上に表示される識別画像をリポジトリに追加します。 詳細については、「リポジトリのソーシャル メディア プレビューのカスタマイズ」を参照してください。
  • 保護されたブランチにコミットをプッシュする: 保護されたブランチとしてマークされているブランチにプッシュします。 ブランチ保護ルールは引き続き適用され、プッシュが拒否される可能性があります。
  • 保護されたタグを作成する: タグ保護ルールに一致するタグを作成します。 詳細については、「タグ保護ルールの構成」を参照してください。
  • タグ保護ルールを削除する: タグ保護ルールに一致するタグを削除します。 詳しくは、「タグ保護ルールの構成」を参照してください。

セキュリティ

  • code scanning の結果を表示する: code scanning アラートを表示できます。
  • code scanning の結果を無視または再オープンする: code scanning アラートを無視または再オープンできます。
  • code scanning の結果を削除する: code scanning アラートを削除できます。
  • Dependabot alerts を表示する: Dependabot alerts を表示できます。
  • Dependabot alerts を無視または再オープンする: Dependabot alerts を無視または再オープンできます。
  • secret scanning の結果を表示する: secret scanning アラートを表示できます。
  • secret scanning の結果を無視または再オープンする: secret scanning アラートを無視または再オープンできます。

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

TeamのメンバーシップやOrganizationの基本権限など、様々な方法を通じて様々なレベルのアクセスを与えられている場合、最上位のアクセスが他よりも優先されます。 たとえば、OrganizationのオーナーがOrganizationのメンバーに継承ロールの"Read"を使うカスタムロールを与え、そしてOrganizationのオーナーがOrganizationの基本権限を"Write"にした場合、このカスタムロールはカスタムロールに含まれている追加の権限とともに、書き込みアクセスを持つことになります。

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

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

リポジトリロールの作成

新しいリポジトリロールを作成するには、継承されたロールに権限を追加し、カスタムロールに名前を付けます

  1. GitHub Enterprise Server の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。 プロファイル写真 1. GitHub Enterprise Server の右上隅にあるプロファイル写真をクリックし、 [自分の Organization] をクリックします。 プロファイル メニューの組織 1. Organization 名の下で、 [設定] をクリックします。 Organization の設定ボタン 1. [Organization] の下で、自分の Organization の名前の横にある [設定] をクリックします。 [設定] ボタンの横にある Organization のスクリーンショット 1. サイドバーの [アクセス] セクションで、 [ リポジトリ ロール] をクリックします。
  2. [ロールの作成] をクリックします。 [ロールの作成] ボタンのスクリーンショット
  3. "Name(名前)"の下で、リポジトリロールの名前を入力してください。 リポジトリ ロールの名前の入力フィールド
  4. "Description(説明)"の下で、リポジトリロールの説明を入力してください。 リポジトリ ロールの説明の入力フィールド
  5. "Choose a role to inherit(継承するロールの選択)"の下で、継承したいロールを選択してください。 リポジトリ ロールの基本ロール オプションの選択
  6. "Add Permissions(権限の追加)"の下で、ドロップダウンメニューを使ってカスタムロールに含めたい権限を選択してください。 リポジトリ ロールのドロップダウンからの権限レベルの選択
  7. [ロールの作成] をクリックします。 リポジトリ ロールの作成の確認

リポジトリロールの編集

  1. GitHub Enterprise Server の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。 プロファイル写真 1. GitHub Enterprise Server の右上隅にあるプロファイル写真をクリックし、 [自分の Organization] をクリックします。 プロファイル メニューの組織 1. Organization 名の下で、 [設定] をクリックします。 Organization の設定ボタン 1. [Organization] の下で、自分の Organization の名前の横にある [設定] をクリックします。 [設定] ボタンの横にある Organization のスクリーンショット 1. サイドバーの [アクセス] セクションで、 [ リポジトリ ロール] をクリックします。
  2. 編集するロールの右にある [] をクリックしてから [編集] をクリックします。 リポジトリ ロールのドロップダウン メニューの編集オプション
  3. 編集してから、 [ロールの更新] をクリックします。 フィールドを編集して、リポジトリ ロールを更新する

リポジトリロールの削除

既存のリポジトリロールを削除すると、そのカスタムロールを持つ保留中の招待、Team、ユーザはすべてOrganizationの基本権限に割り当てなおされます。

  1. GitHub Enterprise Server の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。 プロファイル写真 1. GitHub Enterprise Server の右上隅にあるプロファイル写真をクリックし、 [自分の Organization] をクリックします。 プロファイル メニューの組織 1. Organization 名の下で、 [設定] をクリックします。 Organization の設定ボタン 1. [Organization] の下で、自分の Organization の名前の横にある [設定] をクリックします。 [設定] ボタンの横にある Organization のスクリーンショット 1. サイドバーの [アクセス] セクションで、 [ リポジトリ ロール] をクリックします。
  2. 削除するロールの右にある [] をクリックしてから、 [削除] をクリックします。 リポジトリ ロールのドロップダウン メニューの編集オプション
  3. 削除するロールに対する変更をレビューしてから、 [ロールの削除] をクリックします。 リポジトリ ロールの削除を確認する