@@ -10,7 +10,6 @@ import {
10
10
CommitInfo ,
11
11
PrebuiltWorkspace ,
12
12
Project ,
13
- ProjectEnvVar ,
14
13
StartPrebuildContext ,
15
14
StartPrebuildResult ,
16
15
TaskConfig ,
@@ -39,6 +38,7 @@ import { ResponseError } from "vscode-ws-jsonrpc";
39
38
import { ErrorCodes } from "@gitpod/gitpod-protocol/lib/messaging/error" ;
40
39
import { UserService } from "../../../src/user/user-service" ;
41
40
import { EntitlementService , MayStartWorkspaceResult } from "../../../src/billing/entitlement-service" ;
41
+ import { EnvVarService , ResolvedEnvVars } from "../../../src/workspace/env-var-service" ;
42
42
43
43
export class WorkspaceRunningError extends Error {
44
44
constructor ( msg : string , public instance : WorkspaceInstance ) {
@@ -67,6 +67,7 @@ export class PrebuildManager {
67
67
@inject ( UserService ) protected readonly userService : UserService ;
68
68
@inject ( TeamDB ) protected readonly teamDB : TeamDB ;
69
69
@inject ( EntitlementService ) protected readonly entitlementService : EntitlementService ;
70
+ @inject ( EnvVarService ) private readonly envVarService : EnvVarService ;
70
71
71
72
async abortPrebuildsForBranch ( ctx : TraceContext , project : Project , user : User , branch : string ) : Promise < void > {
72
73
const span = TraceContext . startSpan ( "abortPrebuildsForBranch" , ctx ) ;
@@ -221,8 +222,6 @@ export class PrebuildManager {
221
222
}
222
223
}
223
224
224
- const projectEnvVarsPromise = project ? this . projectService . getProjectEnvironmentVariables ( project . id ) : [ ] ;
225
-
226
225
let organizationId = ( await this . teamDB . findTeamById ( project . id ) ) ?. id ;
227
226
if ( ! user . additionalData ?. isMigratedToTeamOnlyAttribution ) {
228
227
// If the user is not migrated to team-only attribution, we retrieve the organization from the attribution logic.
@@ -238,6 +237,9 @@ export class PrebuildManager {
238
237
prebuildContext ,
239
238
context . normalizedContextURL ! ,
240
239
) ;
240
+
241
+ const envVarsPromise = this . resolveEvnVars ( workspace ) ;
242
+
241
243
const prebuild = await this . workspaceDB . trace ( { span } ) . findPrebuildByWorkspaceID ( workspace . id ) ! ;
242
244
if ( ! prebuild ) {
243
245
throw new Error ( `Failed to create a prebuild for: ${ context . normalizedContextURL } ` ) ;
@@ -281,8 +283,8 @@ export class PrebuildManager {
281
283
await this . workspaceDB . trace ( { span } ) . storePrebuiltWorkspace ( prebuild ) ;
282
284
} else {
283
285
span . setTag ( "starting" , true ) ;
284
- const projectEnvVars = await projectEnvVarsPromise ;
285
- await this . workspaceStarter . startWorkspace ( { span } , workspace , user , project , [ ] , projectEnvVars , {
286
+ const envVars = await envVarsPromise ;
287
+ await this . workspaceStarter . startWorkspace ( { span } , workspace , user , project , envVars , {
286
288
excludeFeatureFlags : [ "full_workspace_backup" ] ,
287
289
} ) ;
288
290
}
@@ -341,11 +343,8 @@ export class PrebuildManager {
341
343
if ( ! prebuild ) {
342
344
throw new Error ( "No prebuild found for workspace " + workspaceId ) ;
343
345
}
344
- let projectEnvVars : ProjectEnvVar [ ] = [ ] ;
345
- if ( workspace . projectId ) {
346
- projectEnvVars = await this . projectService . getProjectEnvironmentVariables ( workspace . projectId ) ;
347
- }
348
- await this . workspaceStarter . startWorkspace ( { span } , workspace , user , project , [ ] , projectEnvVars ) ;
346
+ const envVars = await this . resolveEvnVars ( workspace ) ;
347
+ await this . workspaceStarter . startWorkspace ( { span } , workspace , user , project , envVars ) ;
349
348
return { prebuildId : prebuild . id , wsid : workspace . id , done : false } ;
350
349
} catch ( err ) {
351
350
TraceContext . setError ( { span } , err ) ;
@@ -477,4 +476,12 @@ export class PrebuildManager {
477
476
span . finish ( ) ;
478
477
}
479
478
}
479
+
480
+ private resolveEvnVars ( workspace : Workspace ) : Promise < ResolvedEnvVars > {
481
+ return this . envVarService . resolve ( {
482
+ user : undefined , // no user specific in prebuild
483
+ workspace,
484
+ includeCensored : true ,
485
+ } ) ;
486
+ }
480
487
}
0 commit comments