Exemple #1
0
        private async Task InsertPipelineToDB(Pipeline pipeline, Project project)
        {
            var staticBranchesNamesDb = await _staticBranchPanelRepository.GetBranchNamesFromStaticPanelsForProject(project.Id);

            PipelinesMerger merger           = new PipelinesMerger();
            List <Pipeline> projectPipelines = new List <Pipeline>(project.Pipelines);

            merger.AddPipelinesPageAtEnd(new List <Pipeline>()
            {
                pipeline
            });
            var staticPipelines = project.Pipelines.Where(p => staticBranchesNamesDb.Contains(p.Ref));
            var mergeResult     = merger.MergePipelines(project.Pipelines, staticPipelines, project.PipelinesNumber);

            await SaveMergedInDB(mergeResult, project);
        }
Exemple #2
0
        private async Task DownloadNewestPipelinesNotInBrancNameList(ICiDataProvider dataProvider, Project project, int howMany, IEnumerable <string> branchNames, PipelinesMerger merger)
        {
            var branchNamesSet    = new HashSet <string>(branchNames);
            var pageCounter       = 0;
            var maxPagesToLookFor = int.Parse(_configuration["DataProviders:NewestPipelinesMaxPages"]);

            while (merger.NewestPipelinesCount < howMany && pageCounter++ <= maxPagesToLookFor)
            {
                var pagedNewest = await dataProvider.FetchNewestPipelines(project.ApiHostUrl, project.ApiAuthenticationToken, project.ApiProjectId, pageCounter, perPage : howMany);

                var pagePipelinesNotInLocalStatic = pagedNewest.pipelines.Where(p => !branchNamesSet.Contains(p.Ref));

                merger.AddPipelinesPageAtEnd(pagePipelinesNotInLocalStatic);

                if (pageCounter >= pagedNewest.totalPages) //If last page
                {
                    break;
                }
            }
        }