Skip to main content

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

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

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

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

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

リポジトリ レベルで付与したアクセス許可をさらに細かく制御するには、最大 5 つ のカスタム リポジトリ ロールを作成します。 カスタムリポジトリロールは、選択したカスタム名を持つ設定可能な権限のセットです。詳しくは、「Organizationのカスタムリポジトリロールの管理」をご覧ください。

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

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

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

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

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

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

カスタム ロールの例

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

カスタムリポジトリロールまとめ継承されたロール追加の権限
セキュリティ エンジニアコードをコントリビュートし、セキュリティパイプラインをメンテナンスできる管理Code scanningの結果の削除
Contractorwebhookのインテグレーションを開発できる書き込み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 を閉じる、またはもう一度開く

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

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

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

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