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

Issue Types (已弃用)

我们已弃用 Issue Types,转而使用 Work Items and Work Item Types

有时,当添加新的资源类型时,不清楚它应该只是 Issue(Issue Type)的"扩展",还是应该是一个新的顶级资源类型(类似于 issue、epic、merge request、snippet)。

Issue Types 的概念最初在 这个 issue 中首次提出,此后其用法被讨论过几次,例如在 incident management 中。

什么是 Issue Type

Issue Type 是一种资源类型,它扩展了现有的 Issue 类型,可以在任何使用 Issue 的地方使用 - 例如在列出或搜索 issues 时,或者从 Epics 链接该类型的对象时。它应该使用相同的 issues 表,额外的字段可以存储在单独的表中。

何时应使用 Issue Type

  • 当新类型仅向基本 Issue 类型添加新字段而不删除现有字段时(但如果基本 Issue 类型的某些字段在用户界面/API 中隐藏是可以的)。
  • 当新类型可以在任何使用基本 Issue 类型的地方使用时。

何时应使用顶级资源类型

  • 当为新资源使用单独的模型和表时。

  • 当需要删除基本 Issue 类型的某些字段时 - 在 UI 中隐藏是可以的,但不能完全删除。

  • 当新资源不能替代基本 Issue 类型使用时,例如:

    • 你不能将其添加到 epic 中。
    • 你不能从 commit 或 merge request 关闭它。
    • 你不能将其标记为与另一个 issue 相关。

如果无法使用 Issue type,你仍然可以定义一个顶级类型,然后包含诸如 IssuableNoteable 等关注点,以重用我们所有与 issue 相关的资源共有的功能。但你仍然需要定义用于处理新资源的接口,并更新一些其他组件以使它们与新类型一起工作。

使用 Issue type 会限制该类型可用的字段、功能或两者。但是,此功能是默认提供的。