Skip to content

Realtime assignees frontend first iteration

Scott Stern requested to merge ss/realtime-assignees into master

What does this MR do?

This is the frontend portion of #17589 (closed).

What still needs to be done on future iterations:

  • Abstract shared data into apollo cache. !30239 (comment 329662232)
  • Move to using an ApolloComponent instead of a renderless component.
  • Replace the assignees dropdown to use gitlab ui component when its ready to eliminate bugs from realtime updates.
  • Utilize Visibility API for when websocket is open in background tab so the websocket is closed.
  • On un-mount of the component kill the websocket subscription/connection. (using actionCable.subscriptions.remove)
  • If query will be used somewhere else, follow the following approach (!30239 (comment 330675081)), (dont need to do this until we convert assignees to vue)
  • warnining extra request Currently, we are making a PUT request on assignees update -> the store is updated -> websocket sends an updated -> then we make an apollo query request. In the future well need to guard against the second request and replace the put with a mutation.
  • Error handling when Query fails.

Warning: This should NOT be enabled until @engwan MR has been merged in !24346 (closed). Its also impossible to test this locally until thats merged in, unless you want to merge the 2 branches.

Screenshots

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 Coung Ngo

Merge request reports