GitHub とはアプリケーションのソースコードをバージョン管理する Git という仕組みをホスティングするサービスです。 単にソースコードの管理だけでなく、ソースコード管理と関連するアプリ開発に関わる機能も提供します。
最近、 GitHub の利用を検討する人が最近増えているため、まず、何を考えないといけないか、次にどのように始められるかについて紹介します。
1. GitHub のライセンスについて
1.1. 個人アカウントと組織アカウント
GitHub では、個人と組織という考え方があります。 まず、開発者は一人一つの個人アカウントを所有します。 個人アカウントの下でリポジトリを作って、開発したソースコードの管理や他の GitHub の機能を利用することができます。
次に、組織は組織アカウントを作成します。 組織アカウントの下でリポジトリを作ることは可能ですが、組織アカウント自体が人ではないので、ソースコードをアップロードすることはできません。 組織アカウントのリポジトリにソースコードをアップロードする方法は、組織アカウントのメンバーとして個人アカウントを登録し、個人アカウントによって組織アカウントのリポジトリにソースコードをアップロードします。
イメージ的には個人アカウントと組織アカウントとの関係は、ユーザとユーザグループのような関係になります。
1.2. アカウントごとの料金プラン
これら個人アカウントと組織アカウントには、それぞれプランが設けられています。プランの違いによって、利用できる機能や規約が変わってきます。
現在、個人アカウントには、 free プランと professional プランが用意されています。 また、組織アカウントには、 free プラン、 team プラン、 enterprise プランが用意されています。
個人アカウントのプランと組織アカウントのプランの間には関連付けに制約はありません。 そのため、例えば、 free プランの個人アカウントと professional プランの個人アカウントを同じ組織アカウントに登録することが可能です。
一方で、組織アカウントはアカウント単位でプランが決まります。 そのため、例えば、 team プランとして個人アカウントを登録し、次に同じ組織アカウントに enterprise プランとして別の個人アカウントを登録することはできません。
1.3. GitHub の料金について
GitHub では個人/組織アカウントに課金が発生します。 GitHub が提供する機能の中にはアカウントのオプション機能として、有料で提供されている機能があります。 この有料機能には、次のような機能があります。
機能名 | 課金単位 | 機能概要 |
---|---|---|
GitHub Advanced Security | アクティブコミッタ数 | ・ソースコードの脆弱性を定期的に確認できるサービス |
GitHub Copilot | 利用者数 | ・AI によるコードの提案や開発に関する QA が AI チャットボットにできるサービス |
GitHub Codespaces | 実行時間 | ・データセンター上で実行する開発環境を利用できる仮想アプリサービス |
GitHub Actions | 実行時間 | ・CI/CD を実行するサービス |
GitHub Packages | 保存データ量 | ・個人/組織のパッケージ管理をホスティングするサービス |
1.4. GitHub の支払い方法
GitHub の個人/組織アカウントでは次のような支払い方法が選択できます。
個人アカウント:
- クレジットカード
- Paypal
組織アカウント:
- クレジットカード
- Paypal
- Microsoft エンタープライズ契約
- Azure サブスクリプション
- GitHub パートナ経由契約
組織アカウントには、支払い方法によって次のような違いがあります。
支払い方法 | 発注単位 | 契約単位 | 契約期間中の数量の変更 |
---|---|---|---|
クレジットカード | 10 | 年 | 追加可能、減数不可 |
Paypal | 10 | 年 | 追加可能、減数不可 |
Microsoft エンタープライズ契約 | 1 | 契約 | 追加可能、減数は年次の応答日に可能 |
Azure サブスクリプション | 1 | 月 | 追加、減数どちらも可能 |
GitHub パートナ経由契約 | 10 | 年 | 追加可能、減数不可 |
2. GitHub 導入時にライセンス面で検討すること
GitHub 導入する時にライセンス面で検討すべきことは次のようになります。
- 個人アカウント、組織アカウントのどちらにするか
- 契約(支払い)方法をどうするか
- オプションの機能を利用するか