グループ

GitLab Groupsを使うと、次のことができます。

  • 関連するプロジェクトを一緒に組み立てる。
  • メンバーに複数のプロジェクトへのアクセスを一度に許可する。

GitLab Groupsのビデオによる紹介は、GitLab University: Repositories, Projects and Groupsをご覧ください。

また、グループはサブグループにネストさせることができる。

トップナビゲーションの「グループ」>「自分のグループ」をクリックして、自分のグループを見つけることができます。

GitLab Groups

トップナビゲーションのGroupsドロップダウンは、GitLab 11.1で導入されました。

Groups]ページが表示されます。

  • Your groupsを選択した場合、あなたが所属しているすべてのグループ。
  • Explore publicgroupsを選択した場合の公開グループの一覧です。

グループ」ページの各グループの一覧は、以下の通りです。

  • サブグループをいくつ持っているか
  • 何個のプロジェクトが含まれているか。
  • グループのメンバー数(親グループから継承されたメンバーは含まれない)。
  • グループの知名度
  • 十分な権限を持っている場合、グループの設定へのリンクです。
  • メンバーであれば、グループから抜けるためのリンク。

ユースケース

グループを作成する理由はさまざまですが、いくつか挙げることができます。

  • 関連するプロジェクトを同じ名前空間の下に整理し、最上位のグループにメンバーを追加することで、より少ない手順で複数のプロジェクトや複数のチームメンバーにアクセス権を付与することができます。
  • グループを作成し、適切なメンバーを含めることで、イシューやマージリクエストでチーム全員を一度に@mention

たとえば、会社のメンバー用のグループを作成し、個々のチームごとにサブグループを作成することができます。company-teamというグループを作成し、このグループに個々のチーム用のサブグループを作成するとします。backend-teamfrontend-teamproduction-team

  • イシューから新しい実装を開始するときは、コメントを追加します:@company-team、やりましょう!@company-team/backend-team あなたは大丈夫です!”
  • バックエンドのチームがフロントエンドの助けを必要とするとき、彼らはコメントを追加します:@company-team/frontend-team ここで助けてもらえますか?”
  • フロントエンドチームが実装を完了すると、彼らは次のようにコメントします:@company-team/backend-team, it’s done! Let’s ship it@company-team/production-team!”

名前空間

GitLabでは、名前空間はユーザー名、グループ名、サブグループ名として使用される一意な名前である。

  • http://gitlab.example.com/username
  • http://gitlab.example.com/groupname
  • http://gitlab.example.com/groupname/subgroup_name

例えば、Alexというユーザーを考えてみましょう。

  1. Alex は GitLab.com にユーザー名alexでアカウントを作成します。https://gitlab.example.com/alex
  2. Alexは、自分たちのチームのために、グループ名をalex-teamとするグループを作成します。グループとそのプロジェクトは、以下のようにアクセスします。https://gitlab.example.com/alex-team
  3. Alexはalex-team のサブグループを作成し、サブグループ名をmarketingとします。https://gitlab.example.com/alex-team/marketing

そうすることで

  • アレックスについて@alex
  • アレックスは次のようにチーム全員の名前を挙げています。@alex-team
  • アレックスは、マーケティングチームについて@alex-team/marketing

グループ内のイシューおよびマージリクエスト

イシューおよびマージリクエストは、プロジェクトの一部です。 特定のグループに対して、そのグループ内のすべてのプロジェクトのイシューおよびマージリクエストを、単一のリストビューでまとめて表示することができます。

イシューおよびマージリクエストの一括編集

詳しくは、イシューおよびマージリクエストの一括編集をご覧ください。

新しいグループを作成する

グループ名として使用できない単語の一覧は、予約名を参照してください。

新しいグループを作成するには、次のどちらかを行います。

  • 上部メニューの「グループ」、「自分のグループ」の順にクリックし、緑色のボタン「新しいグループ」をクリックします。

    new group from groups page

  • または、上部メニューのplus を展開し、新規グループを選択します。

    new group from elsewhere

以下の情報を追加してください。

new group information

  1. グループ名は、URL に自動的に入力されます。 オプションで変更することもできます。 これは、グループビューに表示される名前です。 名前には、以下のものだけを含めることができます。
    • 英数字
    • アンダースコア
    • ダッシュとドット
    • スペース
  2. グループURLは、プロジェクトがホストされる名前空間です。 このURLには、以下のものだけを含めることができます。
    • 英数字
    • アンダースコア
    • ダッシュとドット(ダッシュで始まるもの、ドットで終わるものは不可)
  3. オプションで、このグループが何であるかを他の人に伝えるための簡単な説明を追加することができます。
  4. オプションで、グループのアバターを選択することができます。
  5. 視認性のレベルを選択します。

グループの作成について詳しくは、動画「GitLab Namespaces (users, groups and subgroups)」をご覧ください。

ユーザーをグループに追加する

複数のプロジェクトを1つのグループにまとめると、1回の操作でグループ内のすべてのプロジェクトにアクセスできるようになる、という利点があります。

グループのダッシュボードに移動して、「メンバー」をクリックすると、グループにメンバーが追加されます。

add members to group

また、そのユーザーの有効期限を設定することもできます。 これは、そのユーザーがグループへのアクセス権を失う日です。

2つのプロジェクトがあるグループを考えてみましょう。

  • グループメンバー」ページで、新しいユーザーをグループに追加することができるようになりました。
  • さて、このユーザーはグループのDeveloperメンバーなので、自動的にそのグループ内のすべてのプロジェクトに Developerアクセスできるようになります。

特定のプロジェクトの既存ユーザーのアクセスレベルを上げるには、そのユーザーをプロジェクトに新規メンバーとして追加し、希望する権限レベルを設定します。

グループへのアクセス権を要求する

グループオーナーになると、メンバー以外からのグループへのアクセス要求を有効または無効にすることができます。 グループ設定に移動し、「ユーザーからのアクセス要求を許可する」をクリックします。

ユーザーとして、グループのメンバーになることを申請することができます(設定が有効な場合)。 メンバーになりたいグループにアクセスし、画面右側の「アクセス申請」ボタンをクリックします。

Request access button

アクセスを要求されたら

  • 最大10人のグループオーナーにメールで通知されます。 メールは、最も最近アクティブになったグループオーナーに送信されます。
  • グループのオーナーは、メンバーページであなたのリクエストを承認または拒否することができます。

Manage access requests

リクエストが承認される前に気が変わった場合は、「アクセスリクエストの取り下げ」ボタンをクリックするだけです。

Withdraw access request button

グループのオーナーを変更する

グループのオーナーシップとは、メンバーのうち少なくとも1人がオーナー権限を持つことを意味します。 グループには、少なくとも1人のオーナーが必要です。

所有者が1人しかいないグループの所有者を変更することは可能です。 グループの唯一の所有者を変更するには

  • 管理者として。
    1. グループの メンバータブに移動します。
    2. 別のメンバーに所有者権限を付与する。
    3. ページを更新すると、元の所有者から所有者権限を削除することができます。
  • 現在のグループのオーナーとして。
    1. グループの メンバータブに移動します。
    2. 別のメンバーに所有者権限を付与する。
    3. 新しい所有者にサインインしてもらい、所有者権限を削除してもらう。

グループのデフォルトのブランチプロテクションを変更する

GitLab 12.9で導入されました

デフォルトでは、すべてのグループは、グローバルレベルで設定されたブランチプロテクションを継承します。

特定のグループに対してこの設定を変更する場合。

  1. グループの{設定} 設定>一般ページを表示します。
  2. Permissions, LFS, 2FAのセクションを展開します。
  3. デフォルトのブランチ保護] ドロップダウンリストで希望のオプションを選択します。
  4. 変更を保存する]をクリックします。

この設定をグローバルに変更するには、デフォルトのブランチプロテクションを参照してください。

注:GitLab Premium以上では、GitLab管理者はグループオーナーがデフォルトのブランチ保護を更新しないように選択できます。

プロジェクトをグループに追加する

新しいプロジェクトをグループに追加するには、2種類の方法があります。

  • グループを選択し、「新規プロジェクト」をクリックします。 その後、プロジェクトの作成を続けます。

    New project

  • プロジェクトを作成中に、ドロップダウンメニューから既に作成したグループ・名前空間を選択します。

    Select group

デフォルトのプロジェクト作成レベル

デフォルトでは、DevelopersとMaintainersはグループの下でプロジェクトを作成することができます。

特定のグループに対してこの設定を変更する場合。

  1. グループの「設定」>「一般」ページを表示します。
  2. Permissions, LFS, 2FAのセクションを展開します。
  3. Allowed to create projectsドロップダウンリストで、希望するオプションを選択します。
  4. 変更を保存する]をクリックします。

この設定をグローバルに変更するには、「プロジェクト作成のデフォルトの保護」を参照してください。

グループの詳細を見る

グループの詳細ページには、以下のタブがあります。

  • サブグループとプロジェクト
  • プロジェクトを共有する。
  • アーカイブされたプロジェクト。

グループアクティビティ解析の概要

グループの詳細ビューには、過去90日間に作成された以下の項目の数も表示されます:

  • マージリクエスト
  • イシュー
  • メンバー

これらのグループアクティビティ分析は、group_activity_analytics 機能フラグで有効にすることができます。

Recent Group Activity

詳しくは、「グループ活動の表示方法」の項をご覧ください。

グループの活動を見る

グループのアクティビティページには、グループ内で行われた直近のアクションが表示されます。

  • プッシュイベント:ブランチへの最近のプッシュ。
  • マージイベント:最近行われたマージ。
  • イシューイベント: イシューがオープンまたはクローズされました。
  • エピックイベント:エピックがオープンまたはクローズした。
  • コメント:コメントの公開、非公開。
  • チーム:グループに参加または離脱したチームメンバー。
  • Wiki:Wikiの作成、削除、更新。

RSSアイコンをクリックすると、すべてのアクティビティフィードをAtomフォーマットでご覧いただけます。

グループのアクティビティページを表示する。

  1. グループのページに移動します。
  2. 左のナビゲーションメニューから、「グループ概要」を選択し、「アクティビティ」を選択します。

プロジェクトをグループに移管する

プロジェクトをグループに移管する方法を学びます。

グループでのプロジェクト共有

プロジェクトをグループで共有し、グループメンバー全員が一度にアクセスできるようにすることができます。

また、グループ機能での共有をロックすることも可能です。

グループを他のグループと共有する

GitLab 12.7から導入されました

プロジェクトをグループで共有する場合と同様に、グループを別のグループで共有することで、グループの直接のメンバーに共有グループへのアクセス権を与えることができます。 これは、継承されたメンバーには有効ではありません。

「Frontend」などのグループを「Engineering」などの別のグループと共有すること。

  1. 「Frontend」グループページに移動し、左側のナビゲーションメニューから「メンバー」に移動します。
  2. Invite groupタブを選択します。
  3. 選択した最大アクセスレベルで「Engineering」を追加します。
  4. 招待をクリックします。

「Engineering」グループのすべてのメンバーが「Frontend」に追加されたことになります。

LDAPによるグループメンバー管理

グループ同期では、LDAPグループをGitLabグループにマッピングすることができます。 これにより、グループごとのユーザー管理をよりコントロールできるようになります。 グループ同期を設定するには、group_base DN('OU=Global Groups,OU=GitLab INT,DC=GitLab,DC=org')を編集します。 このOUには、GitLabグループに関連付けられるすべてのグループが含まれています。

グループリンクはCNまたはフィルタを使用して作成できます。 これらのグループリンクはグループ設定 -> LDAP同期ページで作成されます。 リンクを設定した後、ユーザーがGitLabグループと同期するために1時間以上かかる場合があります。

LDAPおよびグループシンクの管理の詳細については、LDAPのメインドキュメントを参照してください。

注:LDAP同期が追加されたときにLDAPユーザーがグループメンバーであり、LDAPグループに属していない場合は、グループから削除されます。

CNでグループリンクを作成する場合。

  1. リンク先のLDAPサーバーを選択します。
  2. 同期方法としてLDAP Group cn を選択します。
  3. LDAPGroup cnテキスト入力ボックスに、グループの CN を入力します。設定されたgroup_base内に一致する CN がドロップダウンメニューに表示されます。 このリストから CN を選択します。
  4. LDAPアクセス」セクションで、このグループでシンクされるユーザーの権限レベルを選択します。
  5. このグループリンクを保存するには、Add Synchronization ボタンをクリックします。

Creating group links via CN

フィルターでグループリンクを作成する場合。

  1. リンク先のLDAPサーバーを選択します。
  2. 同期方法としてLDAP user filter を選択します。
  3. LDAP User filterボックスにフィルターを入力します。ユーザーフィルターに関するドキュメントに従います。
  4. LDAPアクセス」セクションで、このグループでシンクされるユーザーの権限レベルを選択します。
  5. このグループリンクを保存するには、Add Synchronization ボタンをクリックします。

Creating group links via filter

ユーザー権限の上書き

GitLabv8.15から、LDAPユーザーのパーミッションをadminユーザーが手動で上書きできるようになりました。 ユーザーのパーミッションを上書きするには、次のようにします。

  1. グループの「メンバー」ページにアクセスします。
  2. 編集するユーザーの行にある鉛筆のアイコンを選択します。
  3. オレンジ色のChange permissions ボタンを選択します。

Setting manual permissions

これで、Membersページからユーザーの権限を編集できるようになります。

エピック

GitLab Ultimate10.2 で導入されました。

エピックは、プロジェクトやマイルストーンをまたいで、テーマを共有するイシューのグループを追跡することで、より効率的かつ少ない労力でプロジェクトのポートフォリオを管理することができます。

エピックについて詳しくはこちら

グループセキュリティダッシュボード

グループとそのサブグループに属するすべてのプロジェクトの脆弱性の概要を把握することができます。

グループセキュリティダッシュボードについて詳しくはこちら。

インサイト

GitLab Ultimate12.0から導入されました

グループやプロジェクトにとって重要なインサイトを設定することで、ユーザーは以下のようなデータを探索することができます。

  • トリアージ衛生管理
  • 一定期間内に作成/クローズされたイシュー
  • マージリクエストがマージされるまでの平均時間
  • もっと見る

インサイトについて詳しくはこちら

グループの転送

GitLab 10.5から、以下の方法でグループを転送できるようになりました。

  • サブグループを新しい親グループに転送する。
  • トップレベルのグループを目的のグループに転送して、サブグループに変換します。
  • サブグループを現在のグループから移し、トップレベルのグループに変換する。

グループ転送を行う場合は、ご注意ください。

  • グループの親を変更すると、意図しない副作用が発生することがあります。リポジトリパスを変更したときのリダイレクトを参照してください。
  • グループの転送は、自分が管理しているグループに対してのみ可能です。
  • 新しい場所を指すように、ローカルリポジトリを更新する必要があります。
  • 直接の親グループの可視性がグループの現在の可視性より低い場合、サブグループとプロジェクトの可視性レベルは、新しい親グループの可視性に合わせて変更されます。
  • グループのオーナーが継承されたメンバーシップのみを持つ場合、グループにはオーナーがいません。 この場合、グループを譲渡したユーザーがグループのオーナーとなります。

グループ設定

グループを作成した後、グループのダッシュボードに移動し、「設定」をクリックすると、グループの設定を管理することができます。

group settings

一般設定

グループ作成時に設定した内容を編集できるほか、グループの詳細な設定にアクセスすることができます。

グループのパスを変更する

グループのパスを変更すると、意図しない副作用が発生する可能性があります。 先に進む前に、リダイレクトがどのように動作するかを読んでください。

他のグループやユーザーが使用できるようにパスを空ける場合、名前とパスの両方が一意である必要があるため、グループの名前も変更する必要があるかもしれません。

グループパスを変更する場合。

  1. グループの「設定」>「一般」ページに移動します。
  2. パス、転送、削除のセクションを展開します。
  3. グループパスの変更]に新しい名前を入力します。
  4. グループパスの変更]をクリックします。
注意:現在のところ、コンテナ・レジストリ・タグを持つプロジェクトを含むネームスペースの名前を変更することはできません。
ヒント: 元の名前空間の所有権を保持し、URLリダイレクトを保護したい場合は、グループのパスを変更したり、ユーザー名を変更したりする代わりに、新しいグループを作成し、そこにプロジェクトを転送することができます。

グループを削除する

グループとその内容を削除するには

  1. グループの{設定} 設定>一般ページに移動します。
  2. パス、転送、削除のセクションを展開します。
  3. グループの削除セクションで、「グループの削除」ボタンをクリックします。
  4. と聞かれたら、動作を確認する。

このアクションはどちらかです。

  • グループを削除し、そのグループ内のすべてのプロジェクトを削除するバックグラウンドジョブをキューに入れます。
  • GitLab 12.8以降、プレミアムまたはシルバー以上の階層では、グループを削除するようにマークします。 デフォルトでは7日後に削除されますが、インスタンスの設定で変更することが可能です。

グループの復元

GitLab 12.8で導入されました

削除マークがついているグループを復元する場合。

  1. グループの{設定} 設定>一般ページに移動します。
  2. パス、転送、削除のセクションを展開します。
  3. Restore groupセクションで、Restore groupボタンをクリックします。

グループメンバーへの2FAの適用

グループメンバー全員に2ファクタ認証(2FA)を適用することで、グループにセキュリティレイヤーを追加することができます。

グループロックで共有

グループ内のプロジェクトが他のグループと共有できないようにすることで、プロジェクトのアクセス制御をより厳密に行うことができます。

例えば、あるプロジェクトで2つの異なるチーム(グループAとグループB)が一緒に作業しているとします。グループロックを使った共有では、グループ内のプロジェクトが他のグループと共有されるのを防ぎ、正しいグループメンバーのみがそれらのプロジェクトにアクセスできることを保証します。

この機能を有効にするには、グループ設定ページに移動し、「グループロックで共有」と「グループを保存」を選択します。

Checkbox for share with group lock

メンバーロック

メンバーロックは、グループオーナーがグループ内のすべてのプロジェクトに対して新しいプロジェクトメンバーの加入を防ぐことができ、プロジェクトメンバーをより厳密に管理することができます。

たとえば、監査イベントのためにグループをロックする場合、メンバーロックを有効にすると、その監査中にプロジェクトのメンバーシップが変更されないことが保証されます。

この機能を有効にするには

  1. グループの[設定] > [一般]ページに移動します。
  2. Permissions, LFS, 2FA] セクションを展開し、[Member lock] を選択します。
  3. 変更を保存する]をクリックします。

Checkbox for membership lock

これにより、これまでプロジェクトメンバーの操作権限を持っていたすべてのユーザーのオプションが無効になり、新しいユーザーを追加することができなくなります。 また、APIを通じて新しいユーザーをプロジェクトに追加するリクエストは一切行えなくなります。

IPアクセス制限

特定のリソースに組織内の人だけがアクセスできるようにするために、IPアドレスでグループとその下にあるプロジェクト、課題などへのアクセスを制限するオプションがあります。 これは、インスタンス全体へのアクセスを遮断しない一方で、特定のコンテンツが敷地外に出ないようにするために役立ちます。

グループ設定に、カンマ区切りのCIDR表記で1つ以上の許可IPサブネットを追加すると、異なるIPアドレスから来た人は、制限されたコンテンツにアクセスできなくなります。

現在、制限を適用しているのは

偶発的なロックアウトを避けるため、管理者とグループオーナーはIP制限に関係なくグループにアクセスすることができます。

ドメイン制限

特定のドメインの電子メールアドレスを持つユーザーのみをグループに追加することを許可することで、グループへのアクセスを制限することができます。

許可したいメールドメインを追加し、異なるドメインのメールを持つユーザーは、このグループに追加することができません。

ドメインによっては、制限できないものもあります。 これらは、最も一般的な公開メールのドメインです。

  • gmail.com
  • yahoo.com
  • hotmail.com
  • aol.com
  • msn.com
  • hotmail.co.uk
  • hotmail.fr
  • live.com
  • outlook.com
  • icloud.com

この機能を有効にするには

  1. グループの[設定] > [一般]ページに移動します。
  2. Permissions, LFS, 2FA] セクションを展開し、[Restrict membership by email] フィールドにドメイン名を入力します。
  3. 変更を保存する]をクリックします。

これにより、この時点からグループに追加されたすべての新しいユーザーに対してドメインチェックが有効になります。

グループファイルのテンプレート

グループファイルテンプレートは、共通のファイルタイプ用のテンプレートセットをグループ内のすべてのプロジェクトで共有することができます。 これはインスタンステンプレートリポジトリ機能に類似しており、選択したプロジェクトはそのページで説明されているのと同じ命名規則に従っている必要があります。

テンプレートソースとして選択できるのは、グループ内のプロジェクトのみです。 これには、グループと共有しているプロジェクトは含まれますが、設定中のグループのサブグループや親グループのプロジェクトは含まれません。

この機能は、サブグループと直接の親グループの両方に対して設定できます。 サブグループのプロジェクトは、そのサブグループと直接の親グループのテンプレートにアクセスすることができます。

Group file template dropdown

この機能を有効にするには、グループ設定ページに移動し、テンプレートセクションを展開し、テンプレートリポジトリとして機能するプロジェクトを選択し、グループを保存します。

Group file template settings

グループレベルのプロジェクトテンプレート

グループをテンプレートソースとして設定し、グループレベルでプロジェクトテンプレートを定義します。グループレベルのプロジェクトテンプレートについてはこちらをご覧ください。

メール通知を無効にする

GitLab 12.2で導入されました

グループ(サブグループとプロジェクトを含む)に関連するすべての電子メール通知を無効にすることができます。

この機能を有効にするには

  1. グループの[設定] > [一般]ページに移動します。
  2. Permissions, LFS, 2FA] セクションを展開し、[Disable email notifications] を選択します。
  3. 変更を保存する]をクリックします。

グループメンテーションの無効化

GitLab 12.6 で導入されました

ユーザーが会話に追加され、そのユーザーがメンバーであるグループについて誰かが言及したときに通知を受けるのを防ぐことができます。

無効化されたメンションがあるグループは、オートコンプリートドロップダウンでそれに応じて可視化されます。

特にユーザー数の多いグループには有効です。

この機能を有効にするには

  1. グループの[設定] > [一般]ページに移動します。
  2. Permissions, LFS, 2FA] セクションを展開し、[Disable group mentions] を選択します。
  3. 変更を保存する]をクリックします。

詳細設定

  • プロジェクト:グループ内のすべてのプロジェクトの表示、各プロジェクトへのメンバーの追加、各プロジェクトの設定へのアクセス、プロジェクトの削除をすべて同じ画面から行うことができます。
  • Webhooks:グループのWebhooksを設定します。
  • Kubernetesクラスタとの連携:GitLabグループとKubernetesクラスタを連携させることができます。
  • 監査イベント:グループの監査イベントを表示します。
  • パイプラインクォータ:グループのパイプラインクォータを把握する。

ストレージ使用クォータ

GitLab Starter12.0から導入されました

グループオーナーは、グループページの設定リストにある使用量割り当てページのストレージタブで、サブグループを含むグループ内のすべてのプロジェクトのストレージ使用量の集計を確認することができます。

Group storage usage quota

ストレージの使用量の合計は、その値に影響を与える関連イベント(コミットプッシュなど)が発生した場合に更新されます。 パフォーマンス上の理由から、最大1時間30分まで更新を遅らせることがあります。

ネームスペースの総ストレージ使用量がN/A と表示されている場合は、そのネームスペース内のプロジェクトにコミットをプッシュすることで再計算を行うことができます。

グループプッシュルール

GitLab Starter12.8 で導入されました

グループプッシュルールでは、グループの管理者が、特定のグループ内で新しく作成されたプロジェクトに対してプッシュルールを設定することができます。

グループのプッシュルールを設定するには、グループのサイドバーから{push-rules}に移動します。

設定すると、新しいサブグループには、どちらかに基づいてプッシュルールが設定されます。

  • プッシュルールが定義されている最も近い親グループ。
  • 親グループにプッシュルールが定義されていない場合、インスタンスレベルで設定されるプッシュルール。
機能を有効にする

この機能はデフォルトでは:group_push_rules 機能フラグが無効になっています。機能フラグAPI エンドポイントを使うか、Rails コンソールにアクセスできる GitLab 管理者が実行することで、特定のグループに対して有効にすることができます:

Feature.enable(:group_push_rules)

アーティファクトの最大サイズ

グループの最大アーティファクトサイズの設定については、「最大アーティファクトサイズ」を参照してください。

ユーザー貢献者分析

GitLab Contribution Analyticsを使えば、グループのメンバーが行った貢献(プッシュ、マージリクエスト、課題)の概要を把握することができます。

イシュー分析

GitLab Issues Analyticsでは、グループ内で毎月作成されるイシューの数を棒グラフで確認することができます。

依存プロキシ

GitLabを上流のDockerイメージの依存関係プロキシとして使用します。