@@ -58,6 +58,14 @@ async def create_workspace(self, user: User, data: WorkspaceCreate) -> Workspace
5858 user_workspace_dir = (self ._base_dir / str (user .id )).resolve ()
5959 user_workspace_dir .mkdir (parents = True , exist_ok = True )
6060
61+ # Desktop mode uses the host's native git credentials; token-based
62+ # auth is only needed inside Docker containers.
63+ github_token : str | None = (
64+ None
65+ if settings .DESKTOP_MODE
66+ else user_settings .github_personal_access_token
67+ )
68+
6169 if data .source_type == "git" :
6270 if not data .git_url :
6371 raise WorkspaceException (
@@ -69,7 +77,7 @@ async def create_workspace(self, user: User, data: WorkspaceCreate) -> Workspace
6977 workspace_path = await self ._clone_git_workspace (
7078 user_workspace_dir ,
7179 normalized_url ,
72- github_token = user_settings . github_personal_access_token ,
80+ github_token = github_token ,
7381 )
7482 source_url = normalized_url
7583 elif data .source_type == "local" :
@@ -97,7 +105,7 @@ async def create_workspace(self, user: User, data: WorkspaceCreate) -> Workspace
97105 resolved_provider = data .sandbox_provider or user_settings .sandbox_provider
98106 env_vars = SandboxService .build_env_vars (
99107 user_settings .custom_env_vars ,
100- user_settings . github_personal_access_token ,
108+ github_token ,
101109 )
102110 provider = SandboxProvider .create_provider (
103111 SandboxProviderType (resolved_provider ),
@@ -111,7 +119,7 @@ async def create_workspace(self, user: User, data: WorkspaceCreate) -> Workspace
111119
112120 await sandbox_service .initialize_sandbox (
113121 sandbox_id = sandbox_id ,
114- has_github_token = bool (user_settings . github_personal_access_token ),
122+ has_github_token = bool (github_token ),
115123 auto_compact_disabled = user_settings .auto_compact_disabled ,
116124 attribution_disabled = user_settings .attribution_disabled ,
117125 )
0 commit comments