需求管理
Tier: 旗舰版
Offering: JihuLab.com,私有化部署
通过需求,你可以设定用于检验产品的标准。这些标准可以基于用户、干系人、系统、软件,或任何你认为需要记录的重要内容。
需求是极狐GitLab 中描述产品特定行为的产物。需求是长期存在的,除非手动清除,否则不会消失。
如果某个行业标准要求你的应用必须具备某项特性或行为,你可以创建一个需求来体现这一要求。当某个特性不再需要时,你可以归档相关需求。

创建需求
版本历史
- 在极狐GitLab 17.7 中,最低用户角色从报告者改为计划者。
每个项目都提供了分页的需求列表,你可以在其中创建新的需求。
前提条件:
- 你必须具备计划者、报告者、开发者、维护者或所有者角色。
要创建需求:
- 在项目中,前往 计划 > 需求。
- 选择 新建需求。
- 输入标题和描述,然后选择 新建需求。

你可以在列表顶部看到新创建的需求,需求列表按创建日期降序排列。
查看需求
你可以从列表中选择需求来查看它。

要在查看需求时编辑它,请选择需求标题旁边的 编辑 图标(
)。编辑需求
版本历史
- 在极狐GitLab 16.11 中,更改后,作者和指派人即使不具备报告者角色,也可以编辑需求。
- 在极狐GitLab 17.7 中,最低用户角色从报告者改为计划者。
你可以从需求列表页面编辑需求。
前提条件:
- 你必须具备计划者、报告者、开发者、维护者或所有者角色,或者是该需求的作者或指派人。
要编辑需求:
- 从需求列表中,选择 编辑 图标()。
- 在文本输入框中更新标题和描述。你还可以在编辑表单中通过勾选 已满足 复选框来将需求标记为已满足。
- 选择 保存更改。
归档需求
版本历史
- 在极狐GitLab 16.11 中,更改后,作者和指派人即使不具备报告者角色,也可以归档需求。
- 在极狐GitLab 17.7 中,最低用户角色从报告者改为计划者。
你可以在 开放 标签页中归档一个开放的需求。
前提条件:
- 你必须具备计划者、报告者、开发者、维护者或所有者角色,或者是该需求的作者或指派人。
要归档需求,请选择 归档(
)。需求被归档后,它将不再显示在 开放 标签页中。
重新打开需求
版本历史
- 在极狐GitLab 16.11 中,更改后,作者和指派人即使不具备报告者角色,也可以重新打开需求。
- 在极狐GitLab 17.7 中,最低用户角色从报告者改为计划者。
你可以在 已归档 标签页中查看已归档需求的列表。
前提条件:
- 你必须具备计划者、报告者、开发者、维护者或所有者角色,或者是该需求的作者或指派人。

要重新打开已归档的需求,请选择 重新打开。
需求被重新打开后,它将不再显示在 已归档 标签页中。
搜索需求
你可以根据以下条件在需求列表页面搜索需求:
- 标题
- 作者的用户名
- 状态(已满足、失败或缺失)
要搜索需求:
- 在项目中,前往 计划 > 需求 > 列表。
- 选择 搜索或筛选结果 字段。会出现一个下拉列表。
- 从下拉列表中选择需求作者或状态,或输入纯文本以按需求标题进行搜索。
- 按下键盘上的 Enter 键来筛选列表。
你还可以按以下方式对需求列表进行排序:
- 创建日期
- 更新日期
允许由 CI 作业满足需求
现在极狐GitLab 支持需求测试报告。你可以在 CI 流水线中添加一个作业,当该作业被触发时,会将所有现有需求标记为“已满足”(你可以在编辑需求的编辑表单中手动满足需求)。
将手动作业添加到 CI
要配置 CI 以便在手动作业被触发时将需求标记为已满足,请将以下代码添加到 .gitlab-ci.yml 文件中。
yaml1requirements_confirmation: 2 when: manual 3 allow_failure: false 4 script: 5 - mkdir tmp 6 - echo "{\"*\":\"passed\"}" > tmp/requirements.json 7 artifacts: 8 reports: 9 requirements: tmp/requirements.json
这个定义在 CI 流水线中添加了一个手动触发的(when: manual)作业。该作业是阻塞的(allow_failure: false),但你可以根据需要使用任何条件来触发 CI 作业。此外,你可以使用任何现有的 CI 作业来将所有需求标记为已满足,只要 CI 作业生成并上传了 requirements.json 产物即可。
当你手动触发此作业时,包含 {"*":"passed"} 的 requirements.json 文件会作为产上传至服务器。在服务器端,系统会检查需求报告中的“全部通过”记录({"*":"passed"}),并在成功后,将所有现有的开放需求标记为已满足。
指定单个需求
可以指定单个需求及其状态。
假设存在以下需求:
- REQ-1(IID 为 1)
- REQ-2(IID 为 2)
- REQ-3(IID 为 3)
可以指定第一个需求通过,而第二个失败。有效值为“passed”和“failed”。通过省略某个需求的 IID(本例中即 REQ-3 的 IID 3),将不会记录任何结果。
yaml1requirements_confirmation: 2 when: manual 3 allow_failure: false 4 script: 5 - mkdir tmp 6 - echo "{\"1\":\"passed\", \"2\":\"failed\"}" > tmp/requirements.json 7 artifacts: 8 reports: 9 requirements: tmp/requirements.json
有条件地将手动作业添加到 CI
要配置 CI 仅在存在某些开放需求时才包含手动作业,请添加一条检查 CI_HAS_OPEN_REQUIREMENTS CI/CD 变量的规则。
yaml1requirements_confirmation: 2 rules: 3 - if: '$CI_HAS_OPEN_REQUIREMENTS == "true"' 4 when: manual 5 - when: never 6 allow_failure: false 7 script: 8 - mkdir tmp 9 - echo "{\"*\":\"passed\"}" > tmp/requirements.json 10 artifacts: 11 reports: 12 requirements: tmp/requirements.json
由于需求和测试用例正在迁移至工作项,如果你在项目中启用了工作项,则必须将前面配置中的 requirements 替换为 requirements_v2:
yamlrequirements_v2: tmp/requirements.json
从 CSV 文件导入需求
版本历史
- 在极狐GitLab 17.7 中,最低用户角色从报告者改为计划者。
你必须具备计划者、报告者、开发者、维护者或所有者角色。
你可以通过上传包含 title 和 description 列的 CSV 文件来将需求导入到项目中。
导入完成后,上传 CSV 文件的用户将被设置为已导入需求的作者。
导入文件
在导入文件之前:
- 考虑先导入一个仅包含少量需求的测试文件。如果不使用极狐GitLab API,则无法撤销大规模导入。
- 确保你的 CSV 文件符合文件格式要求。
要导入需求:
- 在项目中,前往 计划 > 需求。
- 对于已有需求的项目,在右上角,选择竖形省略号图标(),然后选择 导入需求()。
- 对于没有需求的项目,在页面中间,选择 导入 CSV。
- 选择文件然后选择 导入需求。
文件将在后台处理,导入完成后,系统会给你发送一封通知邮件。
导入的 CSV 文件格式
通过 CSV 文件导入需求时,文件必须遵循特定格式:
- 标题行:CSV 文件必须包含以下标题:title 和 description。这些标题不区分大小写。
- 列:除了 title 和 description 列之外,其他列中的数据不会被导入。
- 分隔符:列分隔符会根据标题行自动检测。支持的分隔符包括:逗号 (,)、分号 (;) 和制表符 (\t)。行分隔符可以是 CRLF 或 LF。
- 双引号字符:双引号 (") 字符用于引用字段,使得字段中可以使用列分隔符(参见下方示例 CSV 数据中的第三行)。要在引用的字段中插入双引号 ("),需连续使用两个双引号字符 ("")。
- 数据行:在标题行之下,后续行必须遵循相同的列顺序。标题文本是必需的,而描述是可选的,可以为空。
示例 CSV 数据:
plaintexttitle,description 我的需求标题,我的需求描述 另一个标题,"一个带有逗号的描述" "又一个标题","又一个描述"
文件大小
限制取决于极狐GitLab 实例的最大附件大小配置值。
对于 JihuLab.com,此限制设置为 10 MB。
导出需求为 CSV 文件
版本历史
- 在极狐GitLab 17.7 中,最低用户角色从报告者改为计划者。
你可以将极狐GitLab 需求导出为 CSV 文件,该文件会作为附件发送到你默认的通知邮箱。
通过导出需求,你和你的团队可以将其导入到其他工具中,或与客户共享。导出需求有助于与上级系统进行协作,并完成审计和法规合规任务。
前提条件:
- 你必须具备计划者、报告者、开发者、维护者或所有者角色。
要导出需求:
-
在项目中,前往 计划 > 需求。
-
在右上角,选择竖形省略号图标(
),然后选择 导出为 CSV()。出现确认对话框。
-
在 高级导出选项 下,选择要导出的字段。
默认情况下所有字段均被选中。要排除某个字段不被导出,请清除其旁边的复选框。
-
选择 导出需求。导出的 CSV 文件会发送到与你账户关联的电子邮件地址。
导出的 CSV 文件格式
你可以在电子表格编辑器(如 Microsoft Excel、OpenOffice Calc 或 Google Sheets)中预览导出的 CSV 文件。
导出的 CSV 文件包含以下标题:
- 需求 ID
- 标题
- 描述
- 作者
- 作者用户名
- 创建于 (UTC)
- 状态
- 状态更新于 (UTC)