• コラボレーター
  • 加留部 有哉

チーム開発を変える「GitHub」とは?〜Organizationとアクセス管理〜【連載第4回】

この記事は、リポジトリ管理サービスGitHubの入門記事、連載第4回目です。

2回、3回とGitHubの基本的な使い方について解説してきました。今回は、より「企業内」での活用という点に目を向けて、GitHubのOrganizationとアクセス管理について解説します。

第4回は、次の内容でお送りします。

  • 会社・チームのソースコードを管理する「Organization
  • Organizationにメンバーを追加する
  • Teamを追加して細かくアクセスを制限する
  • リポジトリ単位の設定と、Organizationの設定
  • Organizationは企業のブランディングにも有効?

▼このシリーズの記事一覧

会社・チームのソースコードを管理する「Organization」

Organizationは、日本語で言うところの組織や団体です。Organizationに対してプライベートリポジトリ(非公開のリポジトリ)が設定できるため、企業内での開発に活用されます。

もちろん企業内だけではなく、OSSの世界でも広く利用されています。例えばRuby on Railsのソースコードは、railsというOrganizationによって管理されています。Pull RequestやIssueを作るのは誰でもできますが、どの機能を取り入れるのか、OSSの方向性を決めるのはOrganizationに属している人が主導で進めていきます。

それでは早速、Organizationを作ってみましょう。Organizationは、誰でもいくらでも無料で作れます。ヘッダのメニューから、[New organization]を選択しましょう。

Organizationの名前と、メールアドレス、プランを選択します。名前は全世界で一意になる必要があります。この記事を書くために一意の名前を探すのが大変でした..

企業で活用する場合、基本的にプライベートリポジトリは必須です。ただし、いつでも変更は可能なので、ここではfreeプランを選択します。最近、料金体系に変更があり、ちょっとお高くなっています。

最後にユーザーをInviteする画面が出ますが、ここは誰も招待せずに[finish]で良いでしょう。この操作も、後からいつでも出来ます。

ここまで完了したらリポジトリを作成してみましょう!

Organizationにメンバーを追加する

Organizationもできた所で、さっそくメンバーを追加していきます。[People]タブから、[Invite member]をクリックすると招待画面に遷移します。

ここで招待したい人のGitHubアカウント名を入力します。すでに登録済みのユーザーしか選択できないので、事前にアカウントを作るように依頼しておくといいでしょう。

あとはmemberかadminか、権限を設定して完了です。Inviteされた人にメールが飛んで行くはずなので、それを確認してもらいましょう。後に解説しますが、招待された人にだけリポジトリの操作権限を付与できます。

あとは実際にチーム開発を始める場合は、ソースコードが全世界に公開されては困るので、有料プランに切り替えて「プライベートリポジトリ」を作成しましょう。そのOrganizationに属している人だけがリポジトリを見れるようになります。

Teamを追加して細かくアクセスを制限する

ユーザーをInviteしただけでは、まだまだ荒いアクセス制限しかできていません。会社が大きくなっていくと、管理するプロジェクト数は増えていき、リポジトリ毎にアクセス制限をかけていく必要があるでしょう。

そのときに便利なのがTeam(チーム)機能です。部署やプロジェクトといった単位でチームを追加しておけば、「このリポジトリには読み込み権限だけ付ける」という管理も楽になります。

Organizationの[Teams]タブから、[Create a new team]を選択すると、次の画面に遷移します。必要な項目を設定して、次に進みましょう。

これでチームは作成できました。GitHubではチームに対してリポジトリを割り当てるという考え方になっています。[Team]のタブからチームを選択すると、次のような画面になります。

ここで新しいリポジトリを追加して、Read/Write/Adminの権限を設定します。基本はwrite権限で問題ないでしょう。Read権限は、コードには直接触らせたくないけど、Issueだけを見せたり、Pull Requestをするだけのチーム付けると便利です。

リポジトリ単位の設定と、Organizationの設定

メンバーは、リポジトリ単位で追加することも可能です。リポジトリの設定画面から、[Collaborators & teams]の一番下にある、[Collaborators]から追加します。

執筆時点でのGitHubの料金体系はOrganizationのメンバー数に対する従量課金なので、リポジトリ単位のメンバー追加はうまく使えば料金の節約になりそうです。一方で、Teamよりも管理が煩雑になってしまうので、注意しましょう。

もう一つ覚えておきたいのが、Organizationの設定にある、デフォルトのパーミッション設定です。Teamに追加されていないメンバーが、リポジトリに対してどういった操作ができるのかという設定です。

デフォルトが[Read]となっているように、通常では「Teamとして所属していないリポジトリは、見えるけど操作できない」設定です。メンバーが少なく、Teamで管理するほどでもない間は、[Write]権限を全員に与えるといいでしょう。逆に、人数が増えてきてセキュリティを強化したいのであれば、Team以外は見られなくなる[None]を指定しましょう。

Organizationは企業のブランディングにも有効?

ここまで、Organizationを作成して、チーム内開発を行うための準備を解説しました。実際に使いはじめるときは、クレジットカード情報を登録し、プライベートリポジトリを作ると良いでしょう。

GitHubは、もはやエンジニアのインフラとなりつつあります。「Organization」という仕組みも、自社の開発を簡単にするだけでなく、自社開発のOSSを公開する場にもなっています。

企業として質の良いOSSを公開しているということは、技術に対して積極的である証拠です。GitHubを使ってどう見せていくか、激戦のエンジニア採用で勝ち残る一つの戦略になるでしょう!

公開可能になったソースコードは企業の中に留めておかず、どんどん公開すべきだと思っています。プロダクトのコードはさすがに公開出来ないですが、汎用的に使えるようなものは積極的に公開することで見る側にも見られる側にもメリットがあります。

この世界的な流れに乗らないのはもはや時代遅れで、その人達と戦う上で公開しない理由はもうあまりないと感じています。むしろコードを公開しないほうがリスクになる時代です。今後も弊社の新しい時流に抵抗なく乗っていくカルチャーを活かして、常に変化し続けていきたいです。

GitHubでコードを「公開しない」リスク?サイバーエージェント流、OSS時代の開発哲学

▼このシリーズの記事一覧

「マネジメントを効率化したい」というマネージャーの方へ

当媒体SELECKでは、これまで500社以上の課題解決の事例を発信してきました。

その取材を通して、目標を達成し続けるチームは「振り返りからの改善が習慣化している」という傾向を発見しました。

そこで「振り返りからの改善」をbotがサポートする「Wistant(ウィスタント)」というツールを開発しました。

「目標達成するチーム」を作りたいとお考えの経営者・マネージャーの方は、ぜひ、チェックしてみてください。

チームを目標達成に近づけるロボアシスタント「Wistant」無料トライアルはこちら

;