正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

サブグループ

  • プラン: 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

グループのサブグループを表示する

前提要件:

  • プライベートネストされたサブグループを表示するには、プライベートサブグループの直接または継承されたメンバーである必要があります。

グループのサブグループを表示するには、次の手順に従います:

  1. 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
  2. サブグループとプロジェクトタブを選択します。
  3. 表示するサブグループを選択します。ネストされたサブグループを表示するには、サブグループを展開( chevron-down ))します。

パブリック親グループのプライベートサブグループ

階層リスト内では、プライベートサブグループを持つパブリックグループに展開オプション( chevron-down )があります。これは、グループにネストされたサブグループがあることを示します。展開オプション( chevron-down )の表示は、すべてのユーザーが可能です。一方、プライベートグループの表示はプライベートサブグループの直接または継承されたメンバーのみが可能です。

ネストされたサブグループの存在に関する情報を非公開にしたい場合は、プライベート親グループのみにプライベートサブグループを追加する必要があります。

サブグループを作成する

前提要件:

トップレベルのドメイン名を持つGitLab Pagesサブグループのウェブサイトをホストすることはできません。たとえば、subgroupname.example.ioなどです。

サブグループを作成するには、次の手順に従います:

  1. 左側のサイドバーで、検索または移動先を選択して、サブグループを作成するグループを見つけます。
  2. 親グループの概要ページの右上隅で、新しいサブグループを選択します。
  3. フィールドに入力します。グループ名として使用できない予約済みの名前のリストを表示します。
  4. サブグループを作成を選択します。

サブグループを作成できるユーザーを変更する

前提要件:

  • グループの設定に応じて、グループのメンテナー以上のロールが必要です。

グループでサブグループを作成できるユーザーを変更するには、次の手順に従います:

  • グループのオーナーロールを持つユーザーとして、次を実行します:
    1. 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
    2. 設定 > 一般を選択します。
    3. 権限とグループ機能を展開します。
    4. サブグループの作成を許可されたロールから、オプションを選択します。
    5. 変更を保存を選択します。
  • 管理者として、次の手順を実行します:
    1. 左側のサイドバーの下部で、管理者を選択します。
    2. 左側のサイドバーで、概要 > グループを選択して、グループを見つけます。
    3. グループの行で、編集を選択します。
    4. Allowed to create subgroups(サブグループの作成を許可)ドロップダウンリストから、オプションを選択します。
    5. 変更を保存を選択します。

詳細については、権限テーブルを参照してください。

サブグループメンバーシップ

グループにメンバーを追加すると、そのメンバーはそのグループのすべてのサブグループにも追加されます。メンバーの権限は、グループからすべてのサブグループに継承されます。

サブグループメンバーは次のいずれかになります:

  1. サブグループの直接メンバー
  2. サブグループの親グループからの継承されたメンバー
  3. サブグループのトップレベルグループと共有されたグループのメンバー。
  4. 間接メンバーには、継承されたメンバーと、サブグループまたはその祖先に招待されたグループのメンバーが含まれます。
%%{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

メンバーのグループ権限は、次のユーザーのみが、および次の操作のみで変更できます:

  • グループのオーナーロールを持つユーザー。
  • メンバーが追加されたグループの設定を変更する。

メンバーシップの継承を決定する

メンバーが親グループから権限を継承しているかどうかを確認するには、次の手順に従います:

  1. 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
  2. 管理 > メンバーを選択します。メンバーの継承は、ソース列に表示されます。

サブグループの例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>)にメンションすると、そのグループのすべての直接メンバーに通知されます。サブグループの継承されたメンバーは、メンションによって通知されません。メンションはプロジェクトやグループの場合と同じように機能します。また、通知するメンバーのグループを選択することもできます。