教程:设置你的组织
Tier: 基础版,专业版,旗舰版
Offering: 私有化部署
本教程将教你如何通过以下方式设置并管理你公司的极狐GitLab 组织:
- 创建群组、子群组和项目
- 为这些群组、子群组和项目中的群组成员分配不同的角色
在本教程中,你是一家小型软件公司的 IT 管理员。这家公司使用极狐GitLab,并分为市场、销售和开发部门。
你已经设置好了市场与销售组织。在本教程中,你将设置软件开发组织。该组织拥有以下长期雇员:
- 一位 IT 管理员:你。
- 一位产品经理:Alex Smith。
- 一位工程经理:Blake Wang。
- 三位软件开发工程师:Charlie Devi、Devon Ivanov 和 Evan Kim。
- 一位 UX 设计师:Frankie Ali。
- 一位技术文档工程师:Grayson Garcia。
- 一位合同内容策略师:Hunter Silva。
你将创建:
- 软件开发组织。
- 用于管理工作的群组、子群组和项目。
- 要添加到群组和项目的用户,并为这些用户分配角色。
- 组织中的一个项目,用于某项具体工作,并将用户添加到该项目中。
准备工作
- 确保你拥有对极狐GitLab 私有化部署的管理员访问权限。
创建组织父组与子群组
首先,你将创建一个名为 Development 的群组。Development 群组将作为整个软件开发组织的父组。
要创建 Development 群组:
- 打开极狐GitLab 私有化部署。
- 在右上角,选择 新建 () 和 新群组。
- 选择 创建群组。
- 在 组名 中输入 Development。
- 在 组 URL 下方,输入 development-group。你会看到一条消息,提示“群组路径可用”。组 URL 用于命名空间。命名空间为组织相关项目提供了位置。
- 在 可见性级别 下,选择 私有。这样,该群组的任何子群组也必须为私有的。
- 在 谁将使用这个群组? 下,选择 我的公司或团队。
- 在 您将用这个群组做什么? 下拉列表中,选择 我想存储我的代码。
- 暂时不要邀请任何极狐GitLab 成员或其他用户加入该群组。
- 选择 创建群组。
你已经为你的组织创建了父组。接下来,你将创建子群组。
创建组织子群组
在本教程中,我们假设 Development 的组织结构分为以下几个工作领域:
- 产品管理
- 工程
- 用户体验
- UX 设计
- 技术文档
现在,你将创建子群组来反映这种组织结构。
子群组和项目的可见性设置必须至少与其父组的可见性设置一样严格。例如,你不能有一个私有的父组和一个公开的子群组。
要创建你的组织子群组:
- 在顶栏中,选择 搜索或跳转到。
- 选择 查看所有我的群组。
- 选择 Development。你会在群组名旁边看到一个 所有者 标签,因为你拥有所有者角色。
- 在父组的概览页面,选择 创建子群组。
- 在 子群组名称 中输入 Product Management。
- 子群组路径 会自动填充为 product-management。不要修改此字段。
- 对于 可见性级别,你只能选择 私有,因为父组 Development 也是私有的。
- 选择 创建子群组。
- 对以下子群组重复这些步骤:
- Engineering
- User Experience
接下来,创建 UX 设计和 技术文档 子群组。这些子群组将嵌套在 用户体验 子群组之下:
- 在顶栏中,选择 搜索或跳转到。
- 选择 查看所有我的群组。
- 选择 Development。
- 在 子群组和项目 选项卡下,选择 User Experience。
- 在 User Experience 概览页面,选择 创建子群组。
- 在 子群组名称 中输入 UX Design。
- 选择 创建子群组。
- 对 技术文档 子群组重复这些步骤。
你现在已经为你的组织创建了子群组。接下来,你将为组织创建用户。
为你的组织创建用户
现在,你将手动创建组织内的用户。这些用户是测试用户。要创建第一个测试用户 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。
-
在顶栏中,选择 搜索或跳转到 并找到 Development 群组。
-
选择 管理 > 成员。
-
选择 邀请成员。
-
在 用户名、姓名或邮箱地址 下拉列表中,选择 Alex Smith。
-
在 选择最高角色 下拉列表中,选择 所有者。
-
将 访问过期日期 留空。
-
选择 邀请。
-
对以下用户重复此过程:
用户 角色 访问过期日期 Blake Wang 维护者 留空 Charlie Devi 开发者 留空 Devon Ivanov 开发者 留空 Evan Kim 开发者 留空 Frankie Ali 报告者 留空 Grayson Garcia 报告者 留空 Hunter Silva 访客 2025-12-31 如果多个用户具有相同的角色和访问过期日期,你可以同时邀请他们。
确认一切设置正确
在 Development 群组及所有子群组的 群组成员 页面上,检查这些群组的成员资格。
- 来源 是用户在该群组中成员资格的起源。添加的成员是直接成员,因为你是直接将其添加到群组中的。
- 角色 是添加的成员在该群组中允许拥有的最高访问级别。你可以选择角色来更改添加的成员在此群组中的角色。
你添加为父组成员的所有用户也以相同的角色成为所有子群组的成员。
按成员类型筛选子群组
你可以筛选子群组,以显示哪些用户是该子群组的直接成员,哪些成员是从父组继承了成员资格。
- 在顶栏中,选择 搜索或跳转到 并找到 Development 群组。
- 选择 User Experience 子群组。
- 在左侧边栏中,选择 管理 > 成员。
- 在 成员 页面上,选择 过滤成员 字段。
- 选择 成员身份,然后选择 间接,并按下 回车。
现在你只能看到通过继承获得 User Experience 子群组成员资格的用户。你可以通过查看每位成员的 来源 列来验证继承成员。它应该显示为:Inherited from Development。
你希望每位用户仅成为其组织中角色相关联的子群组成员。因此,你决定将这些用户从群组和子群组中移除。
从群组和子群组中移除用户
你不能直接从子群组中移除成员。只能从父组中移除他们。
返回到父组,并移除除 Alex Smith 之外的所有人:
- 在顶栏中,选择 搜索或跳转到 并找到父组。
- 选择 管理 > 成员。
- 在你要移除的成员行上,选择垂直省略号 (),然后选择 移除成员。
- 在 移除成员 确认对话框中,选中 同时移除子群组和项目中的直接用户成员资格 复选框。
- 选择 移除成员。
现在,你在父组和子群组中只剩下一名成员,并且该成员拥有所有者角色。
接下来,你将直接向子群组添加用户。
将用户添加到子群组
现在,你将把用户直接添加到不同的子群组中。
将用户添加到 Product Management 子群组
- 在顶栏中,选择 搜索或跳转到 并找到 Development 群组。
- 选择 Product Management 子群组。
- 在左侧边栏中,选择 管理 > 成员。
除了你之外,Alex 是该子群组的唯一成员,并且是直接成员,这没有问题。不过,你认为他应该拥有维护者角色而非所有者角色。
更改子群组中的用户角色
你不能在成员页面上直接更改他们的角色。要更改他们在子群组中的角色,需要将他们作为维护者邀请到该子群组。
- 选择 邀请成员。
- 填写产品经理 Alex Smith 的信息。
- 授予 Alex 维护者 角色。
- 将 访问过期日期 留空。
- 选择 邀请。
你将看到以下消息:
plaintext无法邀请以下成员 请检查邀请错误并重试: - Alex Smith:访问级别应大于或等于从 Development 群组继承的所有者成员资格
考虑到 Alex 在组织中的角色,你决定让其在此子群组中保持所有者角色。选择 取消 以取消此次邀请。
Product Management 子群组现在拥有正确的成员和角色。接下来,你将向 Engineering 子群组添加用户。
将用户添加到 Engineering 子群组
现在,你将邀请一些用户加入 Engineering 子群组。
-
在顶栏中,选择 搜索或跳转到 并找到 Development 群组。
-
选择 Engineering 子群组。
-
在左侧边栏中,选择 管理 > 成员。目前的成员只有你和 Alex。两位成员都拥有所有者角色,这些都是继承的角色。
-
选择 邀请成员。
-
填写以下成员的信息:
用户 角色 访问过期日期 Blake Wang 维护者 留空 Charlie Devi 开发者 留空 Devon Ivanov 开发者 留空 Evan Kim 开发者 留空 -
选择 邀请。
Blake Wang 在此子群组中拥有维护者角色,这与其工程经理的职责相符。三位开发人员都拥有开发者角色,这些是直接角色。
-
你可以在此子群组的成员页面上直接更改他们的角色。在 角色 下,选择 维护者 将 Blake Wang 的角色更改为该子群组的所有者。
-
返回到 Development 群组的成员页面。你会看到 Engineering 子群组的成员并非父组的成员。
通过直接向用户需要成为其成员的群组和子群组添加用户,你避免了用户不必要地成为群组成员的问题。你可以更精确地控制对不同群组和项目的访问。
将用户添加到 User Experience 子群组
User Experience 子群组下有两个更深的嵌套子群组:
- UX Design
- Technical Writing
在用户方面,UX Design 应仅包含 Frankie Ali 和 Hunter Silva,而 Technical Writing 应仅包含 Grayson Garcia。
如果你将所有三位用户都添加到 User Experience 子群组,由于权限继承,他们都将被包含在两个嵌套子群组中。
因此,你将把这些用户直接添加到相应的嵌套子群组,而非 User Experience 子群组。
-
在顶栏中,选择 搜索或跳转到 并找到 Development 群组。
-
选择 User Experience 子群组,然后选择 UX Design 子群组。
-
在左侧边栏中,选择 管理 > 成员。你和 Alex Smith 是仅有的成员。这些都是继承的角色。
-
选择 邀请成员。
-
填写以下成员信息并选择 邀请:
用户 角色 访问过期日期 Frankie Ali 维护者 留空 Hunter Silva 访客 2025-12-31 -
对 Technical Writing 子群组重复操作:
用户 角色 访问过期日期 Grayson Garcia 维护者 留空
你已经将这些用户添加到了它们对应的嵌套子群组中。你决定让 Grayson Garcia 也加入 User Experience 子群组。
将用户添加到其他子群组
你可以将 Grayson 作为特定角色添加到 User Experience 子群组,同时保持其在 Technical Writing 子群组中的角色不变。
- 前往 User Experience 子群组。
- 在左侧边栏中,选择 管理 > 成员。你和 Alex Smith 是仅有的成员。这些都是继承的角色。
- 选择 邀请成员。
- 邀请 Grayson Garcia 作为开发者,该角色的权限级别低于其在 Technical Writing 子群组中的维护者角色。
赋予 Grayson 开发者角色意味着他在 User Experience 子群组中不会拥有不必要的高级别权限。
然而,由于权限继承,将 Grayson Garcia 添加到 User Experience 子群组也会使其作为开发者被添加到 UX Design 嵌套子群组。
- 前往 User Experience 子群组成员页面。
- 将 Frankie Ali 和 Hunter Silva 添加为 报告者。给 Hunter 设置相同的过期日期。
- 前往 Technical Writing 嵌套子群组。
由于权限继承,Frankie Ali 和 Hunter Silva 现在是 Technical Writing 子群组的成员。
你已经成功设置了包含群组、子群组和成员的组织。
接下来,你将在其中一个群组中创建一个项目,供成员协作。
创建一个项目
现在,假设你有一项工作需要组织内的特定成员协作完成。这项工作面向整个组织。为了组织这项工作,你将在 Development 父组中创建一个项目,并将不同的用户添加到该项目中。
- 在顶栏中,选择 搜索或跳转到 并找到 Development 群组。
- 在右上角,选择 新建 () 和 新项目/仓库。
- 选择 创建空白项目。
- 输入项目详细信息:
- 在 项目名称 字段中,输入 Release 2.0 作为项目名称。
- 保持 项目路径 字段不变,它会基于项目名称自动生成。
- 要修改项目的查看和访问权限,你可以更改 可见性级别。鉴于父组为私有,项目也只能是 私有。
- 要创建 README 文件,以便 Git 仓库被初始化,拥有默认分支并可被克隆,请选中 使用 README 初始化仓库 复选框。
- 要分析项目源代码中已知的安全漏洞,请选中 启用静态应用安全测试 (SAST) 复选框。
- 要分析源代码中的密钥和凭证以防止未授权访问,请选中 启用密钥检测 复选框。
- 选择 创建项目。
你现在已经在父组中创建了一个项目。
在此项目中,前往 管理 > 成员。
父组的现有成员(你和 Alex)已经是这个项目的成员。当你的项目属于某个群组时,项目成员将从该群组继承其角色。
其他用户需要成为该项目的成员。现在,你将直接向该项目添加用户。
将用户添加到项目和父组
-
在顶栏中,选择 搜索或跳转到 并找到 Release 2.0 项目。
-
在左侧边栏中,选择 管理 > 成员。
-
选择 邀请成员。邀请以下用户:
用户 角色 访问过期日期 Charlie Devi 维护者 留空 Frankie Ali 维护者 留空 Grayson Garcia 维护者 留空 -
选择 邀请。
-
因为你将这些用户直接添加到了项目中,所以你可以根据需要在项目成员页面上更改他们的角色。将 Grayson Garcia 的角色更改为 开发者 来进行测试。
-
前往 Development 父组的成员页面。你刚刚添加到项目的用户并不在此,尽管项目位于父组中。
-
将这些用户以 访客 角色直接添加到父组。你可以直接在此页面上更改他们的角色。将 Frankie 的角色更改为 报告者。
-
返回 Release 2.0 项目的成员页面。这些成员的项目角色仍然是 2 位维护者和 1 位开发者。
你已经成功地将三位身为子群组成员的用户添加到了父组中的项目,并在项目和父组中为他们分配了特定的角色。