From e5fdaa1c6538d36eea81249500c72cd3f2ed3f98 Mon Sep 17 00:00:00 2001 From: Jeff van Dam <66410239+JvD-Ericsson@users.noreply.github.com> Date: Thu, 11 May 2023 08:25:29 +0100 Subject: [PATCH] Update chart_downloader.go Signed-off-by: Jeff van Dam <66410239+JvD-Ericsson@users.noreply.github.com> --- pkg/downloader/chart_downloader.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/downloader/chart_downloader.go b/pkg/downloader/chart_downloader.go index 8be6d4962..a95894e00 100644 --- a/pkg/downloader/chart_downloader.go +++ b/pkg/downloader/chart_downloader.go @@ -27,6 +27,7 @@ import ( "github.com/pkg/errors" "helm.sh/helm/v3/internal/fileutil" + "helm.sh/helm/v3/internal/urlutil" "helm.sh/helm/v3/pkg/getter" "helm.sh/helm/v3/pkg/helmpath" "helm.sh/helm/v3/pkg/provenance" @@ -377,13 +378,19 @@ func (c *ChartDownloader) scanReposForURL(u string, rf *repo.File) (*repo.Entry, } idxFile := filepath.Join(c.RepositoryCache, helmpath.CacheIndexFile(r.Config.Name)) - yamlFile, err := os.ReadFile(idxFile) + i, err := repo.LoadIndexFile(idxFile) if err != nil { return nil, errors.Wrap(err, "no cached repo found. (try 'helm repo update')") } - file := string(yamlFile[:]) - if strings.Contains(file, u) { - return rc, nil + + for _, entry := range i.Entries { + for _, ver := range entry { + for _, dl := range ver.URLs { + if urlutil.Equal(u, dl) { + return rc, nil + } + } + } } } // This means that there is no repo file for the given URL.