サブグループ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabのグループは、サブグループに編成できます。サブグループを使用すると、次のことが可能になります:
- 内部コンテンツと外部コンテンツを分離する。すべてのサブグループは独自の表示レベルを持てます。したがって、同じ親グループの下でさまざまな目的のグループをホストできます。
- 大規模なプロジェクトを整理する。サブグループを使用して、ソースコードのどの部分に誰がアクセスできるかを管理できます。
- 権限を管理する。ユーザーがメンバーになっている各グループの別のロールをユーザーに付与します。
サブグループは次のことができます:
- 1つの直属の親グループに属する。
- 多数のサブグループを持つ。
- 最大20レベルまでネストされる。
- 親グループに登録されたRunnerを使用する:
- 親グループに対して設定されたシークレットは、サブグループジョブで使用できます。
- サブグループに属するプロジェクトでメンテナー以上のロールを持つユーザーは、親グループに登録されているRunnerの詳細を表示できます。
次に例を示します:
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph TD
accTitle: Parent and subgroup nesting
accDescr: How parent groups, subgroups, and projects nest.
subgraph "Parent group"
subgraph "Subgroup A"
subgraph "Subgroup A1"
G["Project E"]
end
C["Project A"]
D["Project B"]
E["Project C"]
end
subgraph "Subgroup B"
F["Project D"]
end
end
グループのサブグループを表示する
前提要件:
- プライベートネストされたサブグループを表示するには、プライベートサブグループの直接または継承されたメンバーである必要があります。
グループのサブグループを表示するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- サブグループとプロジェクトタブを選択します。
- 表示するサブグループを選択します。ネストされたサブグループを表示するには、サブグループを展開( ))します。
パブリック親グループのプライベートサブグループ
階層リスト内では、プライベートサブグループを持つパブリックグループに展開オプション( )があります。これは、グループにネストされたサブグループがあることを示します。展開オプション( )の表示は、すべてのユーザーが可能です。一方、プライベートグループの表示はプライベートサブグループの直接または継承されたメンバーのみが可能です。
ネストされたサブグループの存在に関する情報を非公開にしたい場合は、プライベート親グループのみにプライベートサブグループを追加する必要があります。
サブグループを作成する
前提要件:
- 次のいずれかが必要です:
- グループのメンテナー以上のロール。
- 設定によって決定されるロール。これらのユーザーは、ユーザー設定でグループの作成が管理者によって無効にされている場合でも、サブグループを作成できます。
トップレベルのドメイン名を持つGitLab Pagesサブグループのウェブサイトをホストすることはできません。たとえば、subgroupname.example.ioなどです。
サブグループを作成するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、サブグループを作成するグループを見つけます。
- 親グループの概要ページの右上隅で、新しいサブグループを選択します。
- フィールドに入力します。グループ名として使用できない予約済みの名前のリストを表示します。
- サブグループを作成を選択します。
サブグループを作成できるユーザーを変更する
前提要件:
- グループの設定に応じて、グループのメンテナー以上のロールが必要です。
グループでサブグループを作成できるユーザーを変更するには、次の手順に従います:
- グループのオーナーロールを持つユーザーとして、次を実行します:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > 一般を選択します。
- 権限とグループ機能を展開します。
- サブグループの作成を許可されたロールから、オプションを選択します。
- 変更を保存を選択します。
- 管理者として、次の手順を実行します:
- 左側のサイドバーの下部で、管理者を選択します。
- 左側のサイドバーで、概要 > グループを選択して、グループを見つけます。
- グループの行で、編集を選択します。
- Allowed to create subgroups(サブグループの作成を許可)ドロップダウンリストから、オプションを選択します。
- 変更を保存を選択します。
詳細については、権限テーブルを参照してください。
サブグループメンバーシップ
グループにメンバーを追加すると、そのメンバーはそのグループのすべてのサブグループにも追加されます。メンバーの権限は、グループからすべてのサブグループに継承されます。
サブグループメンバーは次のいずれかになります:
- サブグループの直接メンバー。
- サブグループの親グループからの継承されたメンバー。
- サブグループのトップレベルグループと共有されたグループのメンバー。
- 間接メンバーには、継承されたメンバーと、サブグループまたはその祖先に招待されたグループのメンバーが含まれます。
%%{init: { "fontFamily": "GitLab Sans" }}%%
flowchart RL
accTitle: Subgroup membership
accDescr: How users become members of a subgroup - through direct, indirect, or inherited membership.
subgraph Group A
A(Direct member)
B{{Shared member}}
subgraph Subgroup A
H(1#46; Direct member)
C{{2#46; Inherited member}}
D{{Inherited member}}
E{{3#46; Shared member}}
end
A-->|Direct membership of Group A\nInherited membership of Subgroup A|C
end
subgraph Group C
G(Direct member)
end
subgraph Group B
F(Direct member)
end
F-->|Group B\nshared with\nGroup A|B
B-->|Inherited membership of Subgroup A|D
G-->|Group C shared with Subgroup A|E
メンバーのグループ権限は、次のユーザーのみが、および次の操作のみで変更できます:
- グループのオーナーロールを持つユーザー。
- メンバーが追加されたグループの設定を変更する。
メンバーシップの継承を決定する
メンバーが親グループから権限を継承しているかどうかを確認するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- 管理 > メンバーを選択します。メンバーの継承は、ソース列に表示されます。
サブグループの例Fourのメンバーリスト:
上記のスクリーンショットでは:
- 5人のメンバーがグループFourにアクセスできます。
- ユーザー0は、グループFourでレポーターロールを持ち、グループOneから権限を継承しています:
- ユーザー0は、グループOneの直接メンバーです。
- グループOneは、階層内でグループFourの上にあります。
- ユーザー1は、グループFourでデベロッパーロールを持ち、グループTwoから権限を継承しています:
- ユーザー0は、グループOneのサブグループであるグループTwoの直接メンバーです。
- グループOne / Twoは、階層内でグループFourの上にあります。
- ユーザー2は、グループFourでデベロッパーロールを持ち、グループThreeから権限を継承しています:
- ユーザー0は、グループTwoのサブグループであるグループThreeの直接メンバーです。グループTwoは、グループOneのサブグループです。
- グループOne / Two / Threeは、階層内でグループFourの上にあります。
- ユーザー3は、グループFourの直接メンバーです。つまり、メンテナーロールをグループFourから直接取得します。
- 管理者は、グループFourでオーナーロールを持ち、すべてのサブグループのメンバーです。そのため、ユーザー3と同様に、ソース列は管理者が直接メンバーであることを示しています。
メンバーを継承または直接メンバーシップでフィルターできます。
祖先グループメンバーシップをオーバーライドする
サブグループでオーナーロールを持つユーザーは、メンバーをサブグループに追加できます。
親グループでユーザーが持っているロールよりも低いロールを、サブグループでユーザーに付与することはできません。親グループでユーザーのロールをオーバーライドするには、ユーザーをより高いロールとともにサブグループに再度追加します。次に例を示します:
- ユーザー1がデベロッパーロールとともにグループTwoに追加された場合、ユーザー1は、そのロールをグループTwoのすべてのサブグループで継承します。
- (One / Two / Threeの下の)グループFourでメンテナーロールをユーザー1に付与するには、ユーザー1をメンテナーロールとともにグループFourに再度追加します。
- ユーザー1がグループFourから削除された場合、ユーザーのロールはグループTwoでのロールに戻ります。ユーザー1は、グループFourでデベロッパーロールを再度持ちます。
サブグループをメンションする
エピック、イシュー、コミット、およびマージリクエストでサブグループ(@<subgroup_name>)にメンションすると、そのグループのすべての直接メンバーに通知されます。サブグループの継承されたメンバーは、メンションによって通知されません。メンションはプロジェクトやグループの場合と同じように機能します。また、通知するメンバーのグループを選択することもできます。
