本記事ではOrganization内のリポジトリのアクセス権(アクセス可)を中心にまとめます。
- Enterpriseにも触れます。
- ポリシーにも触れます。
自分のリポジトリに外部コラボレータ招待であれば、単純だけど、EnterpriseやOrganizationでは一体・・・?
というのがあるので書くよ!以下、目次です。
組織内のリポジトリのアクセス権
リポジトリのアクセス権の種類
通常は以下の5種類の権限が準備されています(強い順に並べています)。
- Admin
- Maintainer
- Write
- Triage
- Read
権限毎に何が出来るかについては後半でも触れますが、GitHub公式サイトを見たほうが確実です。
○カスタムロール
EnterpriseプランであればOrganization単位で上記5種類以外のカスタムロールを定義することも可能です。AdminとMaintainerの間ぐらいの権限を定義したい、といったことも可能です。
リポジトリの権限を設定
組織(Organization)内の任意リポジトリにアクセス権を設定しよう。
Admin=リポジトリ管理者であって、メンバの招待&権限設定等が出来ます。
よって、リポジトリ管理者(Admin)に招待してもらって「Read以上」の権限を振ってもらえれば「アクセス可能」ということになります。
権限 | 概要 |
---|---|
Admin | リポジトリの管理者(全設定及び招待が可能) |
Maintainer | リポジトリのサブ管理者(一部設定が可能) |
Write | リポジトリの読み書きが出来る。 |
Triage | リポジトリの参照が出来る。 ※チケットの作成や編集、割付などは出来る。 |
Read | リポジトリの参照が出来る。 ※チケットの作成やコメントは可能です(割当等は出来ない)。 |
ここまでがOrganization内におけるリポジトリの場合でした。
Enterprise/Organizationまで含めたリポジトリの権限設定
EnterpriseやOrganizationを利用すると、リポジトリに対するポリシー(アクセス権含む)を設定出来ます。
例えば
- Organization所属者のリポジトリに対するデフォルトアクセス権
→ 該当Organizationに所属していれば、配下の全リポジトリにはRead権を与える…等。後からリポジトリ側のアクセス権設定でオーバーライド可能です。 - 外部共同者の招待許容
→ Organization未所属の第3者をリポジトリに招待しない。これによってPrivateリポジトリへのアクセス権はOrganization Ownerのみが判断できるようになります。
です。
Organizationポリシで設定可能な「リポジトリのデフォルトアクセス権」は
- No permission(未定義)
- Read
- Write
- Admin
が可能です。
続いて、Enterprise/Organization/Repositoryという階層を意識して、以下の表で整理してみます。
対象 | Enterprise | Organization | Repository (Private) |
---|---|---|---|
デフォルトアクセス権 | 定義可 | 定義可 | ー |
外部共同者の招待 | 制限可 | 制限可 | 上位の制限がなければ勝手に招待可 |
ポリシーの強さはEnterprise > Organization > Repositoryです。
Enterpriseで定義されていた場合、Organizationでは定義出来ません。
→ Enterpriseという上位設定をOrganizationはオーバーライドすることは出来ない。Enterpriseは強い!
※ただし、Enterpriseで未定義(No permissions)であればOrganizationに設定を委ねることが出来ます。柔軟ですね。
(参考) Organizationロール
Organization所属時の基本ロールは「Owner」「Member」があります。
- Owner:管理者であり全リポジトリのAdmin権限もあります。
- Member:単なるメンバーです。
Organizationのカスタムロールによって、全リポジトリの参照許可、書込許可といった設定も出来ます。
(参考) 色々なポリシー
ポリシーはリポジトリのアクセス権だけではありません。EnterpriseやOrganizationレベルのポリシーには、次のような内容もあります。
- リポジトリ可視性(Public/Internal/Private)の変更
- リポジトリFork許可
- リポジトリやIssue削除
- ブランチのルールセット
- Action, Copilot, Codespacesなどの許可
- ・・・
こりゃ、全体のポリシーを俯瞰するのは大変だわ。
けど、上位層でのポリシー管理は重要だからね。企業ユースでは絶対必要。
まとめ
組織(Organization)内リポジトリのアクセス権についてご紹介しました。
組織内のリポジトリ単体にフォーカスした場合、リポジトリ管理者(Admin権限保有者)が任意ユーザやTeamを追加します。追加の際に、WriteやReadといったリポジトリ権限を設定します。
EnterpriseやOrganizationを利用する場合は、上位でポリシーを設定出来ます。これによって、Organizationに所属した段階で関連リポジトリにRead権を与えたり、Organization非所属の第3者の招待を不可能とするようなことが出来ます。
最後までご覧いただき、ありがとうございました!
コメント