馃敩 Work Items - Relationship to DevOps Artifacts
## Summary
- **Target personas:** Sasha, Parker, Rachel
- **Feature description:** Work items capture the details for features, ideas, maintenance, and future software development efforts. By enabling developers to associate development artifacts with work items, we provide traceability and connectivity between the software development lifecycle's planning, implementation, release, and monitoring phases.
- **Value:** Sasha can associate code changes (MRs) to work items (ex: Tasks). Parker will have visibility into development progress, and Rachel will have traceability for all changes going into a release.
## Problem To solve
- To migrate issues to the work item architecture, we need to support linking DevOps artifacts to Work Items.
- There are several problems with the existing implementation of linking MRs to Issues.
- You cannot unlink an MR from an Issue if the link was created on accident.
- There is no way to differentiate between MRs that implement an issue vs. MRs that just mention an issue during the course of normal sync conversations within an MR. (More context here: https://gitlab.com/gitlab-org/gitlab/-/issues/353614)
## Known relationships
Non-Work Items:
- Merge Requests
- Branches
- Commits?
- Vulnerabilities
- Alerts
- Feature Flags
## Proposal - MRs/Branches
- Merge Requests and Branches can be created from within a work item.
- Add a new relationship type for MR \<\> Work Item ( https://gitlab.com/gitlab-org/gitlab/-/issues/353614+) in addition to maintaining the ability to relate an MR to a work item loosely.
- If a work item is referenced in an MR description, branch name, or commit message using the appropriate syntax, create a "hard" relationship to the referenced work item.
- Existing MRs can be related to work items from within the work item detail view.
- Existing relationships between MRs and Work Items can be removed at any point from within the work item detail view.
- "hard" relationships show up in the "development" widget. Loose relationships show up in the linked items widget.
- All actions than can be taken in the UI can also be taken via quick actions (and vice-versa).
## Proposal - Vulnerabilities, Alerts, and Feature Flags
- Can be added/removed to the Linked Items widget.
## UX
https://gitlab.com/gitlab-org/gitlab/-/issues/427975+
## Implementation Path
:exclamation: = necessary for relative parity with the legacy issues experience
- :exclamation: MVC1: https://gitlab.com/gitlab-org/gitlab/-/issues/440851+s
- MVCs -- https://gitlab.com/groups/gitlab-org/-/epics/7081+s:
- :exclamation: https://gitlab.com/gitlab-org/gitlab/-/issues/477785+s
- https://gitlab.com/gitlab-org/gitlab/-/issues/477537+s
- https://gitlab.com/gitlab-org/gitlab/-/issues/477539+s
- :exclamation: https://gitlab.com/gitlab-org/gitlab/-/issues/477532+s
- :exclamation: https://gitlab.com/gitlab-org/gitlab/-/issues/477531+s
- https://gitlab.com/gitlab-org/gitlab/-/issues/477527+s
- MVCs -- https://gitlab.com/groups/gitlab-org/-/epics/7085+s:
- :exclamation: https://gitlab.com/gitlab-org/gitlab/-/issues/477534+s
- :exclamation: https://gitlab.com/gitlab-org/gitlab/-/issues/478074+s
- https://gitlab.com/gitlab-org/gitlab/-/issues/477535+s
- https://gitlab.com/gitlab-org/gitlab/-/issues/477538+s
- https://gitlab.com/gitlab-org/gitlab/-/issues/477536+s
- MVCs - Display referenced (not closing syntax) in the Linked Items widget:
- :exclamation: https://gitlab.com/groups/gitlab-org/-/epics/7080+s
- Remove a loosely referenced MR from the Linked Items widget.
- MVCs - Feature flags:
- :exclamation: https://gitlab.com/gitlab-org/gitlab/-/issues/477542+s
- https://gitlab.com/gitlab-org/gitlab/-/issues/477544+s
- MVC12: Display related Vulnerabilities in the Linked Items widget.
epic