Help us learn about your current experience with the documentation. Take the survey.

需求管理

  • 版本:Ultimate
  • 提供:GitLab.com、GitLab 自托管、GitLab 专用

通过需求,您可以设定标准来检查产品。这些标准可以基于用户、利益相关者、系统、软件,或任何您认为重要的内容。

需求是 GitLab 中的一种工件(artifact),描述了产品的特定行为。需求是长期存在的,除非手动清除,否则不会消失。

如果行业标准要求您的应用程序具有特定功能或行为,您可以创建需求来反映这一点。当某个功能不再需要时,您可以归档相关需求

有关概述,请参见需求管理

有关更深入的演示,请参见GitLab 需求可追溯性演示

requirements list view

创建需求

每个项目中都有一个分页的需求列表,您可以在其中创建新需求。

先决条件:

  • 您必须至少具有规划者(Planner)角色。

创建需求:

  1. 在项目中,转到 规划 > 需求
  2. 选择 新建需求
  3. 输入标题和描述,然后选择 新建需求

requirement create view

您可以在列表顶部看到新创建的需求,需求列表按创建日期降序排列。

查看需求

您可以通过从列表中选择需求来查看它。

requirement view

在查看需求时,要编辑它,请选择需求标题旁边的编辑图标( pencil )。

编辑需求

您可以从需求列表页面编辑需求。

先决条件:

  • 您必须至少具有规划者(Planner)角色,或者是需求的作者或被分配者。

编辑需求:

  1. 从需求列表中,选择编辑图标( pencil )。
  2. 在文本输入字段中更新标题和描述。您还可以通过使用已满足复选框在编辑表单中将需求标记为已满足。
  3. 选择保存更改

归档需求

您可以在打开选项卡中归档打开的需求。

先决条件:

  • 您必须至少具有规划者(Planner)角色,或者是需求的作者或被分配者。

要归档需求,请选择归档 archive )。

需求一旦被归档,就不再出现在打开选项卡中。

重新打开需求

您可以在已归档选项卡中查看已归档需求的列表。

先决条件:

  • 您必须至少具有规划者(Planner)角色,或者是需求的作者或被分配者。

archived requirements list

要重新打开已归档的需求,请选择重新打开

需求一旦被重新打开,就不再出现在已归档选项卡中。

搜索需求

您可以根据以下条件从需求列表页面搜索需求:

  • 标题
  • 作者的用户名
  • 状态(已满足、失败或缺失)

搜索需求:

  1. 在项目中,转到规划 > 需求 > 列表
  2. 选择搜索或筛选结果字段。会出现一个下拉列表。
  3. 从下拉列表中选择需求作者或状态,或输入纯文本按需求标题搜索。
  4. 按键盘上的 Enter 键筛选列表。

您还可以按以下方式对需求列表进行排序:

  • 创建日期
  • 更新日期

允许从 CI 作业满足需求

GitLab 现在支持需求测试报告。 您可以在 CI 管道中添加一个作业,当触发时,将所有现有需求标记为已满足(您可以在编辑表单中手动满足需求编辑需求)。

将手动作业添加到 CI

要配置您的 CI 以在手动作业触发时将需求标记为已满足,请将以下代码添加到您的 .gitlab-ci.yml 文件中。

requirements_confirmation:
  when: manual
  allow_failure: false
  script:
    - mkdir tmp
    - echo "{\"*\":\"passed\"}" > tmp/requirements.json
  artifacts:
    reports:
      requirements: tmp/requirements.json

此定义向 CI 管道添加了一个手动触发的(when: manual)作业。它是阻塞的(allow_failure: false),但您使用什么条件来触发 CI 作业取决于您。此外,您可以使用任何现有的 CI 作业将所有需求标记为已满足,只要 requirements.json 工件由 CI 作业生成并上传即可。

当您手动触发此作业时,包含 {"*":"passed"}requirements.json 文件会作为工件上传到服务器。在服务器端,检查需求报告中的"全部通过"记录({"*":"passed"}),成功后,会将所有现有的打开需求标记为已满足。

指定单个需求

可以指定单个需求及其状态。

如果存在以下需求:

  • REQ-1(IID 为 1
  • REQ-2(IID 为 2
  • REQ-3(IID 为 3

可以指定第一个需求通过,第二个失败。有效值为"passed"和"failed"。 通过省略需求 IID(在这种情况下是 REQ-3 的 IID 3),不会记录任何结果。

requirements_confirmation:
  when: manual
  allow_failure: false
  script:
    - mkdir tmp
    - echo "{\"1\":\"passed\", \"2\":\"failed\"}" > tmp/requirements.json
  artifacts:
    reports:
      requirements: tmp/requirements.json

条件性地将手动作业添加到 CI

要配置您的 CI 仅在存在一些打开需求时包含手动作业,请添加一个检查 CI_HAS_OPEN_REQUIREMENTS CI/CD 变量的规则。

requirements_confirmation:
  rules:
    - if: '$CI_HAS_OPEN_REQUIREMENTS == "true"'
      when: manual
    - when: never
  allow_failure: false
  script:
    - mkdir tmp
    - echo "{\"*\":\"passed\"}" > tmp/requirements.json
  artifacts:
    reports:
      requirements: tmp/requirements.json

由于需求和测试用例正在迁移到工作项,如果您在项目中启用了工作项,必须将之前配置中的 requirements 替换为 requirements_v2

      requirements_v2: tmp/requirements.json

从 CSV 文件导入需求

您必须至少具有规划者(Planner)角色。

您可以通过上传包含 titledescription 列的CSV 文件将需求导入项目。

导入后,上传 CSV 文件的用户将被设置为导入需求的作者。

导入文件

在导入文件之前:

  • 考虑导入一个只包含几个需求的测试文件。如果不使用 GitLab API,无法撤销大量导入。
  • 确保您的 CSV 文件符合文件格式要求。

导入需求:

  1. 在项目中,转到规划 > 需求
    • 对于有需求的项目,在右上角选择垂直省略号( ellipsis_v ),然后选择导入需求 import )。
    • 对于没有需求的项目,在页面中间选择导入 CSV
  2. 选择文件,然后选择导入需求

文件在后台处理,导入完成后会向您发送通知电子邮件。

导入的 CSV 文件格式

从 CSV 文件导入需求时,必须按特定格式:

  • 标题行:CSV 文件必须包含以下标题:titledescription。标题不区分大小写。
  • :除了 titledescription 之外的其他列数据不会被导入。
  • 分隔符:列分隔符从标题行自动检测。支持的分隔符字符:逗号(,)、分号(;)和制表符(\t)。行分隔符可以是 CRLFLF
  • 双引号字符:双引号(")字符用于引用字段,允许在字段中使用列分隔符(参见下面示例 CSV 数据的第三行)。要在引用字段中插入双引号("),连续使用两个双引号字符("")。
  • 数据行:标题行下方,后续行必须遵循相同的列顺序。标题文本是必需的,而描述是可选的,可以留空。

示例 CSV 数据:

title,description
My Requirement Title,My Requirement Description
Another Title,"A description, with a comma"
"One More Title","One More Description"

文件大小

限制取决于 GitLab 实例的 Max Attachment Size 配置值。

对于 GitLab.com,设置为 10 MB。

将需求导出到 CSV 文件

您可以将 GitLab 需求导出为CSV 文件,作为附件发送到您的默认通知电子邮件。

通过导出需求,您和您的团队可以将它们导入到其他工具中,或与客户共享。导出需求有助于与更高级别的系统协作,以及审计和合规性任务。

先决条件:

  • 您必须至少具有规划者(Planner)角色。

导出需求:

  1. 在项目中,转到规划 > 需求

  2. 在右上角选择垂直省略号( ellipsis_v ),然后选择导出为 CSV export )。

    出现确认模态框。

  3. 高级导出选项下,选择要导出的字段。

    默认情况下选择所有字段。要排除某个字段不被导出,清除其旁边的复选框。

  4. 选择导出需求。导出的 CSV 文件会发送到与您的用户关联的电子邮件地址。

导出的 CSV 文件格式

您可以在电子表格编辑器(如 Microsoft Excel、OpenOffice Calc 或 Google Sheets)中预览导出的 CSV 文件。

导出的 CSV 文件包含以下标题:

  • 需求 ID
  • 标题
  • 描述
  • 作者
  • 作者用户名
  • 创建时间(UTC)
  • 状态
  • 状态更新时间(UTC)