コード例 #1
0
        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);
        }
コード例 #2
0
        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 { })
コード例 #3
0
        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));
        }
コード例 #4
0
        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 { })
コード例 #5
0
        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));
                    }
                }