記事のきっかけ
仲間何人かでGithubを使用してWEBアプリ開発の練習的なことをしているのですが、メンバーに付与している権限が違ってpushできない事態が起きました。調べていくと単純な設定ミスなのですが、この場でアウトプットして記憶に刻み込もうと思います。
経緯
元々プライベートリポジトリを使用していて、4人で作業していました。
後々もう一人作業に参加することになり、1人をcollaboratorとしてではなく、organizationのメンバーへと変更し、5人で作業開始・・・
しかし、メンバーへと変更された人が、pushできなくなってしまいました。
調査と対応
メンバーへと変更したユーザーに対して付与する権限を、設定していませんでした。
Githubのリポジトリに関して関われるアカウントの種類としては、大きく2つあり、
- 組織(organization)に属するアカウント
- 組織には属さないが、その組織のリポジトリにアクセスできるアカウント
があります。
それぞれ付与できる権限があるのですが、組織に属するアカウントでは、
- Owner権限:組織に関わる全ての操作ができる
- Member権限:リポジトリの作成はできるが、メンバーに関わる操作やpush, pullなどはできない。
ここまでで、だいたい想像がつくかもしれませんが、、、そうです。メンバーへと変更された人は、Owner権限ではなく、Member権限でした。
そのため、この権限をOwnerへ変更することで、問題は解決できました。
補足
プライベートリポジトリではcollaboratorsが3人までという制約上このような対応となりましたが、よくよく考えてみると、仲間内の作業なので全員組織内のOwnerにしてもよかったのではないかと今更になって感じました・・・
今回調査した際に参考にさせていただいた記事を載せておきます。ここでは、collaboratorsに関する権限についても、触れられています。
https://qiita.com/chari/items/ee16bf16715f4bbcbd9b
そもそも今回は、アカウントの管理方法について、十分に下調べしないまま作業をしていたことが問題でした。今後も色々なサービスやツールが登場してくると思いますが、複数人で作業をする際のメンバーアカウントの管理方法は前もって考えるようにしようと思います。