Skip to content

Update issue epic links in real-time

Matthias Käppler requested to merge 395184-rt-epic-updates into master

What does this MR do and why?

Issues can have an epic link that is visible in the sidebar. The state for this was previously fetched once when we mount the Vue component, which meant that if someone changes or removes the epic while the page is already loaded, this state could become stale.

This MR enables "live" updates for the epic link widget so that whenever someone changes the issue's epic elsewhere on the site, it will update immediately. This should work for Issues, when their epic is changed from one of the following places:

  • The issue sidebar
  • Via a slash command
  • By adding or removing it via the epic page

I am not sure if there are other places where issues can have their epic changed, so I'd appreciate reviewers to point this out to me.

Screenshots or screen recordings

Screencast_from_2023-03-16_16-04-45

How to set up and validate locally

  • Enable the real_time_issue_epic_links FF
  • Open two browser tabs with the single issue page
  • Change the epic in one (sidebar, slash commands should all work), it should update in the other tab

Safety

  • The change is guarded by the real_time_issue_epic_links FF, both in FE and BE
  • We already maintain a websocket connection on the issue and boards page, so this will be re-used. The new event will lead to a new PubSub channel being created in redis. There will also be an additional PubSub channel per each connection in order to transmit the results of the GQL query subscribed to this event.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #395184 (closed)

Edited by Matthias Käppler

Merge request reports