github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/config/reporting.go (about) 1 package config 2 3 // ReportingParams holds reporting parameters 4 type ReportingParams struct { 5 Parameters []StepParameters 6 } 7 8 // ReportingParameters is a global variable with values of reporting parameters 9 var ReportingParameters = ReportingParams{ 10 Parameters: []StepParameters{ 11 { 12 Name: "gcpJsonKeyFilePath", 13 Aliases: []Alias{{Name: "jsonKeyFilePath"}}, 14 ResourceRef: []ResourceReference{ 15 { 16 Name: "gcpFileVaultSecretName", 17 Type: "vaultSecretFile", 18 Default: "gcp", 19 }, 20 }, 21 }, 22 { 23 Name: "gcsFolderPath", 24 ResourceRef: []ResourceReference{ 25 { 26 Name: "commonPipelineEnvironment", 27 Param: "custom/gcsFolderPath", 28 }, 29 }, 30 }, 31 { 32 Name: "gcsBucketId", 33 Aliases: []Alias{{Name: "pipelineId"}}, 34 }, 35 { 36 Name: "gcsSubFolder", 37 }, 38 }, 39 } 40 41 // GetResourceParameters retrieves reporting parameters from a named pipeline resource with a defined path 42 func (r ReportingParams) GetResourceParameters(path, name string) map[string]interface{} { 43 resourceParams := map[string]interface{}{} 44 45 for _, param := range r.Parameters { 46 for _, res := range param.ResourceRef { 47 if res.Name == name { 48 if val := getParameterValue(path, res, param); val != nil { 49 resourceParams[param.Name] = val 50 } 51 } 52 } 53 } 54 return resourceParams 55 } 56 57 func (r ReportingParams) getStepFilters() StepFilters { 58 var filters StepFilters 59 reportingFilter := r.getReportingFilter() 60 filters.All = append(filters.All, reportingFilter...) 61 filters.General = append(filters.General, reportingFilter...) 62 filters.Steps = append(filters.Steps, reportingFilter...) 63 filters.Stages = append(filters.Stages, reportingFilter...) 64 return filters 65 } 66 67 func (r ReportingParams) getReportingFilter() []string { 68 var reportingFilter []string 69 for _, param := range r.Parameters { 70 reportingFilter = append(reportingFilter, param.Name) 71 } 72 reportingFilter = append(reportingFilter, getFilterForResourceReferences(r.Parameters)...) 73 return reportingFilter 74 } 75 76 func (s *StepConfig) mixinReportingConfig(configs ...map[string]interface{}) { 77 reportingFilter := ReportingParameters.getReportingFilter() 78 for _, config := range configs { 79 s.mixIn(config, reportingFilter) 80 } 81 }