public IConnectedService MapService(ConnectedService service) { var gitHubService = new GitHubConnectedService(service.Id, service.Name) { DefaultWorkRoot = service.DefaultWorkRoot, Owner = service.GetPropertyValue("Owner") }; var mode = service.GetPropertyValue("Mode"); if (mode == "OAuth") { gitHubService.OAuth = new GitHubOAuthConfig( service.GetPropertyValue("OAuth.ClientId"), service.GetPropertyValue("OAuth.Secret")); gitHubService.AccessToken = service.TryGetPropertyValue <string>("AccessToken"); } else { gitHubService.AccessToken = service.GetPropertyValue("PersonalAccessToken"); } return(gitHubService); }
public async Task <IEnumerable <GitRemoteRepository> > SearchAsync( Guid serviceId, string searchString, CancellationToken cancellationToken) { GitHubConnectedService service = await _clientFactory.ConnectAsync(serviceId, cancellationToken); GitHubClient client = _clientFactory.CreateClient(serviceId); var request = new SearchRepositoriesRequest(searchString); request.User = service.Owner; SearchRepositoryResult searchResult = await client.Search.SearchRepo(request); return(searchResult.Items.Select(x => ToRemoteRepository(service, x))); }
public async Task <GitHubConnectedService> ConnectAsync( Guid id, CancellationToken cancellationToken) { if (!_connections.ContainsKey(id)) { GitHubConnectedService service = await GetConnectedServiceAsync( id, cancellationToken); var client = new GitHubClient(new ProductHeaderValue("boost")); client.Credentials = new Credentials(service.AccessToken); _connections.Add(id, new GitHubConnectionContext(service, client)); } return(_connections[id].Service); }