Beispiel #1
0
        public Result <List <Pipeline> > GetPipelines()
        {
            var result = restClient.Get <DtoEmbedded <DtoPipelineGroupsList> >("/go/api/dashboard", "application/vnd.go.cd.v1+json");

            if (result.IsValid)
            {
                var pipelines = new List <Pipeline>();
                foreach (var dtoPipelineGroup in result.Data._embedded.PipelineGroups)
                {
                    var pipelineGroupName = dtoPipelineGroup.Name;
                    foreach (var dtoPipeline in dtoPipelineGroup._embedded.pipelines)
                    {
                        var pipeline = new Pipeline()
                        {
                            PipelineGroupName = pipelineGroupName,
                            Name         = dtoPipeline.Name,
                            Locked       = dtoPipeline.locked,
                            Paused       = dtoPipeline.pause_info.paused,
                            PausedBy     = dtoPipeline.pause_info.paused_by,
                            PausedReason = dtoPipeline.pause_info.pause_reason
                        };
                        pipelines.Add(pipeline);
                        foreach (var dtoInstance in dtoPipeline._embedded.instances)
                        {
                            var instance = new PipelineInstance
                            {
                                Label       = dtoInstance.label,
                                TriggeredBy = dtoInstance.triggered_by,
                                ScheduledAt = dtoInstance.schedule_at
                            };
                            pipeline.PipelineInstances.Add(instance);
                            foreach (var dtoStage in dtoInstance._embedded.stages)
                            {
                                var selflink  = dtoStage._links?.self.href ?? "/1";
                                var runString = selflink.Split('/').Last();
                                var run       = int.TryParse(runString, out var parsedInt) ? parsedInt : 1;
                                var stage     = new Stage
                                {
                                    Name           = dtoStage.name,
                                    Run            = run,
                                    Status         = dtoStage.status.ToEnum <StageStatus>(),
                                    PreviousStatus = dtoStage?.previous_stage?.status.ToEnumNullable <StageStatus>(),
                                };
                                instance.Stages.Add(stage);
                            }
                        }
                    }
                }
                return(Result <List <Pipeline> > .Valid(pipelines));
            }
            else
            {
                return(Result <List <Pipeline> > .Invalid(result.ErrorMessage));
            }
        }
Beispiel #2
0
 public UiPipelineInstance(PipelineInstance pipelineInstance)
 {
     this.pipelineInstance = pipelineInstance;
 }