/// <summary>
        /// Gets a project list from given jenkins server address.
        /// </summary>
        /// <param name="address">The server address.</param>
        /// <param name="serverProjects">The list of projects to update.</param>
        /// <param name="jenkinsApi">Jenkins Api instance.</param>
        /// <returns>A task representing the job.</returns>
        private async Task GetProjectsLists(string address, List <ServerProjectTreeItem> serverProjects, JenkinsApi jenkinsApi)
        {
            var jenkinsJobs = await jenkinsApi.GetJenkinsJobs(address, default(System.Threading.CancellationToken));

            foreach (var jenkinsJob in jenkinsJobs.Jobs)
            {
                var newServerProject = this.AddServerProject(serverProjects, jenkinsJob);
                if (string.Equals(jenkinsJob.ClassName.Trim(), "com.cloudbees.hudson.plugins.folder.Folder".Trim(), System.StringComparison.InvariantCultureIgnoreCase) ||
                    string.Equals(jenkinsJob.ClassName.Trim(), "org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject".Trim(), System.StringComparison.InvariantCultureIgnoreCase))
                {
                    await this.GetProjectsLists(jenkinsJob.Url, newServerProject.ServerProjects, jenkinsApi);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Gets a project list from given jenkins server address.
        /// </summary>
        /// <param name="address">The server address.</param>
        /// <param name="projects">The list of projects to update.</param>
        /// <param name="jenkinsApi">Jenkins Api instance.</param>
        /// <returns>A task representing the job.</returns>
        private async Task GetProjectsLists(string address, IList <Project> projects, JenkinsApi jenkinsApi)
        {
            var jenkinsJobs = await jenkinsApi.GetJenkinsJobs(address, default);

            if (jenkinsJobs?.Jobs == null)
            {
                return;
            }

            foreach (var jenkinsJob in jenkinsJobs.Jobs)
            {
                var newServerProject = this.AddProject(projects, jenkinsJob);
                if (string.Equals(jenkinsJob.ClassName.Trim(), "com.cloudbees.hudson.plugins.folder.Folder".Trim(), System.StringComparison.InvariantCultureIgnoreCase) ||
                    string.Equals(jenkinsJob.ClassName.Trim(), "org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject".Trim(), System.StringComparison.InvariantCultureIgnoreCase))
                {
                    await this.GetProjectsLists(jenkinsJob.Url, newServerProject.Children, jenkinsApi);
                }
            }
        }