Enable Slack (the company) to review a copy of our Slack app against a GitLab environment
About
When we submit our Slack app for review, Slack (the company) need to be able to test out the changes using a copy of the production app. This is mentioned here.
In order to do this, Slack will need to have access to a GitLab environment to test against.
When we submitted the Slack app for review after the GBP upgrade #356001 (closed) we were unable to give Slack the proper access to test a copy of our Slack app. We were told that next time we publish we'll need to have an environment they can test against:
[The reviewers] simply need to be able to click an install link that maps to your staging copy of the app client ID. And your application server needs to be running with a copy of your new code so that a token exchange can happen and the app installed in Slack. Any interactions or Request URLs also map to the staging application server rather than prod.
Problem
The Slack app that Slack (the company) use to review and test with cannot be the same app as the production app that we submit for review. I believe this is due to the production Slack app having only a single set of credentials, which always map to the published production app, not to a "pre-publish" review version of the app.
So we need to create a copy of the app for Slack to review and test.
GitLab.com is configured to only work with our production Slack app only (the version that is always currently published in the Slack marketplace). We cannot configure it to work with a second Slack app, or switch it to work with a second Slack app, without breaking our Slack app features for everyone who uses the production Slack app.
staging.gitlab is currently also configured to work with our published production Slack app too (although note that it doesn't actually function, as all Slash commands and Events are sent to production's API and not staging.)
Proposal
- Create a staging Slack app, enable public distribution so Slack (the company) can install it into their workspace.
- Submit a request for change to set staging's application settings to work with the staging Slack app (a related example of this is gitlab-com/gl-infra/production#7095 (closed)).
- Grant Slack (the company) a login to staging in order to test the features (note, I'm unsure if we allow external users access to staging, or what the process might be to be to add them - this will need to be checked).