Consider scenarios where project-less workspace might be beneficial
We discussed with @cwoolley-gitlab, and we tried to summarize where the project-less workspaces might be useful. ### Scenario 1: Open-source contributor wants to use GitLab RD feature to work on GitHub repository Cross-cutting concern - in both scenarios, we would have to solve how to inject GitHub secrets into the workspace (e.g. for pushing) - Scenario 1a) User is **not** required to have a GitLab project backing the workspace 1. Go to create workspace screen at **group/instance level** 2. Enter all required workspace information other than the devfile 3. _Enter the location of the devfile (e.g. `<https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/devfile.yaml>`)_ 4. _Enter the repository to clone (`https://github.com/nodeshift-starters/devfile-sample.git`)_ 5. Hit create - Scenario 1b) User **is required** to have a GitLab project backing the workspace 1. _Create a new GitLab project_ 2. _Make it a fork of GitHub project_ 3. _To keep the fork in sync, you have to set up [Repository mirroring | GitLab](https://docs.gitlab.com/ee/user/project/repository/mirror/index.html)_ 4. Go to the create workspace screen **under the project** 5. Enter all required workspace information other than the devfile 6. Hit create Italics show steps that are different in each scenario. ### Scenario 2: Enterprise where some groups don't host their repositories on GitLab (yet), but they want to automate workspace creation and management - Scenario 2a) User is **not** required to have a GitLab project backing the workspace 1. Main points that would have to be considered: 1. Creating allow list for the internally hosted devfile-project pair. This could be done by allowlisting locations or creating an additional entity (i.e. InternallyHostedDevfile) that only the Operator could create. - Scenario 2b) User **is required** to have a GitLab project backing the workspace 1. Operator would have to orchestrate the following (compared to the project that's already on the GitLab instance) 1. _Create a new GitLab project_ 2. _Make it a fork of GitHub project_ 3. _To keep the fork in sync, you have to set up [Repository mirroring | GitLab](https://docs.gitlab.com/ee/user/project/repository/mirror/index.html)_
issue