Migrate legacy Slack Notifications integration settings to Slack App integration
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
About
After &8670 (closed) the Slack Application integration has the notifications capability of the separate Slack Notifications integration.
The old Slack Notifications integration will be deprecated in #372411 (closed) and eventually, we are likely to want to remove it altogether.
Proposal
To make it simple for users of existing Slack Notifications integration to migrate to the Slack App integration, we want to allow them to automatically migrate their existing settings to the Slack Application integration (SaaS-only users until &1211 (closed)).
Users will always need to manually initiate this migration because part of it involves authorizing the Slack App.
The UX flow for this feature is:
- Display buttons to allow users to migrate the settings in their active Slack Notifications integration to the Slack App integration:
- On the integrations index page (see design #335673[Frame_41.png])
- On the Slack Notifications integration page (see design #335673[Frame_17.png]).
- Migration would initiate the existing Slack App integration install/reinstall flow (see design #335673[Frame_21.png]).
- When the flow completes the Slack Notifications integration settings would be brought across to the Slack App integration (see design #335673[Frame_24.png]), and the old Slack Notifications integration would be disabled.
Once the GitLab for Slack app integration is enabled at group and instance-level #391526 (closed), this migration would need to work at group and instance-level also: For example, the settings from a group-level Slack notifications integration could be copied across to a group-level GitLab for Slack app integration, and similar for instance-level.
If the project/group/instance already has a Slack App integration created, we would warn them that doing the migration will override the notification settings of the Slack App integration:
- In the notice that displays the migration buttons (see design #335673[Frame_28.png])
- As a modal that displays after clicking the button to confirm they understand (see design #335673[Frame_43.png])
Initial technical thoughts
The backend will be able do the migration by copying the notifications settings from a Slack Notifications integration to a Slack App integration. We can create a new Slack App integration, or update an existing one. We can then deactivate the old Slack Notifications integration for the project.
Something to resolve is how to pass a message from the beginning of the Slack App installation flow to the end to signal that settings from a Slack Notifications integration should be copied to the Slack App integration.
We need to test the scenario that instance or group-level migrations propagate down to project-level after #391526 (closed).
Perhaps the simplest way is regardless of whether the "migrate" button was clicked or not, always check if there is an active Slack Notifications integration for the project in the final step of the creation of a Slack App integration, and if so, we always copy the settings across and display a flash notification to say we've done this, and always disable the active Slack Notifications integration. This means we would migrate them even if they had not clicked the "migrate" button. However, it probably makes sense to always do this anyway, as they would not want both active integrations, and "forcing" the migration is probably fine and sensible.
Designs
-
🖼️ Flow: User only has Slack notifications enabled -
🖼️ Flow: User has Slack notifications and theGitLab for Slack app enabled -
✏️ Figma source project
Availability & Testing
Suggestion:
- feature specs around the migration flow cases. (stubbing out slack auth)
- add slack notification tests at the e2e layer.