GitHubのOrganization/Team/Repositoryに対するRole

投稿日:  更新日:

GitHubはメンバーにRoleを設定することで、許可する権限の範囲を細かく設定できます。

権限の適材適所な設定はチーム開発で必須です。チームの成果物であるデータを守ることに繋がります。

Roleの設定はGitHubのWebページからGUIで行えますが、操作する箇所が分散していて、とても見通しが悪く難解です。

ですので、Roleの種類と設定方法を整理してみました。

※環境:GitHubユーザーページ ’25/10現在

スポンサーリンク

Roleと許可される権限

Organization、Team、Repositoryの各区分で、メンバーにRole(役割)を設定できます。

各区分のRole

Roleにより、メンバーに許可される権限が決まり、行える操作が付与されたり制限されたりします。

スポンサーリンク

Organizationに対するRole

Organizaionに対するメンバーのRoleです。

Roleの概要

OwnerとMemberの2つのRoleがあります。

Organizationの作成者は必然的にOwnerです。また、招待されたメンバーは招待時に選択したRoleになります。

Role名許可される権限
OwnerHas full administrative access to the entire organization.
-----
Organizationに対する全ての操作(完全な管理アクセス権を持つ)
MemberCan see every member and non-secret team in the organization, and can create new repositories.
-----
全てのメンバーの参照
全てのチームの参照(秘密チームを除く)
リポジトリの作成

Organization当たり2名のOwnerを持つように、GitHubは推奨しています。

スポンサーリンク

Roleの設定

Organizationのトップページから、Peopleタブを開きます。

OrganizationのPeopleを開く

メンバーのリストが表示されるので、メンバーを選択します。

Roleを変更

Roleを選択し、「Change role」で設定します。

Roleを選択

スポンサーリンク

Teamに対するRole

Teamに対するメンバーのRoleです。

Roleの概要

MaintainerとMemberの2つのRoleがあります。

「親・子・孫Team…」など、すべての階層でRoleの設定が可能です。

上位TeamのRoleは下位Teamへ引き継がれます。

Role名許可される権限
MaintainerCan add and remove team members and create child teams.
-----
メンバーの追加と削除
子チームの作成
MemberHas no administrative permissions on the team.
-----
チームに対する管理権限を持たない(=チームに対して何もできない)
スポンサーリンク

Roleの設定

Organizationのトップページから、Teamsタブを開きます。

OrganizationのTeamsを開く

Teamの階層を辿り、目的のTeamへ移動します。

目的のTeamへ移動

メンバーのリストが表示されるので、メンバーを選択します。

Roleを変更

Roleを選択し、「Change role」で設定します。

Roleを選択

スポンサーリンク

Repositoryに対するRole

Repositoryに対するメンバーのRoleです。

Roleの概要

Read~Adminの5つのRoleがあります。

Role名許可される権限
clonepullpushissuespull requestssettings
ReadRead and clone repositories. Open and comment on issues and pull requests.
参照・コメント
TriageRead permissions plus manage issues and pull requests.
発行・参照・コメント
WriteTriage permissions plus read, clone and push to repositories.
発行・参照・コメント
MaintainWrite permissions plus manage issues, pull requests and some repository settings.
発行・参照・コメント一部の操作
AdminFull access to repositories including sensitive and destructive actions.
発行・参照・コメント全ての操作(※)
※機密性の高い操作や破壊的な操作を含む

表の上から下へ向かって、より強い権限になっています。

Roleの設定方法

Roleの設定方法は3つあります。

  • (1)全てのリポジトリへ、ベースRoleを設定(Base Role)
  • (2)全てのリポジトリへ、   Roleを指定(Organization access)
  • (3)個別のリポジトリへ、   Roleを指定(Direct access)

ここでいう「ベースRole」とは、招待されたメンバーの初期Roleのことです。(1)で変更を行わなければ、デフォルトはReadです。

スポンサーリンク

(1)Base Role

Organizationのトップページから、Settingsタブを開きます。

OrganizationのSettingsを開く

右のメニュー欄から「Member privileges」を開きます。

Member privilegesを開く

プルダウンリストを開き、目的のRoleを選択します。

Base permissionsの選択

スポンサーリンク

(2)Organization access

Organizationのトップページから、Settingsタブを開きます。

OrganizationのSettingsを開く

右のメニュー欄から「Role assignments」を開きます。

Role Assignmentsを開く

新しいRoleを定義するために「New role assignment」を開きます。

Role assignmentを追加

対象のメンバーまたはチームを指定し、目的のRoleを選択します。

Roleの選択

スポンサーリンク

(3)Direct access

Organizationのトップページから、Repositoriesタブを開きます。

OrganizationのRepositoriesタブを開く

リポジトリのリストが表示されるので、目的のリポジトリへ移動します。

リポジトリの移動

Repositoryのトップページから、Settingsタブを開きます。

RipositoriesのSettingsタブを開く

右のメニュー欄から「Collaborators and teams」を開きます。

Collaborator and teamsを開く

Roleを設定するユーザーまたはチームを選択します。

ユーザーまたはチームを選択

目的のRoleを選択します。

Roleの選択

スポンサーリンク

関連記事:

サーバーとクライアント間でデータを受け渡しする際に、安全な通信経路を確立する目的で、SSHが広く使われています。 Android Studio(Gitクライアント)とBitbucketまたはGitHub(Gitサーバー)間も、SSHが利用できます。 今回は「SSHの概要」を、まとめます。 ※この記事は「Git:リポジトリのクローンとプル(SSH、Bitbucket編)」から「SSHとは」を分離したものです。加筆も行っています。 ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、リモートリポジトリの構築とGitHubアカウントを使ったプッシュ(履歴の登録)の方法を紹介します。 BitbucketよりGitHubの方がシンプルで使い易いかも... ※環境:Android Studio Narwhal 3 Feature Drop | 2025.1.3     Git version is 2.50.1 ※前提:ローカルリポジトリの構築済み ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、トークンを使ったリモートリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 BitbucketよりGitHubの方がシンプルで使い易いかも... ※環境:Android Studio Narwhal 3 Feature Drop | 2025.1.3     Git version is 2.50.1 ※前提:リモートリポジトリの構築済み ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、SSHを使ったリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 BitbucketよりGitHubの方がシンプルで使い易いかも… ※環境:Android Studio Narwhal 3 Feature Drop | 2025.1.3     Git version is 2.50.1     OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2     Windows 11 Pro 24H2 ※前提:リモートリポジトリの構築済み ...
GitHubは、個別アカウントで単に「Gitホスティングサービス」として使うほかに、共有アカウントで「Gitホスティングサービス+複数ユーザーでコラボレーション」と言った使い方が出来ます。 後者は「Organization」と呼ばれています。 「製品の複数人によるチーム開発」や「会社などの組織体系」に即したサービスです。 今回は、Organizationの概要を示しつつ、実際に作成してみたので、紹介します。 ※環境:GitHubユーザーページ ’25/10現在 ...
Organization(共有アカウント)でトークンを使ったアクセスを行う場合、トークンの承認を必要とする場合があります。 この時、トークンの扱いが異なるので、説明します。 ※環境:GitHubユーザーページ ’25/10現在 ...
スポンサーリンク