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