Open5

[チーム開発]GitHub Organization を立て、リポジトリを作成する

よつよつ

これはなに

チーム開発をする際に GitHub でリポジトリ管理する際は、GitHub Organization(チーム) を作成し、リポジトリや Project を一括して管理することがしばしばあります。この手順をドキュメントとして残しておこうというスレッドです。

GitHub Organization について(公式ドキュメント):
https://docs.github.com/ja/organizations/collaborating-with-groups-in-organizations/about-organizations

Organization とは?

簡単に言えば「チーム」のことです。
あるプロダクトがあり、プロダクトの中で書いているプログラムを入れたリポジトリがあるとしましょう。これまでは、代表者のだれか一人がリポジトリを立て、メンバーに対してアクセス権限を渡す形で運用してきました。しかし、これには欠点があります。

  • リポジトリを作成するたびに、権限を振りなおさなければいけない
    プロダクトによっては、複数のリポジトリを扱うことがあると思います(例:フロントエンド、バックエンド...)。こうしたとき、リポジトリを個々に建てる方法では、 リポジトリを作成するたびに権限を振りなおす必要があります。また、「すべてのリポジトリに対して、Aさんの編集権限を変更したい!」と思った時には、すべてのリポジトリのアクセス権限を個別に変更する必要があるでしょう。

  • まとまった場所にリポジトリを置いておくことができない(代表者に依存してしまう)
    たとえば代表者の A さんがプロジェクトを抜ける場合、リポジトリの管理権をすべて誰かに移譲しなければいけなくなります。めったにありませんが、GitHub アカウントを削除してしまえばリポジトリは消えてしまいますね。
    また、リポジトリのリンクを忘れてしまえば探すのが難しくなります。GitHub 上ではそれぞれ個別のリポジトリなので、どこかにリポジトリ一覧をメモしておく必要が出てきます。これは面倒ですね。

以上の問題を解決できるのが Organization です。チームを作成し、チームとしてリポジトリを管理する ことができるので、まさにチーム開発のための機能と言えます。


一例として、私の Organization のひとつを紹介します。私はひとつのチームごとにひとつの Organization を立てています。
https://github.com/24-tomodachi

軽く見てみましょう。リンクを開くと、Organization のホームページに飛びます。24-tomodachi という名前のチームであり、4つのリポジトリを所有していることが分かります。

プロジェクトによっては、リポジトリを横断してタスクを管理したい場合があります。そういった場合は、GitHub Projects と合わせて使用するのがオススメです。
https://github.com/orgs/2504-progate-hanami/projects/5

よつよつ

Organization を立ててみる

さて、ここからは新しく Organization を作成し、プロジェクト用のリポジトリを作成するところまでやっていきます。

https://github.com にアクセスし、ログインします。その後、右上の「+」マーク横の「▽」を押し、「New Organization」を選択。

プラン選択が出てきます。Free で大丈夫です。

基本項目の入力画面が出ます。

  • Organization name: チーム名です。半角英数(a-z, A-Z, 0-9)で入力してください。
  • Contact email: 代表者のメールアドレスです。基本使われませんが、念のため確認できるメールアドレスにすることをおススメします。
  • This organization belongs to: Organization が特定の団体に属するかを設定できます。「My Personal Account」で大丈夫です。
  • Verify your account: ボットチェックです。よしなにやっておいてください。
  • Add-ons: Copilot Business に登録するかのチェックボックスが出ています。チェックを付けると 代表者宛に $19 * 人数 / 月 の請求が飛ぶ ので注意。
  • I hereby accept...: いわゆる「利用規約への同意」です。チェック。

フォームを送信した時点で Organization が作成されます。
ユーザーの招待ができる画面が出ますが、ここでは 招待しないことをおススメします。あたらしく作成された Organization のデフォルト権限には編集権限が含まれておらず、後付けで権限を配る手間ができてしまうからです。

Organization のホームページが表示されれば、とりあえず完了です。

よつよつ

デフォルト権限を変更する

さて、初期化したばかりの Organization に人を入れてしまうと、編集権限がない状態になります。つまり、リポジトリに対してコードを反映させることができないということです。これでは困るので、デフォルトのメンバー権限に編集権限を追加しましょう。

Organization のホームページ下部の「Customize members' permissions」をクリックします。

権限の設定画面に飛びます。「Base Permissions」の部分に「Read」となっているプルダウンがありますが、これが メンバーにデフォルトで振られる権限 となります。これを Write もしくは Admin に変更することで、これから参加するメンバーに編集権限を付与することができます。

確認画面が出ます。「Change base permission...」をクリック。

最終的にベース権限が変更されれば OK。

よつよつ

メンバーを追加する

さて、メンバーを招待する準備が整いました。さっそくメンバーを迎えましょう。
ヘッダーから「People」タブを選択。

右上 「Invite member」をクリック。

招待したいユーザーのユーザー名かメールアドレス、本名を入力。

メンバーとして招待するか、オーナーとして招待するかを選択できます。編集権限は先ほど設定したのでどちらでも構いませんが、より包括的な権限を与えたいなら Owner にするとよいです。

You've invited <アカウント名 to <Organization名>! がでたら OK。

メンバーが正しく追加されれば、「Members」に追加されます。

招待を受け取る

招待が飛んだユーザーには、以下の手順で参加できます。

  1. リーダーに Organization のホームページリンクを共有してもらいます
    最初に開いた https://github.com/<Organization Id> のページリンクです。

  2. ↑のリンクにアクセスします
    招待が正しく届いているなら、黄色い表示で「あなたに招待が来てます」的な表示が出ます。そしたら「View invitation」をクリック。

  3. 招待を受けます
    「Join <Organization名>」と書かれた緑のボタンをクリックして、招待を受けます。
    ちなみに上の「Ask for a GitHub Copilot~」にチェックを入れると、リーダーに Copilot の課金をせがむことができます。やめてください。

「You are now a member of <Organization名>!」と出たら OK。

よつよつ

リポジトリを作成する

あとは開発用のリポジトリを準備するだけです。
ヘッダーから「Repositories」タブをクリックし、リポジトリページを開きます。
もちろんまだ何も作成していないので空です。「New Repository」を選択。

順に開設します。

  • Owner: リポジトリのオーナーです。今回は Organization を選択(デフォルトのまま)。
  • Repository name: リポジトリ名です。よしなに命名してください。
  • Description: リポジトリの説明です。任意。
  • Public/Private: リポジトリを公開するかどうかの設定です。これも自由。
  • Add a README file: README.md をデフォルトで生成するかどうか。チェックを付ける ことをおススメします(git clone するときにラク)。
    残りは基本デフォルトでよいです。

リポジトリが作成されれば OK。