github.com/argoproj/argo-cd/v3@v3.2.1/reposerver/repository/chart.go (about)

     1  package repository
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"sigs.k8s.io/yaml"
     8  
     9  	"github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1"
    10  )
    11  
    12  func getChartDetails(chartYAML string) (*v1alpha1.ChartDetails, error) {
    13  	var chart Chart
    14  	err := yaml.Unmarshal([]byte(chartYAML), &chart)
    15  	if err != nil {
    16  		return nil, fmt.Errorf("failed to unmarshal chart: %w", err)
    17  	}
    18  	var maintainers []string
    19  	for _, maintainer := range chart.Maintainers {
    20  		if maintainer.Email != "" {
    21  			maintainers = append(maintainers, strings.Trim(fmt.Sprintf("%v <%v>", maintainer.Name, maintainer.Email), " "))
    22  		} else {
    23  			maintainers = append(maintainers, maintainer.Name)
    24  		}
    25  	}
    26  	return &v1alpha1.ChartDetails{
    27  		Description: chart.Description,
    28  		Maintainers: maintainers,
    29  		Home:        chart.Home,
    30  	}, nil
    31  }