public IConnectedService?MatchServiceFromGitRemoteReference( IGitRemoteReference remoteReference, IEnumerable <IConnectedService> connectedServices) { if (remoteReference is AzureDevOpsGitRemoteReference adoRef) { IEnumerable <AzureDevOpsConnectedService> adoServices = connectedServices .Where(x => x is AzureDevOpsConnectedService a) .Select(x => x as AzureDevOpsConnectedService) !; IEnumerable <AzureDevOpsConnectedService> accountMaches = adoServices .Where(x => x.Account.Equals( adoRef.Account, StringComparison.InvariantCultureIgnoreCase)); AzureDevOpsConnectedService?projectMatch = accountMaches .FirstOrDefault(x => x.DefaultProject.Equals( adoRef.Project, StringComparison.InvariantCultureIgnoreCase)); return(projectMatch ?? accountMaches.FirstOrDefault()); } return(null); }
public IConnectedService?MatchServiceFromGitRemoteReference(IGitRemoteReference remoteReference, IEnumerable <IConnectedService> connectedServices) { if (remoteReference is GitHubRemoteReference gitHubRef) { IEnumerable <GitHubConnectedService> gitHubServices = connectedServices .Where(x => x is GitHubConnectedService a) .Select(x => x as GitHubConnectedService) !; GitHubConnectedService?ownerMatche = gitHubServices .Where(x => x.Owner is { })
public async Task <GitRemoteRepository?> GetByRemoteReferenceAsync( Guid serviceId, IGitRemoteReference reference, string name, CancellationToken cancellationToken) { IGitRemoteClient client = await CreateClient(serviceId, cancellationToken); return(await client.GetByRemoteReference( serviceId, reference, name, cancellationToken)); }
public async Task <GitRemoteRepository?> GetByRemoteReference( Guid serviceId, IGitRemoteReference reference, string name, CancellationToken cancellationToken) { if (reference is AzureDevOpsGitRemoteReference adoRef) { AzureDevOpsConnectedService service = await ClientFactory.ConnectAsync( serviceId, cancellationToken); GitHttpClient client = ClientFactory.CreateClient <GitHttpClient>(serviceId); GitRepository?repo = await client.GetRepositoryAsync( adoRef.Project, name, cancellationToken : cancellationToken); if (repo is { })
public async Task <GitRemoteRepository?> GetByRemoteReference( Guid serviceId, IGitRemoteReference reference, string name, CancellationToken cancellationToken) { if (reference is GitHubRemoteReference ghRef && ghRef.Owner is string) { await _clientFactory.ConnectAsync( serviceId, cancellationToken); GitHubClient client = _clientFactory.CreateClient(serviceId); try { Repository?repo = await client.Repository.Get(ghRef.Owner, name); if (repo is { }) { return(ToRemoteRepository(_clientFactory.Connections[serviceId].Service, repo)); } }