Skip to content

Add Note.url field to GraphQL

Alex Kalderimis requested to merge ajk-add-url-to-note-type into master

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

Availability and Testing

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

Merge request reports