Add Note.url field to GraphQL
What does this MR do?
Adds Note.url
field to NoteType
.
This can be computed client side, but that requires a lot of assumptions and logic to be present in the client. By exposing the URL directly, we make life easier for the client, and allow ourselves more freedom in the future.
Example Queries using this field:
query {
currentUser {
username
assignedMergeRequests(first: 5) {
count
nodes {
reference(full: true)
discussions {
nodes {
id
notes {
nodes {
author { username }
body
url
}
}
}
}
}
}
}
}
How things work at the moment:
In order to generate URLs for notes here at the moment, we would need to request MergeRequest.webURL
and then concatenate #note_{note.id}
on the end. This requires extracting the ID from the GID.
The assumptions in the client are:
- the makeup of the GID (which is meant to be opaque, and something we can change)
- the makeup of the URL (which we cannot change if the client needs to compose it from parts manually)
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team
Edited by Alex Kalderimis