Investigation: Settings Sync in Workspace VSCode
Description
To support the best extension marketplace experience for end-users, let's implement settings sync for the Workspace VSCode editor.
-
✅ We can use the Setting Sync BE that should already be setup in the monolith -
✅ We need to somehow associate the workspace with a GitLab user account. Looks this might already be happening with the PAT generated for a workspace. -
🤔 We need to seamlessly create a VSCode User Account associated with the PAT for the settings sync. This might require some changes to the VSCode fork. Maybe there's actually just something we can initialize on the Workspace file system which VSCode already knows how to pick up🤔
Investigation outcome
updated on 2024-02-08 We implemented a proof of concept that demonstrates Settings Sync can be enabled in Workspaces by fulfilling the following requirements:
- Set up Settings Sync API endpoints in the VSCode Server. The API endpoints has been implemented in the GitLab application.
- Create a VSCode extension that exposes a GitLab authentication token with API scope. VSCode will use this authentication token to sign HTTP requests to the Settings Sync API endpoints.
- Install the VSCode extension from the previous point using the tools injector.
UX considerations
We've explored many UX concerns during this investigation. You can read the outcomes in the following threads:
Implementation steps
We've created the following implementation issues based on the investigation outcomes:
Edited by Enrique Alcántara