Add link paths for release progress view to GraphQL
What does this MR do?
Adds 5 new fields to the Release
GraphQL type:
openMergeRequestsUrl
mergedMergeRequestsUrl
closedMergeRequestsUrl
openIssuesUrl
closedIssuesUrl
These URLs will be used to link the user from the release progress view to the issue and merge request search pages:
Currently the numbers render as plain text; once the frontend begins requesting these fields, the numbers will be rendered as links as shown in the screenshot above.
What doesn't this MR do?
This MR does not add these properties to the Release REST API. These links will be added in a separate MR.
Example query/response
Query:
{
project(fullPath: "root/release-test") {
release(tagName: "v5.10") {
links {
openIssuesUrl
closedIssuesUrl
openMergeRequestsUrl
mergedMergeRequestsUrl
closedMergeRequestsUrl
# These fields are now deprecated
issuesUrl
mergeRequestsUrl
}
}
}
}
Response:
{
"data": {
"project": {
"release": {
"links": {
"openIssuesUrl": "http://0.0.0.0:3000/root/release-test/-/issues?release_tag=v5.10&scope=all&state=opened",
"closedIssuesUrl": "http://0.0.0.0:3000/root/release-test/-/issues?release_tag=v5.10&scope=all&state=closed",
"openMergeRequestsUrl": "http://0.0.0.0:3000/root/release-test/-/merge_requests?release_tag=v5.10&scope=all&state=opened",
"mergedMergeRequestsUrl": "http://0.0.0.0:3000/root/release-test/-/merge_requests?release_tag=v5.10&scope=all&state=merged",
"closedMergeRequestsUrl": "http://0.0.0.0:3000/root/release-test/-/merge_requests?release_tag=v5.10&scope=all&state=closed",
"issuesUrl": "http://0.0.0.0:3000/root/release-test/-/issues?release_tag=v5.10&scope=all&state=opened",
"mergeRequestsUrl": "http://0.0.0.0:3000/root/release-test/-/merge_requests?release_tag=v5.10&scope=all&state=opened"
}
}
}
}
}
Feature flag
These URLs are only available if the release_mr_issue_urls
feature flag is enabled. This is an existing flag, so it is already defaulted to on.
Related to #205349 (closed)
Edited by Nathan Friend