GitHub Teamプランの始め方|Organization作成から権限管理まで初心者向けに解説

システム開発
スポンサーリンク
スポンサーリンク

GitHubを利用したチーム開発では、「リポジトリはどう分けるべきか」「誰にどの権限を与えるべきか」といった運用ルールを決める必要があります。

GitHub Teamプランを利用すると、OrganizationやTeam機能を活用してメンバーや権限を効率よく管理できます。

本記事では、GitHub Teamプランの導入方法から、実務で利用されるリポジトリ構成や権限管理の考え方までを初心者向けに解説します。


GitHub Teamプランとは

GitHub Teamは、複数人でソースコードを管理するための有料プランです。

主な機能は以下のとおりです。

  • メンバー管理
  • Team単位の権限設定
  • プライベートリポジトリの共有
  • Pull Requestによるコードレビュー
  • GitHub Actions利用枠の拡張
  • Branch Protectionによる運用ルール設定

個人開発であればFreeプランでも十分ですが、チーム開発ではTeamプランの利用をおすすめします。

GitHub Teamプランの料金

GitHub Teamはユーザー単位で課金されるプランです。

例えば、

  • 5人のチームで利用する場合は5ユーザー分
  • 10人のチームで利用する場合は10ユーザー分

の費用が発生します。

料金は変更される可能性があるため、最新の情報はGitHub公式サイトをご確認ください。


GitHub Teamプラン導入前に理解しておきたいOrganization

GitHub Teamプランでは、まず「Organization(組織)」を作成します。

イメージとしては以下のようになります。

Organization
│
├ Team
│  ├ 開発チーム
│  ├ テストチーム
│  └ 管理者チーム
│
├ Repository
│  ├ ProjectA
│  ├ ProjectB
│  └ ProjectC

個人アカウント配下で管理するのではなく、Organization配下で管理することで、メンバーや権限を一元管理できます。


GitHub Teamプランの契約手順

Step1:Organizationを作成する

GitHubへログインします。

画面右上のプロフィールアイコンから「Your organizations」を選択します。

「New organization」をクリックします。

Organization名を入力して作成します。

Step2:Teamプランへアップグレードする

Organization画面を開きます。

「Billing and plans」を選択します。

支払い方法を登録し、Teamプランへアップグレードします。

これでTeam機能が利用できるようになります。


メンバーを招待する

Organization画面を開きます。

「People」をクリックします。

「Invite member」をクリックします。

GitHubアカウントまたはメールアドレスを入力して招待します。

招待されたユーザーが承認すると、Organizationへ参加できます。


Teamを作成する

GitHub Teamでは、ユーザーごとに権限を設定するのではなく、Team単位で管理することをおすすめします。

例えば、プロジェクトAの場合は以下のようなTeam構成が考えられます。

Organization
│
├ ProjectA-CS
├ ProjectA-WEB
├ ProjectA-QA
└ ProjectA-PM

Team単位で権限を付与することで、メンバーの追加・削除が容易になります。


リポジトリはどう分けるべきか

初心者が最も悩みやすいポイントがリポジトリ構成です。

例えば以下のような構成があるとします。

プロジェクトA
├ クラサバソース
│  ├ モジュール1
│  ├ モジュール2
│
├ Webソース

リポジトリの管理方法にはいくつかのパターンがあります。

パターン1:プロジェクト単位で管理

ProjectA
├ ClientServer
│  ├ Module1
│  ├ Module2
│
├ Web

メリット

  • 管理がシンプル
  • リポジトリ数が少ない
  • プロジェクト全体を把握しやすい

デメリット

  • 権限を細かく分けにくい
  • 不要なソースも取得することになる

小規模なプロジェクト向けの構成です。

パターン2:システム単位で分割(おすすめ)

ProjectA-ClientServer
├ Module1
├ Module2

ProjectA-Web

メリット

  • 権限管理しやすい
  • 担当者ごとにリポジトリを分けられる
  • 運用負荷と管理性のバランスが良い

デメリット

  • リポジトリ数が増える

実務ではこの構成が最も多く採用されています。

パターン3:モジュール単位で分割

ProjectA-Module1
ProjectA-Module2
ProjectA-Web

メリット

  • 最も細かい権限管理が可能
  • モジュール単位で独立した開発がしやすい

デメリット

  • 管理が煩雑になる
  • CI/CD設定が増える
  • リポジトリ間の連携が複雑になる

大規模システム向けの構成です。

おすすめのリポジトリ構成

中小規模の開発案件では、以下の構成がおすすめです。

Organization
│
├ ProjectA-ClientServer
├ ProjectA-Web
├ ProjectB-ClientServer
├ ProjectB-Web

プロジェクト単位ではなく、システム単位でリポジトリを分割することで、権限管理と運用の両立がしやすくなります。


Teamを利用した権限管理

例えば以下のTeamがあるとします。

ProjectA-CS
ProjectA-WEB
ProjectA-QA
ProjectA-PM

リポジトリごとの権限設定例

Team ClientServer Web
ProjectA-CS Write Read
ProjectA-WEB Read Write
ProjectA-QA Read Read
ProjectA-PM Maintain Maintain

このように設定することで、担当範囲以外のソース変更を防ぎながら、必要な参照権限は維持できます。

GitHubの権限レベル

GitHubには主に以下の権限があります。

権限 内容
Read 閲覧のみ
Triage Issue管理
Write ソース修正可能
Maintain リポジトリ管理
Admin 全権限

一般開発者には「Write」を付与するのが一般的です。

Admin権限は最小限にする

Admin権限を持つユーザーは以下を実行できます。

  • リポジトリ削除
  • メンバー管理
  • Team管理
  • 権限変更
  • Branch Protection変更

誤操作を防ぐため、以下の担当者のみに付与することをおすすめします。

  • GitHub管理者
  • プロジェクト責任者
  • 開発リーダー

Branch Protectionを設定する

Team開発では、mainブランチへの直接Pushは禁止することをおすすめします。

開発者が誤ってmainブランチへ直接Pushすると、レビューされていないコードが反映される可能性があります。

そのため、mainブランチにはBranch Protectionを設定し、Pull Request経由でのみ変更できるようにするのが一般的です。

推奨設定

main
├ 直接Push禁止
├ Pull Request必須
├ レビュー1名以上必須
└ ステータスチェック必須

これにより、コード品質を維持しながら安全に開発を進められます。


実務でよくある構成例

例えば以下の体制を考えます。

ProjectA
├ クラサバ担当 3名
├ Web担当 2名
├ テスト担当 1名
└ PM 1名

GitHubでは次のように管理します。

Organization
│
├ Team
│  ├ ProjectA-CS
│  ├ ProjectA-WEB
│  ├ ProjectA-QA
│  └ ProjectA-PM
│
├ Repository
│  ├ ProjectA-ClientServer
│  └ ProjectA-Web

この構成にすると、

  • 権限管理がシンプルになる
  • メンバー追加や削除が容易になる
  • 誤操作を防ぎやすい
  • プロジェクト増加にも対応しやすい

といったメリットがあります。


将来的にGitHub Enterpriseへのアップグレードを検討するケース

GitHub Teamプランで十分なケースがほとんどですが、組織規模が大きくなった場合や、より高度なセキュリティ・管理機能が必要になった場合は、GitHub Enterpriseへのアップグレードを検討します。

GitHub TeamとGitHub Enterpriseの違い

主な違いは以下のとおりです。

項目 Team Enterprise
チーム管理
Pull Request
GitHub Actions
SAMLシングルサインオン(SSO) ×
高度な監査ログ ×
Enterprise Managed Users ×
高度なセキュリティポリシー
大規模組織向け管理機能

中小規模の開発チームであれば、Teamプランで十分運用できます。

Enterpriseへのアップグレードが必要になるケース

社内認証と連携したい

Active DirectoryやMicrosoft Entra ID(旧Azure AD)などの認証基盤と連携し、社員アカウントでGitHubへログインしたい場合はEnterpriseが適しています。

アカウント管理を自動化したい

退職者や異動者のアカウント管理を認証基盤と連携して自動化できます。

監査ログを強化したい

金融機関や製造業などでは、

  • 誰がリポジトリへアクセスしたか
  • 誰が権限変更を行ったか
  • 誰が設定を変更したか

といった監査情報が求められる場合があります。

そのようなケースではEnterpriseの監査機能が有効です。

組織全体のポリシーを統一したい

例えば、

  • 全リポジトリでPull Requestを必須化
  • Secret Scanningを強制
  • セキュリティポリシーを統一

といった運用を行う場合は、Enterpriseの管理機能が役立ちます。

TeamプランからEnterpriseへの移行は簡単

GitHubではOrganizationをそのまま利用した状態でプランをアップグレードできます。

そのため、

  • リポジトリの移行
  • メンバーの再登録
  • Pull Request履歴の移行

などは不要です。

まずはTeamプランで運用を開始し、必要になったタイミングでEnterpriseへ移行する方法がおすすめです。


まとめ

GitHub Teamプランを導入することで、ソースコードだけでなく、チームや権限も含めて組織的に管理できるようになります。

まずは以下の流れで環境を整備するとよいでしょう。

  1. Organizationを作成する
  2. Teamプランへアップグレードする
  3. Teamを作成する
  4. リポジトリを作成する
  5. 権限を設定する
  6. Branch Protectionを設定する

小規模なプロジェクトで運用を始め、組織の成長やセキュリティ要件の変化に合わせて、必要に応じてGitHub Enterpriseへの移行を検討することをおすすめします。

システム開発
スポンサーリンク
シェアする
tobotoboをフォローする

コメント

タイトルとURLをコピーしました