From c4b17e206d13123a41a132f2fe759a248f3bd50c Mon Sep 17 00:00:00 2001 From: Skiepp Date: Wed, 5 Oct 2022 13:33:17 +0200 Subject: [PATCH 1/2] Added HEAD route for index.yaml Signed-off-by: Skiepp --- pkg/chartmuseum/server/multitenant/handlers.go | 11 +++++++++++ pkg/chartmuseum/server/multitenant/routes.go | 1 + pkg/chartmuseum/server/multitenant/server_test.go | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/pkg/chartmuseum/server/multitenant/handlers.go b/pkg/chartmuseum/server/multitenant/handlers.go index f095d9e9..2db589b7 100644 --- a/pkg/chartmuseum/server/multitenant/handlers.go +++ b/pkg/chartmuseum/server/multitenant/handlers.go @@ -130,6 +130,17 @@ func (server *MultiTenantServer) getIndexFileRequestHandler(c *gin.Context) { c.Data(200, indexFileContentType, indexFile.Raw) } +func (server *MultiTenantServer) headIndexFileRequestHandler(c *gin.Context) { + repo := c.Param("repo") + log := server.Logger.ContextLoggingFn(c) + indexFile, err := server.getIndexFile(log, repo) + if err != nil { + c.Status(err.Status) + return + } + c.Status(200) +} + func (server *MultiTenantServer) getArtifactHubFileRequestHandler(c *gin.Context) { repo := c.Param("repo") log := server.Logger.ContextLoggingFn(c) diff --git a/pkg/chartmuseum/server/multitenant/routes.go b/pkg/chartmuseum/server/multitenant/routes.go index 785a83f7..77a673a4 100644 --- a/pkg/chartmuseum/server/multitenant/routes.go +++ b/pkg/chartmuseum/server/multitenant/routes.go @@ -37,6 +37,7 @@ func (s *MultiTenantServer) Routes() []*cm_router.Route { helmChartRepositoryRoutes := []*cm_router.Route{ {Method: "GET", Path: "/:repo/index.yaml", Handler: s.getIndexFileRequestHandler, Action: cm_auth.PullAction}, + {Method: "HEAD", Path: "/:repo/index.yaml", Handler: s.headIndexFileRequestHandler, Action: cm_auth.PullAction}, {Method: "GET", Path: "/:repo/charts/:filename", Handler: s.getStorageObjectRequestHandler, Action: cm_auth.PullAction}, } diff --git a/pkg/chartmuseum/server/multitenant/server_test.go b/pkg/chartmuseum/server/multitenant/server_test.go index 3b4c1246..59d85c90 100644 --- a/pkg/chartmuseum/server/multitenant/server_test.go +++ b/pkg/chartmuseum/server/multitenant/server_test.go @@ -1070,6 +1070,10 @@ func (suite *MultiTenantServerTestSuite) testAllRoutes(repo string, depth int) { res = suite.doRequest(stype, "GET", fmt.Sprintf("%s/index.yaml", repoPrefix), nil, "") suite.Equal(200, res.Status(), fmt.Sprintf("200 GET %s/index.yaml", repoPrefix)) + // HEAD /:repo/index.yaml + res = suite.doRequest(stype, "HEAD", fmt.Sprintf("%s/index.yaml", repoPrefix), nil, "") + suite.Equal(200, res.Status(), fmt.Sprintf("200 HEAD %s/index.yaml", repoPrefix)) + // GET /:repo/artifacthub-repo.yaml res = suite.doRequest(stype, "GET", fmt.Sprintf("%s/artifacthub-repo.yml", repoPrefix), nil, "") suite.Equal(200, res.Status(), fmt.Sprintf("200 GET %s/artifacthub-repo.yml", repoPrefix)) From f42867e7a89f15ecb7ebed55db7d4b3a660ea59d Mon Sep 17 00:00:00 2001 From: Skiepp Date: Wed, 12 Oct 2022 09:49:55 +0200 Subject: [PATCH 2/2] Requested by scbizu Signed-off-by: Skiepp --- pkg/chartmuseum/server/multitenant/handlers.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pkg/chartmuseum/server/multitenant/handlers.go b/pkg/chartmuseum/server/multitenant/handlers.go index 2db589b7..6743b82b 100644 --- a/pkg/chartmuseum/server/multitenant/handlers.go +++ b/pkg/chartmuseum/server/multitenant/handlers.go @@ -131,13 +131,6 @@ func (server *MultiTenantServer) getIndexFileRequestHandler(c *gin.Context) { } func (server *MultiTenantServer) headIndexFileRequestHandler(c *gin.Context) { - repo := c.Param("repo") - log := server.Logger.ContextLoggingFn(c) - indexFile, err := server.getIndexFile(log, repo) - if err != nil { - c.Status(err.Status) - return - } c.Status(200) }