From 64336c2f67e2077bcb5f811e417460ddfef5e905 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 29 Jan 2026 13:59:16 +0100 Subject: [PATCH 1/2] fix: resolve url for archivefetcher rather than straight .String()ing it --- pkg/fetcher/fetcher_archive.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/fetcher/fetcher_archive.go b/pkg/fetcher/fetcher_archive.go index 0b3f476..4ba4087 100644 --- a/pkg/fetcher/fetcher_archive.go +++ b/pkg/fetcher/fetcher_archive.go @@ -44,7 +44,12 @@ func (f *ArchiveFetcher) Links(ctx context.Context) (manifest.LinkList, error) { // Get implements Fetcher func (f *ArchiveFetcher) Get(ctx context.Context, link manifest.Link) Resource { - entry, err := f.archive.Entry(link.Href.String()) + // use decoded path for archive entry lookup to support files with spaces and special characters + entryPath := link.Href.String() + if hrefURL := link.Href.Resolve(nil, nil); hrefURL != nil { + entryPath = hrefURL.Path() + } + entry, err := f.archive.Entry(entryPath) if err != nil { return NewFailureResource(link, NotFound(err)) } From a1825c4a28bbec94b3222be2bc1a9585d738f1b3 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 17 Feb 2026 21:58:10 +0100 Subject: [PATCH 2/2] fix: implement suggestions --- pkg/fetcher/fetcher_archive.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/fetcher/fetcher_archive.go b/pkg/fetcher/fetcher_archive.go index 4ba4087..7afd95e 100644 --- a/pkg/fetcher/fetcher_archive.go +++ b/pkg/fetcher/fetcher_archive.go @@ -45,9 +45,11 @@ func (f *ArchiveFetcher) Links(ctx context.Context) (manifest.LinkList, error) { // Get implements Fetcher func (f *ArchiveFetcher) Get(ctx context.Context, link manifest.Link) Resource { // use decoded path for archive entry lookup to support files with spaces and special characters - entryPath := link.Href.String() + var entryPath string if hrefURL := link.Href.Resolve(nil, nil); hrefURL != nil { entryPath = hrefURL.Path() + } else { + entryPath = link.Href.String() } entry, err := f.archive.Entry(entryPath) if err != nil {