public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <GitHubCredentials>(credentialName);

            string ownerName      = AH.CoalesceString(credentials.OrganizationName, credentials.UserName);
            string repositoryName = AH.CoalesceString(config["RepositoryName"], credentials.RepositoryName);

            if (string.IsNullOrEmpty(ownerName) || string.IsNullOrEmpty(repositoryName))
            {
                return(Enumerable.Empty <string>());
            }

            var client = new GitHubClient(credentials.ApiUrl, credentials.UserName, credentials.Password, credentials.OrganizationName);

            var milestones = await client.GetMilestonesAsync(ownerName, repositoryName, "open").ConfigureAwait(false);

            var titles = from m in milestones
                         let title = m["title"]?.ToString()
                                     where !string.IsNullOrEmpty(title)
                                     select title;

            return(new[] { "$ReleaseName", "$ReleaseNumber" }.Concat(titles));
        }
        public override async Task <PromotionRequirementStatus> GetStatusAsync(PromotionContext context)
        {
            var entity = InfrastructureEntity.Create(serverName: this.Server, roleName: this.Role);

            if (entity == null)
            {
                return(new PromotionRequirementStatus(PromotionRequirementState.NotApplicable, "A server or role must be specified to determine drift status."));
            }

            var credentials = ResourceCredentials.Create <InedoProductCredentials>(this.CredentialName);

            var client = OtterClient.Create(credentials.Host, credentials.ApiKey);

            try
            {
                await client.TriggerConfigurationCheckAsync(entity).ConfigureAwait(false);

                await Task.Delay(2 * 1000).ConfigureAwait(false);

                var config = await client.GetConfigurationStatusAsync(entity).ConfigureAwait(false);

                if (string.Equals(config.Status, this.Status.ToString(), StringComparison.OrdinalIgnoreCase))
                {
                    return(new PromotionRequirementStatus(PromotionRequirementState.Met, $"{entity} status is {config.Status}."));
                }
                else
                {
                    return(new PromotionRequirementStatus(PromotionRequirementState.NotMet, $"{entity} status is {config.Status}, must be {this.Status.ToString().ToLowerInvariant()}."));
                }
            }
            catch (OtterException ex)
            {
                return(new PromotionRequirementStatus(PromotionRequirementState.NotMet, ex.FullMessage));
            }
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var feedName       = config["FeedName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName))
            {
                return(Enumerable.Empty <string>());
            }

            ProGetClient client = null;

            var productCredentials = ResourceCredentials.TryCreate <InedoProductCredentials>(credentialName);

            if (productCredentials != null)
            {
                client = new ProGetClient(productCredentials.Host, feedName, "api", AH.Unprotect(productCredentials.ApiKey));
            }

            if (client == null)
            {
#pragma warning disable CS0618 // Type or member is obsolete
                var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
#pragma warning restore CS0618 // Type or member is obsolete
                client = new ProGetClient(credentials.Url, feedName, credentials.UserName, AH.Unprotect(credentials.Password));
            }

            var packages = await client.GetPackagesAsync().ConfigureAwait(false);

            return(from p in packages
                   let name = new PackageName(p.@group, p.name)
                              orderby name.Group, name.Name
                   select name.ToString());
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <GitHubCredentials>(credentialName);

            string ownerName = AH.CoalesceString(credentials.OrganizationName, credentials.UserName);

            if (string.IsNullOrEmpty(ownerName))
            {
                return(Enumerable.Empty <string>());
            }

            var client = new GitHubClient(credentials.ApiUrl, credentials.UserName, credentials.Password, credentials.OrganizationName);
            var repos  = await client.GetRepositoriesAsync().ConfigureAwait(false);


            var names = from m in repos
                        let name = m["name"]?.ToString()
                                   where !string.IsNullOrEmpty(name)
                                   select name;

            return(new[] { "$ApplicationName" }.Concat(names));
        }
示例#5
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config[nameof(IHasCredentials.CredentialName)];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <GitHubCredentials>(credentialName);

            string ownerName = AH.CoalesceString(credentials.OrganizationName, credentials.UserName);

            if (string.IsNullOrEmpty(ownerName))
            {
                return(Enumerable.Empty <string>());
            }

            var client = new GitHubClient(credentials.ApiUrl, credentials.UserName, credentials.Password, credentials.OrganizationName);

            var orgs = await client.GetOrganizationsAsync(CancellationToken.None).ConfigureAwait(false);

            var names = from m in orgs
                        let name = m["login"]?.ToString()
                                   where !string.IsNullOrEmpty(name)
                                   select name;

            return(names);
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <GitLabCredentials>(credentialName);

            string ownerName      = AH.CoalesceString(credentials.GroupName, credentials.UserName);
            string repositoryName = AH.CoalesceString(config["ProjectName"], credentials.ProjectName);

            if (string.IsNullOrEmpty(ownerName) || string.IsNullOrEmpty(repositoryName))
            {
                return(Enumerable.Empty <string>());
            }

            var client = new GitLabClient(credentials.ApiUrl, credentials.UserName, credentials.Password, credentials.GroupName);

            var milestones = await client.GetMilestonesAsync(repositoryName, "open", CancellationToken.None).ConfigureAwait(false);

            var titles = from m in milestones
                         let title = m["title"]?.ToString()
                                     where !string.IsNullOrEmpty(title)
                                     select title;

            if (SDK.ProductName == "BuildMaster")
            {
                titles = new[] { "$ReleaseName", "$ReleaseNumber" }.Concat(titles);
            }

            return(titles);
        }
示例#7
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var projectName    = AH.CoalesceString(config["TeamProject"], config["TeamProjectName"]);
            var definitionName = config["BuildDefinition"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(projectName) || string.IsNullOrEmpty(definitionName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <TfsCredentials>(credentialName);

            var api        = new TfsRestApi(credentials, null);
            var definition = await api.GetBuildDefinitionAsync(projectName, definitionName).ConfigureAwait(false);

            if (definition == null)
            {
                return(Enumerable.Empty <string>());
            }

            var builds = await api.GetBuildsAsync(projectName, definition.id).ConfigureAwait(false);

            return(builds.Select(b => b.buildNumber));
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var feedName       = config["FeedName"];
            var packageName    = config["PackageName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName) || string.IsNullOrEmpty(packageName))
            {
                return(Enumerable.Empty <string>());
            }

            ProGetClient client = null;

            var productCredentials = ResourceCredentials.TryCreate <InedoProductCredentials>(credentialName);

            if (productCredentials != null)
            {
                client = new ProGetClient(productCredentials.Host, feedName, "api", AH.Unprotect(productCredentials.ApiKey));
            }


#pragma warning disable CS0618 // Type or member is obsolete
            var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
#pragma warning restore CS0618 // Type or member is obsolete
            if (client == null)
            {
                client = new ProGetClient(credentials.Url, feedName, credentials.UserName, AH.Unprotect(credentials.Password));
            }

            var package = await client.GetPackageInfoAsync(PackageName.Parse(packageName));

            return(new[] { "latest", "latest-stable" }.Concat(package.versions));
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var projectName = config["ProjectName"];

            if (string.IsNullOrEmpty(projectName))
            {
                return(Enumerable.Empty <string>());
            }

            var buildConfigurationName = config["BuildConfigurationName"];

            if (string.IsNullOrEmpty(projectName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <TeamCityCredentials>(credentialName);

            using (var client = new TeamCityWebClient(credentials))
            {
                return(await client.GetBuildNumbersAsync(projectName, buildConfigurationName).ConfigureAwait(false));
            }
        }
示例#10
0
        internal static GitLabCredentials TryCreate(string name, IOperationConfiguration config)
        {
            int?projectId     = AH.ParseInt(AH.CoalesceString(config["ProjectId"], config["ApplicationId"]));
            int?environmentId = AH.ParseInt(config["EnvironmentId"]);

            return((GitLabCredentials)ResourceCredentials.TryCreate(GitLabCredentials.TypeName, name, environmentId: environmentId, applicationId: projectId, inheritFromParent: false));
        }
示例#11
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var jobName        = config["JobName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(jobName))
            {
                return(Enumerable.Empty <string>());
            }

            var    branchName  = config["BranchName"];
            string buildNumber = AH.CoalesceString(config["BuildNumber"], "lastSuccessfulBuild");

            int?projectId     = AH.ParseInt(AH.CoalesceString(config["ProjectId"], config["ApplicationId"]));
            int?environmentId = AH.ParseInt(config["EnvironmentId"]);

            var credentials = (JenkinsLegacyCredentials)ResourceCredentials.TryCreate(JenkinsLegacyCredentials.TypeName, credentialName, environmentId: environmentId, applicationId: projectId, inheritFromParent: false);

            if (credentials == null)
            {
                return(Enumerable.Empty <string>());
            }

            using (var cts = new CancellationTokenSource(new TimeSpan(0, 0, 30)))
            {
                var client = new JenkinsClient(credentials.UserName, credentials.Password, credentials.ServerUrl, false, null, cts.Token);
                return((await client.GetBuildArtifactsAsync(jobName, branchName, buildNumber))
                       .Select(a => a.RelativePath)
                       .ToList());
            }
        }
示例#12
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var productCredentials = ResourceCredentials.TryCreate <InedoProductCredentials>(credentialName);

            if (productCredentials != null)
            {
                var url = new Uri(productCredentials.Host, UriKind.Absolute).GetLeftPart(UriPartial.Authority);
                var c   = new ProGetClient(url, null, "api", AH.Unprotect(productCredentials.ApiKey));

                return(await c.GetFeedNamesAsync().ConfigureAwait(false));
            }

#pragma warning disable CS0618 // Type or member is obsolete
            var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
#pragma warning restore CS0618 // Type or member is obsolete
            string baseUrl = new Uri(credentials.Url, UriKind.Absolute).GetLeftPart(UriPartial.Authority);
            var    client  = new ProGetClient(baseUrl, null, credentials.UserName, AH.Unprotect(credentials.Password));

            return(await client.GetFeedNamesAsync().ConfigureAwait(false));
        }
示例#13
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <GitLabCredentials>(credentialName);

            string ownerName = AH.CoalesceString(credentials.GroupName, credentials.UserName);

            if (string.IsNullOrEmpty(ownerName))
            {
                return(Enumerable.Empty <string>());
            }

            var client = new GitLabClient(credentials.ApiUrl, credentials.UserName, credentials.Password, credentials.GroupName);
            var repos  = await client.GetProjectsAsync(CancellationToken.None).ConfigureAwait(false);


            var names = from m in repos
                        let name = m["path_with_namespace"]?.ToString()
                                   where !string.IsNullOrEmpty(name)
                                   select name;

            if (SDK.ProductName == "BuildMaster")
            {
                names = new[] { $"{ownerName}/$ApplicationName" }.Concat(names);
            }
            return(names);
        }
示例#14
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];
            var jobName        = config["JobName"];

            if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(jobName))
            {
                return(Enumerable.Empty <string>());
            }

            var branchName    = config["BranchName"];
            int?projectId     = AH.ParseInt(AH.CoalesceString(config["ProjectId"], config["ApplicationId"]));
            int?environmentId = AH.ParseInt(config["EnvironmentId"]);

            var credentials = (JenkinsLegacyCredentials)ResourceCredentials.TryCreate(JenkinsLegacyCredentials.TypeName, credentialName, environmentId: environmentId, applicationId: projectId, inheritFromParent: false);

            if (credentials == null)
            {
                return(Enumerable.Empty <string>());
            }

            using (var cts = new CancellationTokenSource(new TimeSpan(0, 0, 30)))
            {
                var client = this.CreateClient(config, cts.Token);
                return(await client.GetBuildNumbersAsync(jobName, branchName).ConfigureAwait(false));
            }
        }
        public override async Task <IEnumerable <string> > EnumerateValuesAsync(ValueEnumerationContext context)
        {
            var credentials = ResourceCredentials.Create <JenkinsCredentials>(this.CredentialName);

            var client = new JenkinsClient(credentials);

            return(await client.GetBuildNumbersAsync(this.JobName).ConfigureAwait(false));
        }
        public void PublishEventsToTopic()
        {
            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                this.InitializeClients(context);

                var location = this.ResourceManagementClient.GetLocationFromProvider();

                var resourceGroup = this.ResourceManagementClient.TryGetResourceGroup(location);
                if (string.IsNullOrWhiteSpace(resourceGroup))
                {
                    resourceGroup = TestUtilities.GenerateName(EventGridManagementHelper.ResourceGroupPrefix);
                    this.ResourceManagementClient.TryRegisterResourceGroup(location, resourceGroup);
                }

                var topicName = TestUtilities.GenerateName(EventGridManagementHelper.TopicPrefix);

                var originalTagsDictionary = new Dictionary <string, string>()
                {
                    { "originalTag1", "originalValue1" },
                    { "originalTag2", "originalValue2" }
                };

                Topic topic = new Topic()
                {
                    Location = location,
                    Tags     = originalTagsDictionary
                };

                var createTopicResponse = this.EventGridManagementClient.Topics.CreateOrUpdate(resourceGroup, topicName, topic);

                Assert.NotNull(createTopicResponse);
                Assert.Equal(createTopicResponse.Name, topicName);

                TestUtilities.Wait(TimeSpan.FromSeconds(60));

                // Get the topic key
                TopicSharedAccessKeys keys = this.EventGridManagementClient.Topics.ListSharedAccessKeys(resourceGroup, topicName);

                // Publish events to topic
                string topicHostname            = new Uri(createTopicResponse.Endpoint).Host;
                ResourceCredentials credentials = new ResourceCredentials(keys.Key1);

                EventGridClient client = EventGridManagementHelper.GetEventGridClient(
                    context,
                    credentials,
                    new RecordedDelegatingHandler {
                    StatusCodeToReturn = HttpStatusCode.OK
                });

                Console.WriteLine("Publishing to Azure Event Grid Topic");
                client.PublishEventsAsync(topicHostname, GetEventsList()).GetAwaiter().GetResult();
                Console.WriteLine("Published successfully!");

                // Delete topic
                this.EventGridManagementClient.Topics.Delete(resourceGroup, topicName);
            }
        }
示例#17
0
        public override async Task <IEnumerable <string> > EnumerateValuesAsync(ValueEnumerationContext context)
        {
            var credentials = ResourceCredentials.Create <TfsCredentials>(this.CredentialName);

            var api         = new TfsRestApi(credentials, null);
            var definitions = await api.GetBuildDefinitionsAsync(this.TeamProjectName).ConfigureAwait(false);

            return(definitions.Select(d => d.name));
        }
示例#18
0
        public override async Task <IEnumerable <string> > EnumerateValuesAsync(ValueEnumerationContext context)
        {
            var credentials = ResourceCredentials.Create <TeamCityCredentials>(this.CredentialName);

            using (var client = new TeamCityWebClient(credentials))
            {
                return(await client.GetBuildNumbersAsync(this.ProjectName, this.BuildConfigurationName).ConfigureAwait(false));
            }
        }
示例#19
0
        public override async Task <IEnumerable <string> > EnumerateValuesAsync(ValueEnumerationContext context)
        {
            var credentials = ResourceCredentials.Create <TfsCredentials>(this.CredentialName);

            var api      = new TfsRestApi(credentials, null);
            var projects = await api.GetProjectsAsync().ConfigureAwait(false);

            return(projects.Select(p => p.name));
        }
示例#20
0
            private TfsCredentials GetCredentials()
            {
                string credentialName = this.config["CredentialName"];

                if (string.IsNullOrEmpty(credentialName))
                {
                    return(null);
                }

                return(ResourceCredentials.Create <TfsCredentials>(credentialName));
            }
示例#21
0
        public Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentials = ResourceCredentials.Create <ArtifactoryCredentials>(config[nameof(IHasCredentials <ArtifactoryCredentials> .CredentialName)]);
            var baseUrl     = AH.CoalesceString(config[nameof(ArtifactoryCredentials.BaseUrl)], credentials?.BaseUrl);
            var userName    = AH.CoalesceString(config[nameof(ArtifactoryCredentials.UserName)], credentials?.UserName);
            var password    = CoalescePassword(config[nameof(ArtifactoryCredentials.Password)], credentials?.Password);

            return(GetSuggestionsAsync(new ArtifactoryCredentials {
                BaseUrl = baseUrl, UserName = userName, Password = password
            }, config));
        }
示例#22
0
            private object GetCredentialPropertyValue(ResourceCredentials credentials)
            {
                var prop = credentials.GetType().GetProperty(this.MappedCredentialPropertyName);

                if (prop == null)
                {
                    return(null);
                }

                return(prop.GetValue(credentials));
            }
        public static EventGridClient GetEventGridClient(MockContext context, ResourceCredentials credentials, RecordedDelegatingHandler handler)
        {
            if (handler != null)
            {
                handler.IsPassThrough = true;
                TestEnvironment testEnvironment = TestEnvironmentFactory.GetTestEnvironment();
                EventGridClient eventGridClient = context.GetServiceClientWithCredentials <EventGridClient>(testEnvironment, credentials, true, handler);
                return(eventGridClient);
            }

            return(null);
        }
示例#24
0
        public override async Task <IEnumerable <string> > EnumerateListValuesAsync(VariableTemplateContext context)
        {
            var credentials = (JenkinsLegacyCredentials)ResourceCredentials.TryCreate(JenkinsLegacyCredentials.TypeName, this.CredentialName, environmentId: null, applicationId: context.ProjectId, inheritFromParent: false);

            if (credentials == null)
            {
                return(Enumerable.Empty <string>());
            }

            var client = new JenkinsClient(credentials.UserName, credentials.Password, credentials.ServerUrl, true, null, default);

            return(await client.GetBuildNumbersAsync(this.JobName, this.BranchName).ConfigureAwait(false));
        }
        protected YouTrackClient CreateClient(IComponentConfiguration config)
        {
            var credentials = ResourceCredentials.Create <YouTrackCredentials>(config[nameof(IHasCredentials <YouTrackCredentials> .CredentialName)]);

            return(new YouTrackClient(
                       new YouTrackCredentials
            {
                ServerUrl = AH.CoalesceString(config[nameof(YouTrackOperationBase.ServerUrl)], credentials?.ServerUrl),
                UserName = AH.CoalesceString(config[nameof(YouTrackOperationBase.UserName)], credentials?.UserName),
                Password = AH.CreateSecureString(AH.CoalesceString(config[nameof(YouTrackOperationBase.Password)], AH.Unprotect(credentials?.Password))),
                PermanentToken = AH.CreateSecureString(AH.CoalesceString(config[nameof(YouTrackOperationBase.PermanentToken)], AH.Unprotect(credentials?.PermanentToken))),
            }
                       ));
        }
示例#26
0
        protected override object EvaluateScalar(IVariableFunctionContext context)
        {
            var name = Inedo.Extensibility.Credentials.CredentialName.TryParse(this.CredentialName);

            if (name == null)
            {
                throw new ExecutionFailureException(true, $"The specified credential name \"{this.CredentialName}\" is invalid.");
            }

            // need to resolve credential type name if it's not specified with the scope resolution operator
            if (name.TypeName == null)
            {
                var types = (from c in SDK.GetCredentials()
                             where string.Equals(c.Name, name.Name, StringComparison.OrdinalIgnoreCase)
                             select c.LegacyResourceCredentialTypeName).ToHashSet(StringComparer.OrdinalIgnoreCase);

                if (types.Count == 0)
                {
                    throw new ExecutionFailureException(true, $"There are no credentials named \"{name.Name}\" found in the system.");
                }
                if (types.Count > 1)
                {
                    throw new ExecutionFailureException(true, $"There are multiple credential types with the name \"{name.Name}\" found in the system. Use the scope resolution operator (i.e. ::) to specify a type, for example: UsernamePassword::{name.Name}");
                }

                name = new CredentialName(types.First(), name.Name);
            }

            var credential = ResourceCredentials.TryCreate(name.TypeName, name.Name, environmentId: context.EnvironmentId, applicationId: context.ProjectId, inheritFromParent: true);

            if (credential == null)
            {
                throw new ExecutionFailureException($"Could not find a {name.TypeName} Resource Credentials named \"{name.Name}\"; this error may occur if you renamed a credential, or the application or environment in context does not match any existing credentials. To resolve, edit this item, property, or operation's configuration, ensure a valid credential for the application/environment in context is selected, and then save.");
            }

            if (!(credential is JenkinsLegacyCredentials))
            {
                throw new ExecutionFailureException($"Resource Credential \"{name.Name}\" is not a Jenkins Credential.");
            }

            var jenkins = (JenkinsLegacyCredentials)credential;

            UriBuilder uri = new UriBuilder(jenkins.ServerUrl)
            {
                Path = JenkinsClient.GetPath(this.JobName, this.BranchName, this.BuildNumber)
            };

            return(uri.ToString());
        }
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var    credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName);
            string baseUrl     = new Uri(credentials.Url, UriKind.Absolute).GetLeftPart(UriPartial.Authority);
            var    client      = new ProGetClient(baseUrl, null, credentials.UserName, ConvertValue(credentials.Password));

            return(await client.GetFeedNamesAsync().ConfigureAwait(false));
        }
示例#28
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            var credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <JenkinsCredentials>(credentialName);
            var client      = new JenkinsClient(credentials);
            var jobs        = await client.GetJobNamesAsync().ConfigureAwait(false);

            return(jobs);
        }
示例#29
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            string credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <InedoProductCredentials>(credentialName);

            var client = OtterClient.Create(credentials.Host, credentials.ApiKey);
            var roles  = await client.EnumerateInfrastructureAsync(InfrastructureEntity.Role).ConfigureAwait(false);

            return(roles);
        }
示例#30
0
        public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config)
        {
            string credentialName = config["CredentialName"];

            if (string.IsNullOrEmpty(credentialName))
            {
                return(Enumerable.Empty <string>());
            }

            var credentials = ResourceCredentials.Create <OtterCredentials>(credentialName);

            var client  = new OtterClient(credentials.Host, credentials.ApiKey);
            var servers = await client.EnumerateInfrastructureAsync(InfrastructureEntity.Environment).ConfigureAwait(false);

            return(servers);
        }