github.com/jaylevin/jenkins-library@v1.230.4/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  }