@@ -29,6 +29,7 @@ import { getGitpodVersion, isFeatureSupported } from './featureSupport';
2929import SSHConfiguration from './ssh/sshConfig' ;
3030import { isWindows } from './common/platform' ;
3131import { untildify } from './common/files' ;
32+ import { ExperimentalSettings } from './experiments' ;
3233
3334interface SSHConnectionParams {
3435 workspaceId : string ;
@@ -118,7 +119,12 @@ export default class RemoteConnector extends Disposable {
118119
119120 private heartbeatManager : HeartbeatManager | undefined ;
120121
121- constructor ( private readonly context : vscode . ExtensionContext , private readonly logger : Log , private readonly telemetry : TelemetryReporter ) {
122+ constructor (
123+ private readonly context : vscode . ExtensionContext ,
124+ private readonly experiments : ExperimentalSettings ,
125+ private readonly logger : Log ,
126+ private readonly telemetry : TelemetryReporter
127+ ) {
122128 super ( ) ;
123129
124130 if ( isGitpodRemoteWindow ( context ) ) {
@@ -770,11 +776,13 @@ export default class RemoteConnector extends Disposable {
770776
771777 this . logger . info ( 'Opening Gitpod workspace' , uri . toString ( ) ) ;
772778
779+ const userOverride = this . experiments . isUserOverride ( 'gitpod.remote.useLocalApp' ) ;
773780 const forceUseLocalApp = vscode . workspace . getConfiguration ( 'gitpod' ) . get < boolean > ( 'remote.useLocalApp' ) ! ;
781+ // const forceUseLocalApp = (await this.experiments.get<boolean>('gitpod.remote.useLocalApp', session.account.id))!;
774782 let sshDestination : string | undefined ;
775783 if ( ! forceUseLocalApp ) {
776784 try {
777- this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'gateway' , status : 'connecting' , ...params , gitpodVersion : gitpodVersion . raw } ) ;
785+ this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'gateway' , status : 'connecting' , ...params , gitpodVersion : gitpodVersion . raw , userOverride } ) ;
778786
779787 const { destination, password } = await this . getWorkspaceSSHDestination ( session . accessToken , params ) ;
780788 sshDestination = destination ;
@@ -783,9 +791,9 @@ export default class RemoteConnector extends Disposable {
783791 await this . showSSHPasswordModal ( password , params ) ;
784792 }
785793
786- this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'gateway' , status : 'connected' , ...params , gitpodVersion : gitpodVersion . raw } ) ;
794+ this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'gateway' , status : 'connected' , ...params , gitpodVersion : gitpodVersion . raw , userOverride } ) ;
787795 } catch ( e ) {
788- this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'gateway' , status : 'failed' , reason : e . toString ( ) , ...params , gitpodVersion : gitpodVersion . raw } ) ;
796+ this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'gateway' , status : 'failed' , reason : e . toString ( ) , ...params , gitpodVersion : gitpodVersion . raw , userOverride } ) ;
789797 if ( e instanceof NoSSHGatewayError ) {
790798 this . logger . error ( 'No SSH gateway:' , e ) ;
791799 vscode . window . showWarningMessage ( `${ e . host } does not support [direct SSH access](https://github.com/gitpod-io/gitpod/blob/main/install/installer/docs/workspace-ssh-access.md), connecting via the deprecated SSH tunnel over WebSocket.` ) ;
@@ -817,15 +825,15 @@ export default class RemoteConnector extends Disposable {
817825 let localAppSSHConfigPath : string | undefined ;
818826 if ( ! usingSSHGateway ) {
819827 try {
820- this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'local-app' , status : 'connecting' , ...params , gitpodVersion : gitpodVersion . raw } ) ;
828+ this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'local-app' , status : 'connecting' , ...params , gitpodVersion : gitpodVersion . raw , userOverride } ) ;
821829
822830 const localAppDestData = await this . getWorkspaceLocalAppSSHDestination ( params ) ;
823831 sshDestination = localAppDestData . localAppSSHDest ;
824832 localAppSSHConfigPath = localAppDestData . localAppSSHConfigPath ;
825833
826- this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'local-app' , status : 'connected' , ...params , gitpodVersion : gitpodVersion . raw } ) ;
834+ this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'local-app' , status : 'connected' , ...params , gitpodVersion : gitpodVersion . raw , userOverride } ) ;
827835 } catch ( e ) {
828- this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'local-app' , status : 'failed' , reason : e . toString ( ) , ...params , gitpodVersion : gitpodVersion . raw } ) ;
836+ this . telemetry . sendRawTelemetryEvent ( 'vscode_desktop_ssh' , { kind : 'local-app' , status : 'failed' , reason : e . toString ( ) , ...params , gitpodVersion : gitpodVersion . raw , userOverride } ) ;
829837 this . logger . error ( `Failed to connect ${ params . workspaceId } Gitpod workspace:` , e ) ;
830838 if ( e instanceof LocalAppError ) {
831839 const seeLogs = 'See Logs' ;
0 commit comments