From c6cb982b8a73f43a8ae47ea5eeb67886a157a1d9 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Thu, 4 Aug 2022 21:26:07 +0000 Subject: [PATCH 1/3] Allow file overwrite for meta files. --- routers/api/packages/maven/maven.go | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/api/packages/maven/maven.go b/routers/api/packages/maven/maven.go index bba4babf04f6f..b3f4eab5877c0 100644 --- a/routers/api/packages/maven/maven.go +++ b/routers/api/packages/maven/maven.go @@ -268,6 +268,7 @@ func UploadPackageFile(ctx *context.Context) { }, Data: buf, IsLead: false, + OverwriteExisting: params.IsMeta, } // If it's the package pom file extract the metadata From ec967df3910f389a74dccb2759291e50e6ff00ec Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Thu, 4 Aug 2022 21:52:11 +0000 Subject: [PATCH 2/3] Added tests. --- integrations/api_packages_maven_test.go | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/integrations/api_packages_maven_test.go b/integrations/api_packages_maven_test.go index c7c45426859e7..a436d02670080 100644 --- a/integrations/api_packages_maven_test.go +++ b/integrations/api_packages_maven_test.go @@ -42,6 +42,7 @@ func TestPackageMaven(t *testing.T) { defer PrintCurrentTest(t)() putFile(t, fmt.Sprintf("/%s/%s", packageVersion, filename), "test", http.StatusCreated) + putFile(t, fmt.Sprintf("/%s/%s", packageVersion, filename), "test", http.StatusBadRequest) putFile(t, "/maven-metadata.xml", "test", http.StatusOK) pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeMaven) @@ -135,12 +136,14 @@ func TestPackageMaven(t *testing.T) { pfs, err := packages.GetFilesByVersionID(db.DefaultContext, pvs[0].ID) assert.NoError(t, err) assert.Len(t, pfs, 2) - i := 0 - if strings.HasSuffix(pfs[1].Name, ".pom") { - i = 1 + for _, pf := range pfs { + if strings.HasSuffix(pf.Name, ".pom") { + assert.Equal(t, filename+".pom", pf.Name) + assert.True(t, pf.IsLead) + } else { + assert.False(t, pf.IsLead) + } } - assert.Equal(t, filename+".pom", pfs[i].Name) - assert.True(t, pfs[i].IsLead) }) t.Run("DownloadPOM", func(t *testing.T) { @@ -202,4 +205,13 @@ func TestPackageMaven(t *testing.T) { assert.Equal(t, checksum, resp.Body.String()) } }) + + t.Run("UploadSnapshot", func(t *testing.T) { + snapshotVersion := packageVersion+"-SNAPSHOT" + + putFile(t, fmt.Sprintf("/%s/%s", snapshotVersion, filename), "test", http.StatusCreated) + putFile(t, "/maven-metadata.xml", "test", http.StatusOK) + putFile(t, fmt.Sprintf("/%s/maven-metadata.xml", snapshotVersion), "test", http.StatusCreated) + putFile(t, fmt.Sprintf("/%s/maven-metadata.xml", snapshotVersion), "test-overwrite", http.StatusCreated) + }) } From 48c4f9dfece147307745a9b948f47892e5b872fa Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Thu, 4 Aug 2022 22:01:53 +0000 Subject: [PATCH 3/3] lint --- integrations/api_packages_maven_test.go | 2 +- routers/api/packages/maven/maven.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integrations/api_packages_maven_test.go b/integrations/api_packages_maven_test.go index a436d02670080..e7ab3bfe4b640 100644 --- a/integrations/api_packages_maven_test.go +++ b/integrations/api_packages_maven_test.go @@ -207,7 +207,7 @@ func TestPackageMaven(t *testing.T) { }) t.Run("UploadSnapshot", func(t *testing.T) { - snapshotVersion := packageVersion+"-SNAPSHOT" + snapshotVersion := packageVersion + "-SNAPSHOT" putFile(t, fmt.Sprintf("/%s/%s", snapshotVersion, filename), "test", http.StatusCreated) putFile(t, "/maven-metadata.xml", "test", http.StatusOK) diff --git a/routers/api/packages/maven/maven.go b/routers/api/packages/maven/maven.go index b3f4eab5877c0..072a15f95c41d 100644 --- a/routers/api/packages/maven/maven.go +++ b/routers/api/packages/maven/maven.go @@ -266,8 +266,8 @@ func UploadPackageFile(ctx *context.Context) { PackageFileInfo: packages_service.PackageFileInfo{ Filename: params.Filename, }, - Data: buf, - IsLead: false, + Data: buf, + IsLead: false, OverwriteExisting: params.IsMeta, }