Git --distributed-is-the-new-centralized
Chapters ▾ 2nd Edition

6.4 GitHub - 組織の管理

組織の管理

GitHub には、個人ユーザー用のアカウント以外にも、組織 (Organization) 用アカウントが用意されています。 個人アカウントと同様に組織アカウントでも、その名前空間にプロジェクトを持つことができます。 しかし、それ以外の点では異なるところが多数あります。 組織アカウントは、複数の人たちによるプロジェクトの共同所有を表すもので、 さらにその内部でのグループ管理をするための、さまざまなツールが用意されています。 組織アカウントは一般に、オープンソースのグループ (“perl” や “rails” など) や、一般企業 (“google” や “twitter” など) が使うものです。

組織についての基本

組織アカウントの作成はきわめて簡単です。GitHub 上のすべてのページの右上にある “+” アイコンをクリックして、メニューから “New organization” を選びましょう。

``New organization'' メニュー
Figure 6-45. “New organization” メニュー

まず必要になるのが、組織名と、そのグループの連絡先となるメールアドレスです。 もし望むなら、他のユーザーを、共同オーナーとしてこのアカウントに招待することもできます。

この手順に従えば、新しい組織のオーナーになれます。 個人アカウントと同様、組織アカウントも、すべてのプロジェクトをオープンソースにするのであれば無料で使えます。

組織のオーナーであるあなたが何かのプロジェクトをフォークするときには、個人の名前空間にフォークするのか組織の名前空間にフォークするのかを選べるようになります。 新しいプロジェクトを作るときにも同様に、個人アカウントの配下に作るのか組織の配下に作るのかを選べます。 また、組織の配下に作ったリポジトリは、自動的に、個人アカウントからの “ウォッチ” の対象になります。

アバター と同様に、組織アカウントにもアバターを設定できるようになっています。 さらに、個人アカウントと同様のランディングページも用意されています。 その組織アカウントが抱えるリポジトリの一覧を、他の人にも見てもらえることでしょう。

さて、ここから先は、個人アカウントとは異なる組織アカウント独特の内容について、説明しましょう。

チーム

組織アカウントの中では、個々のメンバーをチームとして関連付けることができます。 これは単に、個人ユーザーアカウントと組織内のリポジトリをとりまとめたものであり、 そのリポジトリに対するアクセス権の設定などを行います。

たとえば、あなたの所属する企業の組織アカウントに frontendbackenddeployscripts の三つのリポジトリがあるものとします。 HTML/CSS/Javascript の開発者たちには、frontend と、おそらくは backend についてもアクセスさせたいことでしょう。 一方、運用部門の人たちには、backenddeployscripts にアクセスできるようにしておきたいところです。 チーム機能を使えば、簡単に実現できます。リポジトリごとに Collaborators を管理する必要はありません。

組織アカウントにはシンプルなダッシュボードがあり、すべてのリポジトリやユーザーそしてチームの情報を確認できます。

orgs 01 page
Figure 6-46. 組織アカウントのページ

チームの管理作業を行うには、Figure 6-46 のページ右側にあるサイドバー Teams をクリックします。 移動した先のページでは、チームにメンバーを追加したり、チームにリポジトリを追加したり、チームの設定やアクセス権を管理したりすることができます。 リポジトリに対するチームのアクセス権は、「読み込み限定」「読み書き可能」「管理者」の中から選べます。 この設定の切り替えは、Figure 6-47 の “Settings” ボタンをクリックして行います。

orgs 02 teams
Figure 6-47. チームのページ

誰かをチームに招待すると、チームに招待されたことを伝えるメールが、その人に届きます。

さらに、チームへの (@acmecorp/frontend のような) 言及も、個人アカウントへの言及と同じように機能します。 ただ、個人アカウントと違うところは、このように言及した場合は、チームの すべての メンバーが、そのスレッドを購読した状態になるという点です。 これは、そのチームに伝えたいことがある (が、誰に伝えればいいのかわからない) という場合に便利です。

一人のユーザーが複数のチームに属することもできるので、単なるアクセス制御以外の目的でチームを使うこともできます。 たとえば、uxcss あるいは refactoring などのようなチームを用意して、その手の質問に対応させることもできるでしょうし、 legalcolorblind など、まったく異なる種類のチームを作ることだってできます。

監査ログ

組織アカウントのオーナーは、その組織の配下で起こっていることについてのあらゆる情報を取得できます。 Audit Log タブを開くと、組織レベルで発生した出来事やそれを行った人、そしてそれを行った場所などを確認できます。

orgs 03 audit
Figure 6-48. 監査ログ

このログを、特定の出来事や場所、あるいはユーザーなどに絞って確認することもできます。