Issue types: User story, test case, requirement, vulnerability
Introduce issue types, so that we can independently build functionality in GitLab for each scenario, but still retain the baseline issue concept.
- User story: The default issue type. This is the default type of an issue when it is first created.
- Test case: To serve the needs of https://gitlab.com/gitlab-org/gitlab-ee/issues/8766.
- Requirement: To serve requirements management (some issues). Parent child issue relationships (&543) should be built with the use cases of requirements management in mind. In addition, requirements, unlike user stories, are long-lasting, that reflect the current business logic/functionality of a product. So requirements would de-emphasize the open/closed statuses of issues, because requirements shouldn't be closed. They are never "done".
- Vulnerability: To serve the needs of https://gitlab.com/gitlab-org/gitlab-ee/issues/8493.
The idea is that each issue type would extend the basic issue type (user story) with additional fields and logic in GitLab.