Jump to Mattermost channel from GitLab issue
Resources
UX @pedroms | BE ?? | FE: @nmrony
Part of
https://gitlab.com/gitlab-org/gitlab-ce/issues/27513
Dependencies
- #23964 (closed) Link GitLab group to Mattermost team
Problem
As part of rounding out I2P (https://gitlab.com/gitlab-org/gitlab-ce/issues/25986), we want to enable people to collaborate on issues in chat (in addition to Gitlab itself).
- Just like we sometimes need a scratchpad for our ideas, having a less formal and less structured conversation is often preferred in early stages of I2P.
- Even later when an issue is being worked on in it's various stages, people will have convos on chat (often being synchronous), and then can add the discussion results back to the issue comment thread. We do that within GitLab also, and often link to the Slack conversations in the issues too.
- How do we reduce the friction between chat and GitLab issues, and therefore, continue to build on seamless collaboration?
Solution, design, and scope
- For this first iteration, we will focus on Mattermost first.
- Assume that Mattermost and GitLab are already configured together.
- The UI for this issue is only shown if Mattermost and GitLab are configured together. If they are not, the UI is not shown.
- The UI should indicate that you are jumping to Mattermost explicitly. (Not just a generic chat. In the future, as we expand to Slack, it will be specific to Slack.)
- Jump to the relevant Mattermost channel by a simple interaction within the GitLab issue.
- There is a one-to-one mapping between unique GitLab issues and unique Mattermost channels.
- When the Mattermost channel is created, a name will be created automatically, that is guaranteed to be unique.
- When a Mattermost user changes the name of the channel in question, this will not break any linkages. That is, the next Mattermost user who jumps from the issue, will jump to the right channel. (I.e. the name of the channel should not be used as a foreign key.)
- The user who makes the jump from the GitLab issue triggers Mattermost to create the channel and send the user to the channel. Subsequent jumps from the same Mattermost user or other Mattermost users will not create another channel. They will just be sent to that channel.
- If the Mattermost channel is deleted, the next jump will create a new channel.
- If the GitLab issue is deleted, the Mattermost channel remains.
- If the user is not properly authenticated in Mattermost, they just get an error page / message.
Out of scope
- Slack integration is out of scope.