Github teams and organization

Github OrganizationとTeamsと外部委託

社外の人に開発してもらって、コード類をGithubに納品をしてもらうときにやることとかいろいろ

Github Team? Organization?

Organizationは組織を作り、組織内のグループをTeamと呼ぶ。 Github TeamはTeam単位でレポジトリのアクセス権限を設定できる。

レポジトリの権限設定

レポジトリの権限設定は初期設定があって、次に各レポジトリで個別にも設定できる 初期設定が書かれていない項目はgithubのデフォルトを利用。

https://github.com/organizations/NAME-ORGANIZATIONS/settings/member_privileges)
権限 内容 設定値 補足 G
Base permissions Teamメンバーがorg内のリポジトリを見れるか見れないかなど No Permision 設定しない限りメンバーはレポジトリを見れない  
Repository creation メンバーがレポジトリを作る際のpublic, privateの設定 private    
Team creation rules メンバーがteamを作れる権限 disable    

レポジトリ - team毎のアクセス設定

https://github.com/NAME-ORGANIZATIONS/NAME-REPO/settings/access

orgは招待されたレポジトリ以外は何も見えなくなっている。Base permissionのNo Permission。なので、ここのレポジトリ毎に権限を設定する。 権限はRead, triage, Write, Maintain, Adminとあって、コード編集が必要な場合は基本的にWriteで良い

ブランチプロテクション

ブランチ毎に権限を設定できる。 設定->branchから権限設定をできる。

Github Teamの利用コスト

github 利用料金

4$ * 1user / 1month

Admin アカウントと外注先の人の人数*4$が毎月かかる計算 ただし、外注先と管理者のアカウントが必須なので、最低2アカウントの運用になる。

費用の確認

https://github.com/organizations/NAME-ORGANIZATION/settings/billing ここから、現在利用しているアカウント数、期限、料金周りが確認できる。

billing managerについて

githubではbilling managerという支払い管理者が設定できる。これはteamsの人数にカウントされなく、クレジットカードのアップデート情報などの特定の設定情報のみにアクセスできる

まとめ

うちでは、外注に開発してもらうというときに、

  1. 外注向けのチームを作成
  2. 開発中に初回のpushもしくはリリースタグの時点で、発注者側だけ触れるブランチを作成する(ブランチプロテクション)
  3. 外注の開発、補償期間が終わったら、そのチームメンバーを消す

っていうような流れですることにした。 もちろん外注を頼む人がもともと知り合いで、長年一緒にやっていたとかであれば特に制限とか考えなくていいかも。

結局、外部の人間に渡すってタイミングで最悪のケース(レポジトリ中身全部消してバックレ)みたいなことを検討しないと行けないので今感じだなぁ。 teamに入れないでexternal collabolaterでもいいんだけど、それだと、外部の人がレポジトリを作れなくなってしまうという。

githubはこの辺まで管理をする前提でできててすごいなー。って思った。

connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

アマゾンセール情報サイト アマセール管理人

Jp, Tokyo https://connvoi.com