@@ -897,7 +897,7 @@ export class WorkspaceStarter {
897
897
// TODO(se): we cannot change this initializer structure now because it is part of how baserefs are computed in image-builder.
898
898
// Image builds should however just use the initialization if the workspace they are running for (i.e. the one from above).
899
899
checkoutLocation = "." ;
900
- const { initializer, disposable } = await this . createCommitInitializer (
900
+ const { initializer } = await this . createCommitInitializer (
901
901
{ span } ,
902
902
workspace ,
903
903
{
@@ -908,7 +908,6 @@ export class WorkspaceStarter {
908
908
} ,
909
909
user ,
910
910
) ;
911
- disp . push ( disposable ) ;
912
911
let git : GitInitializer ;
913
912
if ( initializer instanceof CompositeInitializer ) {
914
913
// we use the first git initializer for image builds only
@@ -1189,23 +1188,7 @@ export class WorkspaceStarter {
1189
1188
allEnvVars = allEnvVars . concat ( context . envvars ) ;
1190
1189
}
1191
1190
1192
- // we copy the envvars to a stable format so that things don't break when someone changes the
1193
- // EnvVarWithValue shape. The JSON.stringify(envvars) will be consumed by supervisor and we
1194
- // need to make sure we're speaking the same language.
1195
- const stableEnvvars = allEnvVars . map ( ( e ) => {
1196
- return { name : e . name , value : e . value } ;
1197
- } ) ;
1198
-
1199
- // we ship the user-specific env vars as OTS because they might contain secrets
1200
- const envvarOTSExpirationTime = new Date ( ) ;
1201
- envvarOTSExpirationTime . setMinutes ( envvarOTSExpirationTime . getMinutes ( ) + 30 ) ;
1202
- const envvarOTS = await this . otsServer . serve ( traceCtx , JSON . stringify ( stableEnvvars ) , envvarOTSExpirationTime ) ;
1203
-
1204
1191
const envvars : EnvironmentVariable [ ] = [ ] ;
1205
- const ev = new EnvironmentVariable ( ) ;
1206
- ev . setName ( "SUPERVISOR_ENVVAR_OTS" ) ;
1207
- ev . setValue ( envvarOTS . token ) ;
1208
- envvars . push ( ev ) ;
1209
1192
1210
1193
// TODO(cw): for the time being we're still pushing the env vars as we did before.
1211
1194
// Once everything is running with the latest supervisor, we can stop doing that.
@@ -1272,19 +1255,15 @@ export class WorkspaceStarter {
1272
1255
} ;
1273
1256
await this . userDB . trace ( traceCtx ) . storeGitpodToken ( dbToken ) ;
1274
1257
1275
- const otsExpirationTime = new Date ( ) ;
1276
- otsExpirationTime . setMinutes ( otsExpirationTime . getMinutes ( ) + 30 ) ;
1277
1258
const tokenExpirationTime = new Date ( ) ;
1278
1259
tokenExpirationTime . setMinutes ( tokenExpirationTime . getMinutes ( ) + 24 * 60 ) ;
1279
- const ots = await this . otsServer . serve ( traceCtx , token , otsExpirationTime ) ;
1280
1260
1281
1261
const ev = new EnvironmentVariable ( ) ;
1282
1262
ev . setName ( "THEIA_SUPERVISOR_TOKENS" ) ;
1283
1263
ev . setValue (
1284
1264
JSON . stringify ( [
1285
1265
{
1286
- tokenOTS : ots . token ,
1287
- token : "ots" ,
1266
+ token : token ,
1288
1267
kind : "gitpod" ,
1289
1268
host : this . config . hostUrl . url . host ,
1290
1269
scope : scopes ,
@@ -1560,8 +1539,7 @@ export class WorkspaceStarter {
1560
1539
} else if ( WorkspaceProbeContext . is ( context ) ) {
1561
1540
// workspace probes have no workspace initializer as they need no content
1562
1541
} else if ( CommitContext . is ( context ) ) {
1563
- const { initializer, disposable } = await this . createCommitInitializer ( traceCtx , workspace , context , user ) ;
1564
- disp . push ( disposable ) ;
1542
+ const { initializer } = await this . createCommitInitializer ( traceCtx , workspace , context , user ) ;
1565
1543
if ( initializer instanceof CompositeInitializer ) {
1566
1544
result . setComposite ( initializer ) ;
1567
1545
} else {
@@ -1613,7 +1591,7 @@ export class WorkspaceStarter {
1613
1591
workspace : Workspace ,
1614
1592
context : CommitContext ,
1615
1593
user : User ,
1616
- ) : Promise < { initializer : GitInitializer | CompositeInitializer ; disposable : Disposable } > {
1594
+ ) : Promise < { initializer : GitInitializer | CompositeInitializer } > {
1617
1595
const span = TraceContext . startSpan ( "createInitializerForCommit" , ctx ) ;
1618
1596
try {
1619
1597
const mainGit = this . createGitInitializer ( { span } , workspace , context , user ) ;
@@ -1626,16 +1604,13 @@ export class WorkspaceStarter {
1626
1604
}
1627
1605
const inits = await Promise . all ( subRepoInitializers ) ;
1628
1606
const compositeInit = new CompositeInitializer ( ) ;
1629
- const compositeDisposable = new DisposableCollection ( ) ;
1630
1607
for ( const r of inits ) {
1631
1608
const wsinit = new WorkspaceInitializer ( ) ;
1632
1609
wsinit . setGit ( r . initializer ) ;
1633
1610
compositeInit . addInitializer ( wsinit ) ;
1634
- compositeDisposable . push ( r . disposable ) ;
1635
1611
}
1636
1612
return {
1637
1613
initializer : compositeInit ,
1638
- disposable : compositeDisposable ,
1639
1614
} ;
1640
1615
} catch ( e ) {
1641
1616
TraceContext . setError ( { span } , e ) ;
@@ -1650,7 +1625,7 @@ export class WorkspaceStarter {
1650
1625
workspace : Workspace ,
1651
1626
context : GitCheckoutInfo ,
1652
1627
user : User ,
1653
- ) : Promise < { initializer : GitInitializer ; disposable : Disposable } > {
1628
+ ) : Promise < { initializer : GitInitializer } > {
1654
1629
const host = context . repository . host ;
1655
1630
const hostContext = this . hostContextProvider . get ( host ) ;
1656
1631
if ( ! hostContext ) {
@@ -1662,25 +1637,6 @@ export class WorkspaceStarter {
1662
1637
throw new Error ( "User is unauthorized!" ) ;
1663
1638
}
1664
1639
1665
- const tokenExpirationTime = new Date ( ) ;
1666
- tokenExpirationTime . setMinutes ( tokenExpirationTime . getMinutes ( ) + 30 ) ;
1667
- let tokenOTS : string | undefined ;
1668
- let disposable : Disposable | undefined ;
1669
- try {
1670
- const token = await this . tokenProvider . getTokenForHost ( user , host ) ;
1671
- const username = token . username || "oauth2" ;
1672
- const res = await this . otsServer . serve ( traceCtx , `${ username } :${ token . value } ` , tokenExpirationTime ) ;
1673
- tokenOTS = res . token ;
1674
- disposable = res . disposable ;
1675
- } catch ( error ) {
1676
- // no token
1677
- log . error (
1678
- { workspaceId : workspace . id , userId : workspace . ownerId } ,
1679
- "cannot authenticate user for Git initializer" ,
1680
- error ,
1681
- ) ;
1682
- throw new Error ( "User is unauthorized!" ) ;
1683
- }
1684
1640
const cloneUrl = context . repository . cloneUrl ;
1685
1641
1686
1642
var cloneTarget : string | undefined ;
@@ -1701,9 +1657,13 @@ export class WorkspaceStarter {
1701
1657
targetMode = CloneTargetMode . REMOTE_HEAD ;
1702
1658
}
1703
1659
1660
+ const gitToken = await this . tokenProvider . getTokenForHost ( user , host ) ;
1661
+ const username = gitToken . username || "oauth2" ;
1662
+
1704
1663
const gitConfig = new GitConfig ( ) ;
1705
- gitConfig . setAuthentication ( GitAuthMethod . BASIC_AUTH_OTS ) ;
1706
- gitConfig . setAuthOts ( tokenOTS ) ;
1664
+ gitConfig . setAuthentication ( GitAuthMethod . BASIC_AUTH ) ;
1665
+ gitConfig . setAuthUser ( username ) ;
1666
+ gitConfig . setAuthPassword ( gitToken . value ) ;
1707
1667
1708
1668
if ( this . config . insecureNoDomain ) {
1709
1669
const token = await this . tokenProvider . getTokenForHost ( user , host ) ;
@@ -1733,7 +1693,6 @@ export class WorkspaceStarter {
1733
1693
1734
1694
return {
1735
1695
initializer : result ,
1736
- disposable,
1737
1696
} ;
1738
1697
}
1739
1698
0 commit comments