Update namespace.markdownPaths.autocompleteSourcesPath in GraphQL
With the namespace.markdownPaths.autocompleteSourcesPath field in GraphQL, we need to do the following to get the autocomplete paths for all attributes:
{
namespace(fullPath: "gitlab-org") {
markdownPaths {
labels: autocompleteSourcesPath(autocompleteType: LABELS, iid: "1")
members: autocompleteSourcesPath(autocompleteType: MEMBERS, iid: "1")
commands: autocompleteSourcesPath(autocompleteType: COMMANDS, iid: "1")
issues: autocompleteSourcesPath(autocompleteType: ISSUES, iid: "1")
mergeRequests: autocompleteSourcesPath(autocompleteType: MERGE_REQUESTS, iid: "1")
milestones: autocompleteSourcesPath(autocompleteType: MILESTONES, iid: "1")
wikis: autocompleteSourcesPath(autocompleteType: WIKIS, iid: "1")
contacts: autocompleteSourcesPath(autocompleteType: CONTACTS, iid: "1")
snippets: autocompleteSourcesPath(autocompleteType: SNIPPETS, iid: "1")
}
}
}
However, in the frontend we don't ask for each attribute individually but instead we create an object that contains all attributes:
{
"labels": "/flightjs/Flight/-/autocomplete_sources/labels?type=WorkItem&work_item_type_id=1",
"members": "/flightjs/Flight/-/autocomplete_sources/members?type=WorkItem&work_item_type_id=1",
"commands": "/flightjs/Flight/-/autocomplete_sources/commands?type=WorkItem&work_item_type_id=1",
"issues": "/flightjs/Flight/-/autocomplete_sources/issues?type=WorkItem&work_item_type_id=1",
"mergeRequests": "/flightjs/Flight/-/autocomplete_sources/merge_requests?type=WorkItem&work_item_type_id=1",
"epics": "/flightjs/Flight/-/autocomplete_sources/epics?type=WorkItem&work_item_type_id=1",
"milestones": "/flightjs/Flight/-/autocomplete_sources/milestones?type=WorkItem&work_item_type_id=1",
"iterations": "/flightjs/Flight/-/autocomplete_sources/iterations?type=WorkItem&work_item_type_id=1",
"vulnerabilities": "/flightjs/Flight/-/autocomplete_sources/vulnerabilities?type=WorkItem&work_item_type_id=1",
"wikis": "/flightjs/Flight/-/autocomplete_sources/wikis?type=WorkItem&work_item_type_id=1",
"contacts": "/flightjs/Flight/-/autocomplete_sources/contacts?type=WorkItem&work_item_type_id=1",
"snippets": "/flightjs/Flight/-/autocomplete_sources/snippets?type=WorkItem&work_item_type_id=1"
}
We should update the autocompleteSourcesPath field so it returns an object with all available fields. This means we will no longer need the autocompleteType argument.
namespace.markdownPaths.autocompleteSourcesPath also currently does not return epics, iterations, or vulnerabilities. The returned object should include these if available.
Acceptance criteria
-
namespace.markdownPaths.autocompleteSourcesPathreturns an object like the following:{ "labels": "/flightjs/Flight/-/autocomplete_sources/labels?type=WorkItem&work_item_type_id=1", "members": "/flightjs/Flight/-/autocomplete_sources/members?type=WorkItem&work_item_type_id=1", "commands": "/flightjs/Flight/-/autocomplete_sources/commands?type=WorkItem&work_item_type_id=1", "issues": "/flightjs/Flight/-/autocomplete_sources/issues?type=WorkItem&work_item_type_id=1", "mergeRequests": "/flightjs/Flight/-/autocomplete_sources/merge_requests?type=WorkItem&work_item_type_id=1", "epics": "/flightjs/Flight/-/autocomplete_sources/epics?type=WorkItem&work_item_type_id=1", "milestones": "/flightjs/Flight/-/autocomplete_sources/milestones?type=WorkItem&work_item_type_id=1", "iterations": "/flightjs/Flight/-/autocomplete_sources/iterations?type=WorkItem&work_item_type_id=1", "vulnerabilities": "/flightjs/Flight/-/autocomplete_sources/vulnerabilities?type=WorkItem&work_item_type_id=1", "wikis": "/flightjs/Flight/-/autocomplete_sources/wikis?type=WorkItem&work_item_type_id=1", "contacts": "/flightjs/Flight/-/autocomplete_sources/contacts?type=WorkItem&work_item_type_id=1", "snippets": "/flightjs/Flight/-/autocomplete_sources/snippets?type=WorkItem&work_item_type_id=1" } -
The returned object excludes attributes that are not applicable. For example, contacts, snippets, and wikis don't exist at the group level I believe so should not be returned for group namespaces, and epics and iterations (and vulnerabilities?) are EE features so should only be returned if those licensed features are available. -
Also, the workItemTypeIdparameter does not seem to work. Passing anworkItemTypeIdargument should work. (e.g.autocompleteSourcesPath(autocompleteType:LABELS, iid:"1", workItemTypeId:"gid://gitlab/WorkItems::Type/1"))
Edited by Coung Ngo