Allow self-managed instances to rename the GitLab for Slack app /gitlab slash command (to support multiple GitLab instances in one Slack workspace)
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=417971) - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=417971) </details> <!--IssueSummary end--> ## About Self-managed instances can create their own copy of the GitLab for Slack app, and use its `/gitlab` slash command feature ## Problem If a customer has more than one self-managed GitLab instance, they might want to issue slash commands against more than one GitLab instance, but out-of-the-box they can't, as the [GitLab for Slack app manifest](https://gitlab.com/gitlab-org/gitlab/-/blob/360661528807f35d64035e8d0c6bd8fd4d230beb/lib/slack/manifest.rb#L3) that we generate for an instance admin has hard-coded `/gitlab` as the slash command trigger name. Every GitLab instance will output manifests with the same slash command trigger name. ### Workaround A workaround is simply for customers to manually change this slash command trigger name to be unique per instance. They can do this when creating the GitLab for Slack app (during the **Edit Configurations** step [documented here](https://docs.gitlab.com/ee/user/admin_area/settings/slack_app.html#create-a-gitlab-for-slack-app)), or later in the Slack app admin https://slack.com/api/apps. They would just set the `features.slash_commands.command` value in the manifest to something different. ## Proposal We should let customers decide on the slash command for the Slack app. It would default to `/gitlab`. This would let them to, for example: 2. Create a Slack app with `/gitlab` as the slash command on their main GitLab instance 1. Create a Slack app with `/ops` as the slash command on their second `ops` GitLab instance. They could then use `/gitlab` slash command to control their main instance, and `/ops` slash command to control their second instance, from the one Slack workspace. ### Technical proposal 1. Add a new application setting called `slack_app_slash_command`, default `"/gitlab"`. 2. Update the GitLab for Slack app admin settings UI `/admin/application_settings/general` to allow editing it. 3. Change the [manifest](https://gitlab.com/gitlab-org/gitlab/-/blob/360661528807f35d64035e8d0c6bd8fd4d230beb/lib/slack/manifest.rb#L65) to refer to this setting.
issue