Skip to content

WIP: Real-time issue sidebar assignees using GraphQL subscriptions

Heinrich Lee Yu requested to merge 17589-realtime-assignees into master

What does this MR do?

Makes assignees in the issue sidebar update in real-time

This is still WIP and would need MRs in other repos, so to test locally:

  1. Switch workhorse in GDK to the proxy-actioncable-ws-route branch

    • Checkout the branch in path-to-your-gdk/gitlab-workhorse/src/gitlab.com/gitlab-org/gitlab-workhorse
    • In the GDK root, do: make gitlab-workhorse-setup
    • You might want to add auto_update: false to the workhorse section of gdk.yml so this doesn't get overriden on the next GDK update
  2. Copy config/cable.yml.example to config/cable.yml and change the redis URL to: unix:/path-to-your-gdk/redis/redis.socket

  3. Restart GDK

  4. Open an issue

  5. When the issue is updated (in another tab or by another user), you should see a message (GraphQL result of assignees query) logged to the browser console.

TODOs:

  • Update workhorse to proxy ActionCable path gitlab-workhorse!454 (merged)
  • Update GDK to setup config/cable.yml
  • Update omnibus to setup config/cable.yml
  • Update test setup to work with ActionCable
  • Frontend work to update sidebar
  • Move behind a feature flag
  • Make number of ActionCable threads configurable
  • Increase DB / Redis connection pool

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

#17589 (closed)

Edited by Heinrich Lee Yu

Merge request reports