Codespaces

Proposal

This will add support for codespaces-like IDEs as well as the built-in GitLab IDE. The reason I am keeping the built-in IDE in is because some people may want a fast, lightweight, development environment. Here are the criteria:

IDE Criteria

  • Spawn a dev environment with the click of a button (in a repo, like the vscode button).
  • This will run in a Docker container on a Docker runner.
  • This will be available in Free, Premium, and Ultimate versions of GitLab.
  • This will automatically clone the repo and provide full access to a Docker container.
  • This will use Eclipse Theia, Code Server, or OpenVSCode Server.
  • Running this IDE will count as CI minutes, as it is on a runner.
  • The IDE will have a limited amount of power and certain processes will be killed if they take too long.
  • The IDE will have it's modified content saved (stuff that's in the /workspace directory) and it will be shut down if it has been closed for too long.
  • The IDE will be able to be re-opened with it's previous content after it is closed by inactivity.
  • Allowing people to use IDEs will be configured (including enabling/disabling IDEs) in the gitlab.rb config and in the admin settings panel.

Merge Requests

I will be working on a merge request for this, but other contributions are welcome. My merge request will probably be created tomorrow. I will be updating this issue as it progresses.

Relevant issues:

Edited by RedstoneWizard08