Google Chat Integration - Support for Threaded Messages
Problem to solve
Messages produced by the Gitlab => GChat integration are each in their individual thread, which ends up in less information displayed on screen without scrolling
Release notes
Users of the Google Hangouts Chat integration rejoice! Thanks to our wonderful contributor, Chetan Sarva, notifications related to a single Issue or MR will now be organized into threads, reducing the noise and searching required to understand ongoing discussions.
New to the GitLab + Google Chat integration? Get started with our Google Chat integration documentation.
Proposal
Put messages that concern the same issue / Merge request / etc in a thread
This way, people can easily see how has a Merge requests / issues evolved over time even on a very active project.
Option A: Implementation details if we want threaded discussions like in GitLab
- When posting notes to Google Hangouts Chat, always pass the value of the
discussion_id
as the value of thethreadKey
attribute in thePOST
payload to Chat. This will enable Google Hangouts Chat to automatically thread notes without having to store any thread ID from Google. - See documentation below
Option B: Implementation details if we want threaded discussions by object type (Issue/MR)
- When posting notes to Google Hangouts Chat, always pass the value of the object
id
as the value of thethreadKey
attribute in thePOST
payload to Chat. This will enable Google Hangouts Chat to automatically attach all notes from a given object to the same thread.
Limitations
- Google's API seems to only support one thread ID so we could not thread by both object type and then thread by discussion within a given object's thread.
Links / references
- Previous feature request : gitlab-ce#43756
- Google chat documentation : https://developers.google.com/hangouts/chat/reference/rest/v1/spaces.messages/create.
- Source Code Location (Maybe):
Edited by Grant Hickman