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

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