@@ -23,6 +23,7 @@ public class RepositoryCloneViewModel : ViewModelBase, IRepositoryCloneViewModel
2323 readonly IOperatingSystem os ;
2424 readonly IConnectionManager connectionManager ;
2525 readonly IRepositoryCloneService service ;
26+ readonly IUsageService usageService ;
2627 readonly IReadOnlyList < IRepositoryCloneTabViewModel > tabs ;
2728 string path ;
2829 IRepositoryModel previousRepository ;
@@ -34,13 +35,15 @@ public RepositoryCloneViewModel(
3435 IOperatingSystem os ,
3536 IConnectionManager connectionManager ,
3637 IRepositoryCloneService service ,
38+ IUsageService usageService ,
3739 IRepositorySelectViewModel gitHubTab ,
3840 IRepositorySelectViewModel enterpriseTab ,
3941 IRepositoryUrlViewModel urlTab )
4042 {
4143 this . os = os ;
4244 this . connectionManager = connectionManager ;
4345 this . service = service ;
46+ this . usageService = usageService ;
4447
4548 GitHubTab = gitHubTab ;
4649 EnterpriseTab = enterpriseTab ;
@@ -119,6 +122,20 @@ public async Task InitializeAsync(IConnection connection)
119122 }
120123
121124 this . WhenAnyValue ( x => x . SelectedTabIndex ) . Subscribe ( x => tabs [ x ] . Activate ( ) . Forget ( ) ) ;
125+
126+ // Users in group A will see the URL tab by default
127+ if ( await IsGroupA ( ) . ConfigureAwait ( false ) )
128+ {
129+ SelectedTabIndex = 2 ;
130+ }
131+ }
132+
133+ // Put 50% of users in group A
134+ async Task < bool > IsGroupA ( )
135+ {
136+ var userGuid = await usageService . GetUserGuid ( ) . ConfigureAwait ( false ) ;
137+ var lastByte = userGuid . ToByteArray ( ) . Last ( ) ;
138+ return lastByte % 2 == 0 ;
122139 }
123140
124141 void BrowseForDirectory ( )
0 commit comments