Skip to content

Commit 8b56469

Browse files
committed
Add missing PURL type to registry mappings
Adds support for 12 additional package ecosystems (bower, brew, carthage, clojars, conda, cpan, cran, elm, hackage, julia, pub, puppet) to match default registries from ecosyste.ms API. Also fixes typo in cocoapods registry URL. Includes test cases for all new mappings.
1 parent d007d32 commit 8b56469

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

lib/ecosystems/package.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,28 @@ func GetPackageVersionData(purl packageurl.PackageURL) (*packages.GetRegistryPac
7878
func purlToEcosystemsRegistry(purl packageurl.PackageURL) string {
7979
return map[string]string{
8080
packageurl.TypeApk: "alpine-edge",
81+
packageurl.TypeBower: "bower.io",
82+
packageurl.TypeBrew: "formulae.brew.sh",
8183
packageurl.TypeCargo: "crates.io",
82-
packageurl.TypeCocoapods: "cocoapod.org",
84+
packageurl.TypeCarthage: "carthage",
85+
packageurl.TypeClojars: "clojars.org",
86+
packageurl.TypeCocoapods: "cocoapods.org",
8387
packageurl.TypeComposer: "packagist.org",
88+
packageurl.TypeConda: "anaconda.org",
89+
packageurl.TypeCpan: "metacpan.org",
90+
packageurl.TypeCran: "cran.r-project.org",
8491
packageurl.TypeDocker: "hub.docker.com",
92+
packageurl.TypeElm: "package.elm-lang.org",
8593
packageurl.TypeGem: "rubygems.org",
8694
packageurl.TypeGolang: "proxy.golang.org",
95+
packageurl.TypeHackage: "hackage.haskell.org",
8796
packageurl.TypeHex: "hex.pm",
97+
packageurl.TypeJulia: "juliahub.com",
8898
packageurl.TypeMaven: "repo1.maven.org",
8999
packageurl.TypeNPM: "npmjs.org",
90100
packageurl.TypeNuget: "nuget.org",
101+
packageurl.TypePub: "pub.dev",
102+
packageurl.TypePuppet: "forge.puppet.com",
91103
packageurl.TypePyPi: "pypi.org",
92104
packageurl.TypeSwift: "swiftpackageindex.com",
93105
}[purl.Type]

lib/ecosystems/package_test.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,22 @@ func TestPurlToEcosystemsRegistry(t *testing.T) {
113113
{"pkg:composer/symfony/[email protected]", "packagist.org"},
114114
{"pkg:gem/[email protected]", "rubygems.org"},
115115
{"pkg:cargo/[email protected]", "crates.io"},
116-
{"pkg:cocoapods/[email protected]", "cocoapod.org"},
116+
{"pkg:cocoapods/[email protected]", "cocoapods.org"},
117117
{"pkg:apk/alpine/[email protected]", "alpine-edge"},
118118
{"pkg:swift/github.com/yonaskolb/[email protected]", "swiftpackageindex.com"},
119119
{"pkg:docker/library%2Falpine", "hub.docker.com"},
120+
{"pkg:bower/[email protected]", "bower.io"},
121+
{"pkg:brew/[email protected]", "formulae.brew.sh"},
122+
{"pkg:carthage/Alamofire/[email protected]", "carthage"},
123+
{"pkg:clojars/ring/[email protected]", "clojars.org"},
124+
{"pkg:conda/[email protected]", "anaconda.org"},
125+
{"pkg:cpan/[email protected]", "metacpan.org"},
126+
{"pkg:cran/[email protected]", "cran.r-project.org"},
127+
{"pkg:elm/elm/[email protected]", "package.elm-lang.org"},
128+
{"pkg:hackage/[email protected]", "hackage.haskell.org"},
129+
{"pkg:julia/[email protected]", "juliahub.com"},
130+
{"pkg:pub/[email protected]", "pub.dev"},
131+
{"pkg:puppet/puppetlabs/[email protected]", "forge.puppet.com"},
120132
}
121133

122134
for _, tc := range testCases {

0 commit comments

Comments
 (0)