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>
This commit is contained in:
parent
d0f48187f9
commit
46addc1f93
|
@ -223,6 +223,7 @@ func ParsePackage(r io.Reader) (*Package, error) {
|
||||||
OptionalDependencies: meta.OptionalDependencies,
|
OptionalDependencies: meta.OptionalDependencies,
|
||||||
Bin: meta.Bin,
|
Bin: meta.Bin,
|
||||||
Readme: meta.Readme,
|
Readme: meta.Readme,
|
||||||
|
Repository: meta.Repository,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,10 @@ func TestParsePackage(t *testing.T) {
|
||||||
packageDescription := "Test Description"
|
packageDescription := "Test Description"
|
||||||
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
|
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
|
||||||
integrity := "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg=="
|
integrity := "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg=="
|
||||||
|
repository := Repository{
|
||||||
|
Type: "gitea",
|
||||||
|
URL: "http://localhost:3000/gitea/test.git",
|
||||||
|
}
|
||||||
|
|
||||||
t.Run("InvalidUpload", func(t *testing.T) {
|
t.Run("InvalidUpload", func(t *testing.T) {
|
||||||
p, err := ParsePackage(bytes.NewReader([]byte{0}))
|
p, err := ParsePackage(bytes.NewReader([]byte{0}))
|
||||||
|
@ -242,6 +246,7 @@ func TestParsePackage(t *testing.T) {
|
||||||
Dist: PackageDistribution{
|
Dist: PackageDistribution{
|
||||||
Integrity: integrity,
|
Integrity: integrity,
|
||||||
},
|
},
|
||||||
|
Repository: repository,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -272,5 +277,7 @@ func TestParsePackage(t *testing.T) {
|
||||||
assert.Equal(t, "https://gitea.io/", p.Metadata.ProjectURL)
|
assert.Equal(t, "https://gitea.io/", p.Metadata.ProjectURL)
|
||||||
assert.Contains(t, p.Metadata.Dependencies, "package")
|
assert.Contains(t, p.Metadata.Dependencies, "package")
|
||||||
assert.Equal(t, "1.2.0", 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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,4 +21,5 @@ type Metadata struct {
|
||||||
OptionalDependencies map[string]string `json:"optional_dependencies,omitempty"`
|
OptionalDependencies map[string]string `json:"optional_dependencies,omitempty"`
|
||||||
Bin map[string]string `json:"bin,omitempty"`
|
Bin map[string]string `json:"bin,omitempty"`
|
||||||
Readme string `json:"readme,omitempty"`
|
Readme string `json:"readme,omitempty"`
|
||||||
|
Repository Repository `json:"repository,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ func createPackageMetadataResponse(registryURL string, pds []*packages_model.Pac
|
||||||
Author: npm_module.User{Name: metadata.Author},
|
Author: npm_module.User{Name: metadata.Author},
|
||||||
License: metadata.License,
|
License: metadata.License,
|
||||||
Versions: versions,
|
Versions: versions,
|
||||||
|
Repository: metadata.Repository,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,8 @@ func TestPackageNpm(t *testing.T) {
|
||||||
packageDescription := "Test Description"
|
packageDescription := "Test Description"
|
||||||
packageBinName := "cli"
|
packageBinName := "cli"
|
||||||
packageBinPath := "./cli.sh"
|
packageBinPath := "./cli.sh"
|
||||||
|
repoType := "gitea"
|
||||||
|
repoURL := "http://localhost:3000/gitea/test.git"
|
||||||
|
|
||||||
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
|
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
|
||||||
|
|
||||||
|
@ -62,6 +64,10 @@ func TestPackageNpm(t *testing.T) {
|
||||||
"dist": {
|
"dist": {
|
||||||
"integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==",
|
"integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==",
|
||||||
"shasum": "aaa7eaf852a948b0aa05afeda35b1badca155d90"
|
"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, "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==", pmv.Dist.Integrity)
|
||||||
assert.Equal(t, "aaa7eaf852a948b0aa05afeda35b1badca155d90", pmv.Dist.Shasum)
|
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, 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) {
|
t.Run("AddTag", func(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue