2
2
* Copyright (c) Gitpod. All rights reserved.
3
3
*--------------------------------------------------------------------------------------------*/
4
4
5
- import * as vscode from 'vscode' ;
6
- import * as util from 'util' ;
7
- import * as grpc from '@grpc/grpc-js' ;
8
5
import { GitpodClient , GitpodServer , GitpodServiceImpl , WorkspaceInstanceUpdateListener } from '@gitpod/gitpod-protocol/lib/gitpod-service' ;
9
- import { PortServiceClient } from '@gitpod/supervisor-api-grpc/lib/port_grpc_pb' ;
10
- import { StatusServiceClient } from '@gitpod/supervisor-api-grpc/lib/status_grpc_pb' ;
6
+ import { User } from '@gitpod/gitpod-protocol/lib/protocol' ;
11
7
import { Team } from '@gitpod/gitpod-protocol/lib/teams-projects-protocol' ;
12
- import { NotificationServiceClient } from '@gitpod/supervisor-api-grpc/lib/notification_grpc_pb' ;
13
- import { TerminalServiceClient } from '@gitpod/supervisor-api-grpc/lib/terminal_grpc_pb' ;
14
- import { TokenServiceClient } from '@gitpod/supervisor-api-grpc/lib/token_grpc_pb' ;
15
8
import { PortVisibility } from '@gitpod/gitpod-protocol/lib/workspace-instance' ;
16
9
import { ControlServiceClient } from '@gitpod/supervisor-api-grpc/lib/control_grpc_pb' ;
10
+ import { ExposePortRequest } from '@gitpod/supervisor-api-grpc/lib/control_pb' ;
17
11
import { InfoServiceClient } from '@gitpod/supervisor-api-grpc/lib/info_grpc_pb' ;
18
- import * as uuid from 'uuid' ;
19
- import { CloseTunnelRequest , RetryAutoExposeRequest , TunnelPortRequest , TunnelVisiblity } from '@gitpod/supervisor-api-grpc/lib/port_pb' ;
20
12
import { DebugWorkspaceType , WorkspaceInfoRequest , WorkspaceInfoResponse } from '@gitpod/supervisor-api-grpc/lib/info_pb' ;
21
- import { User } from '@gitpod/gitpod-protocol/lib/protocol' ;
22
- import ReconnectingWebSocket from 'reconnecting-websocket' ;
23
- import { ILogService } from './logService' ;
24
- import { GitpodYml } from './gitpodYaml' ;
25
- import * as path from 'path' ;
13
+ import { NotificationServiceClient } from '@gitpod/supervisor-api-grpc/lib/notification_grpc_pb' ;
14
+ import { PortServiceClient } from '@gitpod/supervisor-api-grpc/lib/port_grpc_pb' ;
15
+ import { CloseTunnelRequest , RetryAutoExposeRequest , TunnelPortRequest , TunnelVisiblity } from '@gitpod/supervisor-api-grpc/lib/port_pb' ;
16
+ import { StatusServiceClient } from '@gitpod/supervisor-api-grpc/lib/status_grpc_pb' ;
17
+ import { PortsStatus , PortsStatusRequest , PortsStatusResponse } from '@gitpod/supervisor-api-grpc/lib/status_pb' ;
18
+ import { TerminalServiceClient } from '@gitpod/supervisor-api-grpc/lib/terminal_grpc_pb' ;
19
+ import { TokenServiceClient } from '@gitpod/supervisor-api-grpc/lib/token_grpc_pb' ;
26
20
import { GetTokenRequest } from '@gitpod/supervisor-api-grpc/lib/token_pb' ;
27
- import { PortsStatusRequest , PortsStatusResponse , PortsStatus } from '@gitpod/supervisor-api-grpc/lib/status_pb' ;
21
+ import * as grpc from '@grpc/grpc-js' ;
22
+ import * as path from 'path' ;
23
+ import ReconnectingWebSocket from 'reconnecting-websocket' ;
24
+ import * as util from 'util' ;
25
+ import * as uuid from 'uuid' ;
26
+ import * as vscode from 'vscode' ;
28
27
import { isGRPCErrorStatus } from './common/utils' ;
29
- import { ExposePortRequest } from '@gitpod/supervisor-api-grpc/lib/control_pb' ;
30
28
import { ExperimentalSettings } from './experiments' ;
31
- import { TelemetryService } from './telemetryService' ;
29
+ import { GitpodYml } from './gitpodYaml' ;
30
+ import { ILogService } from './logService' ;
31
+ import { TelemetryService , TelemetrySettings } from './telemetryService' ;
32
32
33
33
// Important:
34
34
// This class should performs all supervisor API calls used outside this module.
@@ -209,6 +209,7 @@ export class GitpodExtensionContext implements vscode.ExtensionContext {
209
209
readonly pendingWillCloseSocket : ( ( ) => Promise < void > ) [ ] ,
210
210
readonly info : WorkspaceInfoResponse . AsObject ,
211
211
readonly owner : Promise < User > ,
212
+ readonly userId : Promise < string > ,
212
213
readonly userTeams : Promise < Team [ ] > ,
213
214
readonly instanceListener : Promise < WorkspaceInstanceUpdateListener > ,
214
215
readonly workspaceOwned : Promise < boolean > ,
@@ -224,7 +225,17 @@ export class GitpodExtensionContext implements vscode.ExtensionContext {
224
225
225
226
const extensionId = context . extension . id ;
226
227
const packageJSON = context . extension . packageJSON ;
227
- this . telemetryService = new TelemetryService ( extensionId , packageJSON . version , packageJSON . segmentKey ) ;
228
+ const telemetrySettigns : TelemetrySettings = {
229
+ writeKey : packageJSON . segmentKey ,
230
+ // in dev mode we report to IDE lab source directly
231
+ host : 'https://api.segment.io' ,
232
+ path : '/v1/batch' ,
233
+ }
234
+ if ( telemetrySettigns . writeKey === "untrusted-dummy-key" ) {
235
+ telemetrySettigns . host = info . gitpodHost ;
236
+ telemetrySettigns . path = '/analytics' + telemetrySettigns . path ;
237
+ }
238
+ this . telemetryService = new TelemetryService ( extensionId , packageJSON . version , userId , telemetrySettigns , logger ) ;
228
239
}
229
240
230
241
get active ( ) {
0 commit comments