aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZettat123 <zettat123@gmail.com>2023-03-18 02:39:19 +0800
committerGitHub <noreply@github.com>2023-03-17 14:39:19 -0400
commit46addc1f938abefd346a7a74d815f6c4faaa6818 (patch)
tree8a6aa96bcf117e92a2433c1b5cd7e87909ee0dfb
parentd0f48187f92aea6dec0804c1a43731c1a77fd491 (diff)
downloadgitea-46addc1f938abefd346a7a74d815f6c4faaa6818.tar.gz
gitea-46addc1f938abefd346a7a74d815f6c4faaa6818.zip
Return `repository` in npm package metadata endpoint (#23539)
Close #23444 Add `Repository` to npm package `Metadata` struct so the `repository` in `package.json` can be stored and be returned in the endpoint. Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
-rw-r--r--modules/packages/npm/creator.go1
-rw-r--r--modules/packages/npm/creator_test.go7
-rw-r--r--modules/packages/npm/metadata.go1
-rw-r--r--routers/api/packages/npm/api.go1
-rw-r--r--tests/integration/api_packages_npm_test.go8
5 files changed, 18 insertions, 0 deletions
diff --git a/modules/packages/npm/creator.go b/modules/packages/npm/creator.go
index 548d7ed9e5..5e7e0e2983 100644
--- a/modules/packages/npm/creator.go
+++ b/modules/packages/npm/creator.go
@@ -223,6 +223,7 @@ func ParsePackage(r io.Reader) (*Package, error) {
OptionalDependencies: meta.OptionalDependencies,
Bin: meta.Bin,
Readme: meta.Readme,
+ Repository: meta.Repository,
},
}
diff --git a/modules/packages/npm/creator_test.go b/modules/packages/npm/creator_test.go
index 9a2b1e10b2..168f950038 100644
--- a/modules/packages/npm/creator_test.go
+++ b/modules/packages/npm/creator_test.go
@@ -26,6 +26,10 @@ func TestParsePackage(t *testing.T) {
packageDescription := "Test Description"
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
integrity := "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg=="
+ repository := Repository{
+ Type: "gitea",
+ URL: "http://localhost:3000/gitea/test.git",
+ }
t.Run("InvalidUpload", func(t *testing.T) {
p, err := ParsePackage(bytes.NewReader([]byte{0}))
@@ -242,6 +246,7 @@ func TestParsePackage(t *testing.T) {
Dist: PackageDistribution{
Integrity: integrity,
},
+ Repository: repository,
},
},
},
@@ -272,5 +277,7 @@ func TestParsePackage(t *testing.T) {
assert.Equal(t, "https://gitea.io/", p.Metadata.ProjectURL)
assert.Contains(t, p.Metadata.Dependencies, "package")
assert.Equal(t, "1.2.0", p.Metadata.Dependencies["package"])
+ assert.Equal(t, repository.Type, p.Metadata.Repository.Type)
+ assert.Equal(t, repository.URL, p.Metadata.Repository.URL)
})
}
diff --git a/modules/packages/npm/metadata.go b/modules/packages/npm/metadata.go
index aafbdf779c..77b77472a7 100644
--- a/modules/packages/npm/metadata.go
+++ b/modules/packages/npm/metadata.go
@@ -21,4 +21,5 @@ type Metadata struct {
OptionalDependencies map[string]string `json:"optional_dependencies,omitempty"`
Bin map[string]string `json:"bin,omitempty"`
Readme string `json:"readme,omitempty"`
+ Repository Repository `json:"repository,omitempty"`
}
diff --git a/routers/api/packages/npm/api.go b/routers/api/packages/npm/api.go
index f8d50f03cf..8470874884 100644
--- a/routers/api/packages/npm/api.go
+++ b/routers/api/packages/npm/api.go
@@ -45,6 +45,7 @@ func createPackageMetadataResponse(registryURL string, pds []*packages_model.Pac
Author: npm_module.User{Name: metadata.Author},
License: metadata.License,
Versions: versions,
+ Repository: metadata.Repository,
}
}
diff --git a/tests/integration/api_packages_npm_test.go b/tests/integration/api_packages_npm_test.go
index 6c4503f7e3..28c14fb3b8 100644
--- a/tests/integration/api_packages_npm_test.go
+++ b/tests/integration/api_packages_npm_test.go
@@ -37,6 +37,8 @@ func TestPackageNpm(t *testing.T) {
packageDescription := "Test Description"
packageBinName := "cli"
packageBinPath := "./cli.sh"
+ repoType := "gitea"
+ repoURL := "http://localhost:3000/gitea/test.git"
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
@@ -62,6 +64,10 @@ func TestPackageNpm(t *testing.T) {
"dist": {
"integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==",
"shasum": "aaa7eaf852a948b0aa05afeda35b1badca155d90"
+ },
+ "repository": {
+ "type": "` + repoType + `",
+ "url": "` + repoURL + `"
}
}
},
@@ -169,6 +175,8 @@ func TestPackageNpm(t *testing.T) {
assert.Equal(t, "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==", pmv.Dist.Integrity)
assert.Equal(t, "aaa7eaf852a948b0aa05afeda35b1badca155d90", pmv.Dist.Shasum)
assert.Equal(t, fmt.Sprintf("%s%s/-/%s/%s", setting.AppURL, root[1:], packageVersion, filename), pmv.Dist.Tarball)
+ assert.Equal(t, repoType, result.Repository.Type)
+ assert.Equal(t, repoURL, result.Repository.URL)
})
t.Run("AddTag", func(t *testing.T) {