Slack application integration for self-managed instances
Problem to solve
Our "slack application" app for Slack was limited to one host URL at the time of publication, so we decided to use it for gitlab.com only. Self-managed users were given the option of using "Slack slash commands" whereby they can create a custom slack app by manually configuring it.
With the introduction of "custom installs" we can now publish a self-managed version of our app (https://slack.com/apps/AH1QYSUF9), where users can simply specify the URL of their GitLab instance when installing and configure the app instance-wide via *admin>>settings>>integration>>slack application (currently only visible for gitlab.com).
This would give us consistency between self-managed and gitlab.com as well as allow us to eliminate "slack slash commands" options.
We will need to make the instance-level slack configuration available to all, so that users can plug in their "GitLab Self-Managed" app values (Client ID, Client Secret, and Verification Token)
We will need to make the "Slack Application" project-level integration available to self-managed instances and remove the "Slack slash commands" integration
Permissions and Security
What does success look like, and how can we measure that?
Links / references
We're currently returning the admin slack option only for gitlab.com and dev environments, see https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/views/admin/application_settings/_slack.html.haml#L1
We're returning the project level integration option (Slack application) only for gitlab.com and dev environments, see https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/models/ee/service.rb#L18
In the admin area, the settings between GitLab and Slack are mapped as follows:
|Verification Token||Verification Token|