View real-time updates of assignee in issue sidebar
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.
Problem
Objects within the sidebar often became stale as other folks are interacting with issues simultaneously. Everyone looking at a given sidebar should all see the same information when the underlying data changes without having to refresh the page.
Proposal
-
View assignees in real-time.
Resources
FE @psimyn
Blocked by: #20718 (closed), #20829 (closed), #31916 (closed), and #31919 (closed)
Tasks
-
Update workhorse to proxy ActionCable path gitlab-workhorse!454 (merged) -
Update GDK to setup config/cable.yml
gitlab-development-kit!1084 (merged) -
Update GDK to start ActionCable Puma server gitlab-development-kit!1121 (merged) -
Update omnibus to setup config/cable.yml
omnibus-gitlab!4066 (merged) -
Update test setup to work with ActionCable !25782 (merged) -
Backend work to create ActionCable channels !30732 (merged) -
Frontend work to update sidebar !30239 (merged) -
Make number of ActionCable threads configurable !29725 (merged) -
Create ActionCable container images / charts for Kubernetes gitlab-com/gl-infra&228 (closed) (We'll use this for GitLab.com) -
Update omnibus to start ActionCable Puma server (This is for self-hosted) omnibus-gitlab!4204 (merged)
Feature flags
-
real_time_issue_sidebar
- When enabled, clients opening an issue page would connect to the ActionCable server and subscribe to the issue's channel -
broadcast_issue_updates
- When enabled, sends messages about issue updates to the issue's channel. When the other flag above is also enabled, the frontend would then fetch updates for the sidebar when this event is received.
Both need to be enabled for this feature to work. We just made it separate so we can test having clients connect without any actual traffic on the websockets.
Availability and Testing
Please let #quality
know when the feature flags are enabled on any environment so that we can monitor for any possible issues. Manual job package-and-qa
will need to be run in any MR that changes the status of the feature flags.
An end-to-end test is currently being added for this feature here: !44214 (merged)