はじめに
GitHub Team版を社内導入するにあたり、既存のユーザをチームに入れるかどうか検討するために「チームユーザ」と「チーム外のユーザ(外部コラボレーター)」の違いを以下に整理しました。
1. チーム版ユーザの特徴
チーム版ユーザは、組織内でのアクセス権を効率的に管理するための機能を活用できる。
管理方法
- チーム全体: 組織内で作成されたチーム全体に対してアクセス権限を付与可能。
- グループ(チーム): チームを利用して、アクセス権限や通知を効率的に管理可能。
- 個々のユーザ: 必要に応じて、個別のユーザにアクセス権を設定可能。
主な権限
- チームや組織内のリソース(リポジトリ、Wiki、プロジェクトボード)への広範なアクセス。
- 組織内の他のメンバーの可視性。
- 組織全体の設定やポリシーの変更(管理者権限が必要)。
- 内部リポジトリへのアクセス。
- SSO(Single Sign-On)の適用を受ける。
2. チーム外のユーザ(外部コラボレーター)の特徴
チーム外のユーザは、組織外のユーザとして明示的に招待されることでアクセス権を得る。
管理方法
- 個々のユーザ単位の権限管理のみ。
- チームやグループに参加することはできない。
主な制限
- チーム機能への参加不可: チームに追加することはできない。
- 組織全体のリソースへのアクセス不可: アクセス可能なリポジトリは、明示的に権限が付与されたものに限られる。
- 組織の設定変更不可: 組織やリポジトリの管理権限を持つことはできない。
- 内部リポジトリへのアクセス不可: 内部リポジトリはチームメンバー専用となる。
- SSOの適用外: 通常のGitHubアカウントでアクセスする。
3. チーム版ユーザとチーム外のユーザの主な違い
機能/権限 | チーム版ユーザ | チーム外のユーザ(外部コラボレーター) |
---|---|---|
チーム機能への参加 | 可能 | 不可 |
組織全体のリソースへのアクセス | 可能 | 不可(明示的に許可されたもののみ) |
内部リポジトリへのアクセス | 可能 | 不可 |
SSO(Single Sign-On)適用 | 可能 | 適用外 |
他メンバーの可視性 | 可能 | 不可 |
リポジトリ単位のアクセス設定 | 可能 | 可能 |
4. 外部コラボレーターでも可能な操作
外部コラボレーターであっても、以下の操作は権限次第で可能。
- 明示的に権限が付与されたリポジトリでのコードの読み書き。
- プルリクエストの作成とレビュー。
- Issueの作成とコメント。
- ワークフローやCI/CDのジョブのトリガー(権限が許可されている場合)。
まとめ
管理にかかるコストを考えると、関与の低いメンバ以外はチームに入れるという当たり前の結論になります。
ただし、Githubのもともとのオープンな性質からチーム外のユーザも含めた運用はできそうです。