Support Design Management links when adapting links in Markdown
Problem to solve
Sharing links to Designs is an important part of collaboration and how users can surface Designs to other issues. Currently, when sharing links GitLab doesn't recognize the new Designs tab or Design Uploads. This prevents discoverability and collaboration on designs for users.
Any users who use Markdown (issues/MRs descriptions, comments, MR reviews, etc.) and collaborate on designs with other users.
When users link to the Design tab or individual designs, the GitLab markdown processors don't filter the links properly. This makes it hard for users to share links and direct other users to the appropriate area.
The links pointing to the Design tab and individual Designs within Design Management are being filtered in this way:
Directly to Designs:
https://gitlab.com/gitlab-org/gitlab-ee/issues/12905#note_200916466 -> The tab is not focused.
To an Individual Design:
https://gitlab.com/gitlab-org/gitlab-ee/issues/12905#note_200916893 -> The app throws an error
Could not find design, please try again.
GitLab currently supports deep linking for other types of links, like the
Changes tab in Merge Requests:
The markdown issue filters should be updated to support links for Design Management. Adding a rule for the
issue_reference_filter.rb, we should be able to have something like:
Interaction with Todos
When a user is mentioned in an annotation of a design, they receive a Todo that mentions the individual design. We sure ensure that the same reference for the design is displayed here as when linking to the design in markdown.
What does success look like, and how can we measure that?
Pasting links to the designs in design management will not generate broken links in markdown.
This should be behind a feature flag, since it adds new queries to the GFM pipeline.
This feature flag is:
The following documentation needs to be updated:
- document new feature flag, explaining what it does and how to configure it
- document the new reference type, explaining where it can be used