WIP: Real-time issue sidebar assignees using GraphQL subscriptions
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:
-
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 ofgdk.yml
so this doesn't get overriden on the next GDK update
- Checkout the branch in
-
Copy
config/cable.yml.example
toconfig/cable.yml
and change the redis URL to:unix:/path-to-your-gdk/redis/redis.socket
-
Restart GDK
-
Open an issue
-
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
-
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
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 Heinrich Lee Yu