チュートリアル: 組織をセットアップする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLabで、会社のGitLab組織をセットアップおよび管理するには、次の手順を実行します:
- グループ、サブグループ、プロジェクトを作成する。
- これらのグループとプロジェクトで、グループメンバーに異なるロールを割り当てる。
このチュートリアルでは、あなたの役割は小規模ソフトウェア会社のIT管理者です。この会社はGitLabを使用しており、マーケティング部門、営業部門、開発部門があります。
マーケティング組織と営業組織はすでにセットアップ済みです。このチュートリアルでは、ソフトウェア開発組織をセットアップします。この組織には、次の正社員がいます:
- 1人のIT管理者: あなた。
- 1人の製品マネージャー: Alex Smith。
- 1人のエンジニアリングマネージャー: Blake Wang。
- 3人のソフトウェア開発者: Charlie Devi、Devon Ivanov、Evan Kim。
- 1人のユーザーエクスペリエンスデザイナー: Frankie Ali。
- 1人のテクニカルライター: Grayson Garcia。
この組織には、請負業者のコンテンツストラテジストであるHunter Silvaもいます。
ここでは、次の項目を作成します:
- ソフトウェア開発組織。
- 作業を管理するためのグループ、サブグループ、プロジェクト。
- グループとプロジェクトに追加し、ロールを割り当てるためのユーザー。
- 特定の作業用の組織内のプロジェクト、およびそのプロジェクトへのユーザーの追加。
はじめる前
- GitLab Self-Managedへの管理者アクセス権があることを確認してください。
組織の親グループとサブグループを作成する
最初に、ソフトウェア開発組織全体の親グループとして機能するグループDevelopmentを作成します。
- GitLab Self-Managedを開きます。
- 左側のサイドバーの上部で、新規作成( )を選択し、新規グループを選択します。新しいナビゲーションをオンにしている場合、このボタンは右上隅にあります。
- グループを作成を選択します。
- グループ名に
Developmentと入力します。 - グループURLでグループに対して
development-groupを入力します。「グループパスは使用可能です」というメッセージが表示されます。グループURLは、ネームスペースに使用されます。 - 表示レベルでは、グループをプライベートにします。つまり、このグループのすべてのサブグループも非公開にする必要があります。
- 次の質問に答えて、GitLabのエクスペリエンスをパーソナライズします:
- ロールで、Development Team Lead(開発チームリード)を選択します。このロールは、メンバーの権限に影響を与えるロールとは異なります。
- **だれがこのグループを使用しますか?**で、自分の会社やチームを選択します。
- **このグループを何に使う予定ですか?**で、コードを保存したいを選択します。
- ここでは、まだGitLabのメンバーや他のユーザーをグループに招待しないでください。
- グループを作成を選択します。
GitLabでは、ネームスペースは関連するプロジェクトを整理する場所として使用できます。
組織の親グループを作成できました。次に、サブグループを作成します。
組織のサブグループを作成する
このチュートリアルでは、Developmentは次の作業領域で構成されることを前提としています:
- 製品管理。
- エンジニアリング。
- ユーザーエクスペリエンス。
- ユーザーエクスペリエンスデザイン。
- テクニカルライティング。
ここでは、この組織構造を反映したサブグループを作成します。
サブグループとプロジェクトには、親グループの表示レベル設定と同等の表示レベル制限を設定しておく必要があります。たとえば、親グループが非公開の場合、サブグループを公開にすることはできません。
- 左側のサイドバーで、検索または移動先を選択します。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- すべてのグループを表示を選択します。
- 開発を選択します。あなたはオーナーロールを持っているため、グループ名の横にオーナーラベルが表示されます。
- 親グループの概要ページの右上隅で、新しいサブグループを選択します。
- サブグループ名に
Product Managementと入力します。 - サブグループスラグには、product-managementが自動的に入力されます。このフィールドは変更しないでください。
- 表示レベルでは、親グループDevelopmentが非公開であるため、プライベートのみを選択できます。
- サブグループを作成を選択します。
- 次のサブグループに対して手順を繰り返します:
Engineering。User Experience。UX Design。Technical Writing。
UX DesignとTechnical Writingは、User Experienceサブグループにネストされたサブグループです。
これで、組織のサブグループを作成できました。次に、組織のユーザーを作成します。
組織のユーザーを作成する
組織のユーザーを手動で作成します。これらのユーザーはテストユーザーです。最初のテストユーザーであるAlex Smithを作成するには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。新しいナビゲーションをオンにしている場合は、右上隅で自分のアバターを選択し、管理者を選択します。
- 概要 > ユーザーを選択します。
- 新規ユーザーを選択します。
- 必要なフィールドに入力します:
- 名前:
Alex Smith - ユーザー名:
alexsmith - メール:
alexsmith@example.com - 他のすべてのフィールドはそのままにします。
- 名前:
- ユーザーの作成を選択します。
実際のユーザーの場合、リセットリンクがユーザーのメールアドレスに送信されます。そのユーザーは最初のサインイン時にパスワードを設定するように求められます。ただし、このユーザーは架空のメールアドレスを使用したテストユーザーであるため、確認メールを使用せずにユーザーのパスワードを設定する必要があります。
テストユーザーのパスワードを設定する
- ユーザーを選択します。
- 編集を選択します。
- パスワードフィールドとパスワードの確認フィールドに入力します。
- 変更を保存を選択します。
最初のテストユーザーを作成できました。他のユーザーに対してこの手順を繰り返します:
| 名前 | ユーザー名 | メール |
|---|---|---|
Blake Wang | blakewang | blakewang@example.com |
Charlie Devi | charliedevi | charliedevi@example.com |
Devon Ivanov | devonivanov | devonivanov@example.com |
Evan Kim | evankim | evankim@example.com |
Frankie Ali | frankieali | frankieali@example.com |
Grayson Garcia | graysongarcia | graysongarcia@example.com |
Hunter Silva | huntersilva | huntersilva@example.com |
組織のユーザーを作成できました。次に、これらのユーザーを異なるグループとサブグループに追加します。
ユーザーをグループとサブグループに追加する
ユーザーをグループに追加することで、グループ内のすべてのプロジェクトへのアクセス権をユーザーに付与できます。
最初に、すべてのユーザーを親グループDevelopmentに追加します。
左側のサイドバーで、検索または移動先を選択して、開発グループを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
管理 > メンバーを選択します。
メンバーを招待を選択します。
製品マネージャーのAlex Smithについて、フィールドに入力します。
- Alexにオーナーロールを付与します。ロールは、グループ内のすべてのサブグループプロジェクトに適用されます。
- アクセス有効期限を空白のままにします。
招待を選択します。
次のユーザーに対してこのプロセスを繰り返します:
ユーザー ロール アクセス有効期限 Blake Wang メンテナー 空白のまま Charlie Devi デベロッパー 空白のまま Devon Ivanov デベロッパー 空白のまま Evan Kim デベロッパー 空白のまま Frankie Ali レポーター 空白のまま Grayson Garcia レポーター 空白のまま Hunter Silva ゲスト 2025-12-31複数のユーザーが同じロールとアクセス有効期を持っている場合は、その複数のユーザーを同時に招待できます。
すべてが正しく設定されていることを確認する
DevelopmentグループとすべてのサブグループのGroup Members(グループのメンバー)ページで、これらのグループのメンバーシップを確認します。
- ソースは、このグループのユーザーのメンバーシップの起源です。追加したメンバーは、グループに直接追加したため、直接メンバーになります。
- 最上位のロールは、追加したメンバーがこのグループで許可される最上位のアクセスレベルです。この列のドロップダウンリストを使用して、このグループに追加したメンバーのロールを変更できます。
親グループのメンバーとして追加したすべてのユーザーは、すべてのサブグループのメンバーにもなり、同じロールを持ちます。
メンバーシップの種類でサブグループをフィルタリングする
サブグループをフィルタリングして、そのサブグループの直接メンバーであるユーザーと、親グループからそのサブグループのメンバーシップを継承したメンバーを表示できます。
- 左側のサイドバーで、検索または移動先を選択して、開発グループを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- User Experienceサブグループを選択します。
- 左側のサイドバーで、サブグループ情報 > メンバーを選択します。
- メンバーページで、メンバーをフィルターするフィールドを選択します。
- メンバーシップを選択してから、継承を選択し、Returnを押します。
これで、User Experienceサブグループのメンバーシップを継承したUser Experienceサブグループのメンバーのみが表示されます。
各ユーザーは、組織内のロールと関連付けられているサブグループのメンバーのみになる必要があります。あなたは、ユーザーをグループとサブグループから削除することにしました。
ユーザーをグループとサブグループから削除する
サブグループからメンバーを直接削除することはできません。親グループからのみメンバーを削除できます。
親グループに戻り、Alex Smithを除くすべてのユーザーを削除します:
- 左側のサイドバーで、検索または移動先を選択して、親グループを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- 管理 > メンバーを選択します。
- 削除するメンバーの行で、縦方向の省略記号( )を選択してから、メンバーを削除を選択します。
- メンバーを削除確認ボックスで、サブグループやプロジェクトからも直接ユーザーのメンバーシップを削除するチェックボックスをオンにします。
- メンバーを削除を選択します。
これで、親グループとサブグループのメンバーは1人のみになりました。そのメンバーにはオーナーロールが割り当てられています。
次に、ユーザーをサブグループに直接追加します。
ユーザーをサブグループに追加する
ここでは、ユーザーを異なるサブグループに直接追加します。
ユーザーをProduct Managementサブグループに追加する
- 左側のサイドバーで、検索または移動先を選択して、開発グループを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- Product Managementサブグループを選択します。
- 左側のサイドバーで、サブグループ情報 > メンバーを選択します。
あなたを除いて、Alexはこのサブグループの唯一のメンバーであり、直接メンバーです。これは正しい設定です。ただし、あなたは、オーナーロールではなく、メンテナーロールを割り当てる必要があると考えています。
サブグループでユーザーロールを変更する
メンバーページでロールを直接変更することはできません。サブグループでロールを変更するには、メンテナーとしてサブグループに招待します。
- メンバーを招待を選択します。
- 製品マネージャーのAlex Smithについて、フィールドに入力します。
- Alexにメンテナーロールを付与します。
- アクセス有効期限を空白のままにします。
- 招待を選択します。
次のメッセージが表示されます:
The following member couldn't be invited
Review the invite errors and try again:
- Alex Smith: Access level should be greater than or equal to Owner inherited membership from group DevelopmentAlexは親グループから継承したメンバーシップを持っているため、サブグループの親グループでのロールよりもアクセスレベルが低いサブグループロールをAlexに付与することはできません。
組織でのロールを考慮して、Alexはこのサブグループのオーナーのままにすることにしました。キャンセルを選択して、この招待をキャンセルします。
Product Managementサブグループには、正しいメンバーとロールがあります。次に、ユーザーをEngineeringサブグループに追加します。
ユーザーをEngineeringサブグループに追加する
ここでは、一部のユーザーをEngineeringサブグループに招待します。
左側のサイドバーで、検索または移動先を選択して、開発グループを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
Engineeringサブグループを選択します。
左側のサイドバーで、サブグループ情報 > メンバーを選択します。メンバーはあなたとAlexのみで、両方ともオーナーロールを持っています。これらは継承されたロールです。
メンバーを招待を選択します。
次のメンバーについて、フィールドに入力します:
ユーザー ロール アクセス有効期限 Blake Wang メンテナー 空白のまま Charlie Devi デベロッパー 空白のまま Devon Ivanov デベロッパー 空白のまま Evan Kim デベロッパー 空白のまま 招待を選択します。
Blake Wangは、このサブグループでメンテナーロールを持っており、これは、エンジニアリングマネージャーとしての責任に合致しています。3人のデベロッパーは全員デベロッパーロールを持っています。これらは直接ロールです。
このサブグループのメンバーページでロールを直接変更できます。Blake Wangをこのサブグループのオーナーに変更します。
Developmentグループのメンバーページに戻ります。Engineeringサブグループのメンバーは、親グループのメンバーではないことがわかります。
メンバーにする必要があるグループとサブグループにユーザーを直接追加することで、ユーザーが必要のないグループのメンバーになる問題を回避できます。さまざまなグループやプロジェクトへのアクセスを、より正確な方法で制御できます。
ユーザーをUser Experienceサブグループに追加する
User Experienceサブグループには、さらにネストされた2つのサブグループがあります:
- ユーザーエクスペリエンスデザイン。
- テクニカルライティング。
ユーザーに関しては、UX DesignにはFrankie AliとHunter Silvaのみを追加し、Technical WritingにはGrayson Garciaのみを追加する必要があります。
3人全員をUser Experienceサブグループに追加すると、権限の継承により、ネストされた両方のサブグループにも全員が追加されることになります。
したがって、これらのユーザーは、User Experienceサブグループに追加するのではなく、適切なネストされたサブグループに直接追加します。
左側のサイドバーで、検索または移動先を選択して、開発グループを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
User Experienceサブグループを選択してから、UX Designサブグループを選択します。
左側のサイドバーで、サブグループ情報 > メンバーを選択します。現在、あなたとAlex Smithのみがメンバーです。これらは継承されたロールです。
メンバーを招待を選択します。
次のメンバーについて、フィールドに入力し、招待を選択します:
ユーザー ロール アクセス有効期限 Frankie Ali メンテナー 空白のまま Hunter Silva ゲスト 2025-12-31Technical Writingサブグループに対してこの手順を繰り返します:
ユーザー ロール アクセス有効期限 Grayson Garcia メンテナー 空白のまま
ユーザーを適切なネストされたサブグループに追加できました。Grayson GarciaをUser Experienceサブグループにも追加することにします。
ユーザーを他のサブグループに追加する
Graysonを特定のロールとしてUser Experienceサブグループに追加するとともに、Technical Writingサブグループでのロールを同じままにすることができます。
- User Experienceサブグループに移動します。
- 左側のサイドバーで、サブグループ情報 > メンバーを選択します。現在、あなたとAlex Smithのみがメンバーです。これらは継承されたロールです。
- メンバーを招待を選択します。
- Grayson Garciaをデベロッパーとして招待します。これは、Technical Writingサブグループでのメンテナーロールよりも権限レベルが低いロールです。
つまり、Grayson Garciaは、User Experienceサブグループで必要以上に高い権限レベルを持つことはありません。
ただし、権限の継承により、Grayson GarciaをUser Experienceサブグループに追加すると、ネストされたUX Designサブグループにもデベロッパーとして追加されます。
グループとサブグループについては、権限の継承に注意してください。メンバーになる必要のないグループにユーザーを誤って追加する可能性を最小限に抑えるために、ユーザーを最小限の数のグループとサブグループに追加してください。
- User Experienceサブグループのメンバーページに移動します。
- Frankie AliとHunter SilvaをReporters(レポーター)として追加します。Hunterに同じ有効期限を設定します。
- ネストされたTechnical Writingサブグループに移動します。
Frankie AliとHunter Silvaは、権限の継承により、Technical Writingサブグループのメンバーになりました。
グループ、サブグループ、メンバーを設定し、組織を正常にセットアップできました。
次に、メンバーが取り組むプロジェクトをグループの1つに作成します。
プロジェクトを作成する
ここでは、組織の特定のメンバーが取り組む必要のある作業があり、その作業は組織全体を対象にしているとします。その作業を整理するために、Development親グループにプロジェクトを作成し、そのプロジェクトにさまざまなユーザーを追加します。
- 左側のサイドバーで、検索または移動先を選択して、開発グループを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- 新規作成( )を選択し、新規プロジェクト/リポジトリを選択します。新しいナビゲーションをオンにしている場合、このボタンは右上隅にあります。
- 空のプロジェクトの作成を選択します。
- プロジェクトの詳細を入力します:
- プロジェクト名フィールドに、プロジェクトの名前として
Release 2.0と入力します。 - プロジェクトslugフィールドはそのままにします。プロジェクト名に基づいて自動的に入力されます。
- ユーザーのプロジェクトの表示権限とアクセス権を変更するには、表示レベルを変更します。親グループが非公開であれば、プロジェクトもプライベートのみにすることができます。
- Gitリポジトリを初期化して、デフォルトブランチを用意し、クローンできるようにするために
READMEファイルを作成するには、リポジトリを初期化しREADMEファイルを生成するチェックボックスをオンにします。 - 既知のセキュリティの脆弱性についてプロジェクトのソースコードを分析するには、静的アプリケーションセキュリティテスト (SAST) を有効にするチェックボックスをオンにします。
- 不正なアクセスを防ぐためにソースコードからシークレットと認証情報を分析するには、シークレット検出を有効にするチェックボックスを選択します。
- プロジェクト名フィールドに、プロジェクトの名前として
- プロジェクトを作成を選択します。
これで、親グループにプロジェクトを作成できました。
このプロジェクトで、管理 > メンバーに移動します。
プロジェクトがグループに属している場合、プロジェクトのメンバーはグループからロールを継承するので、親グループの既存のメンバー(あなたとAlex)はすでにこのプロジェクトのメンバーになっています。
このプロジェクトに含める必要がある他のユーザーがいます。次に、ユーザーをプロジェクトに直接追加します。
ユーザーをプロジェクトと親グループに追加する
左側のサイドバーで、検索または移動先を選択して、Release 2.0プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
左側のサイドバーで、管理 > メンバーを選択します。
メンバーを招待を選択します。次のユーザーを招待します:
ユーザー ロール アクセス有効期限 Charlie Devi メンテナー 空白のまま Frankie Ali メンテナー 空白のまま Grayson Garcia メンテナー 空白のまま 招待を選択します。
これらのユーザーをプロジェクトに直接追加したため、必要に応じて、プロジェクトのメンバーページでユーザーのロールを変更できます。Grayson Garciaのロールをデベロッパーに変更して、これをテストします。
Development親グループのメンバーページに移動します。親グループにプロジェクトがあるにもかかわらず、プロジェクトに追加したユーザーはここに表示されません。
同じユーザーをゲストロールで親グループに直接追加します。このページでユーザーのロールを直接変更できます。Frankieのロールをレポーターに変更します。
Release 2.0プロジェクトのメンバーページに戻ります。メンバーのプロジェクトロールは、メンテナー2人とデベロッパー1人のままです。
これで、サブグループのメンバーである3人のユーザーを親グループのプロジェクトに追加し、プロジェクトと親グループでそれらのユーザーに個別のロールを付与できました。