diff --git a/src/packageurl/contrib/purl2url.py b/src/packageurl/contrib/purl2url.py index a4fd3c0..ad779d0 100644 --- a/src/packageurl/contrib/purl2url.py +++ b/src/packageurl/contrib/purl2url.py @@ -171,7 +171,7 @@ def build_gitlab_repo_url(purl): return f"https://gitlab.com/{namespace}/{name}" -@repo_router.route("pkg:gem/.*") +@repo_router.route("pkg:(gem|rubygems)/.*") def build_rubygems_repo_url(purl): """ Return a rubygems repo URL from the `purl` string. diff --git a/tests/contrib/test_purl2url.py b/tests/contrib/test_purl2url.py index b471ff0..ccf9f65 100644 --- a/tests/contrib/test_purl2url.py +++ b/tests/contrib/test_purl2url.py @@ -39,7 +39,8 @@ def test_purl2url_get_repo_url(): "pkg:cargo/rand@0.7.2": "https://crates.io/crates/rand/0.7.2", "pkg:cargo/abc": "https://crates.io/crates/abc", "pkg:gem/bundler@2.3.23": "https://rubygems.org/gems/bundler/versions/2.3.23", - "pkg:rubygems/package-name": None, + "pkg:rubygems/bundler@2.3.23": "https://rubygems.org/gems/bundler/versions/2.3.23", + "pkg:rubygems/package-name": "https://rubygems.org/gems/package-name", "pkg:bitbucket/birkenfeld/pygments-main": "https://bitbucket.org/birkenfeld/pygments-main", "pkg:bitbucket/birkenfeld/pygments-main@244fd47e07d1014f0aed9c": "https://bitbucket.org/birkenfeld/pygments-main", "pkg:bitbucket/birkenfeld/pygments-main@master#views": "https://bitbucket.org/birkenfeld/pygments-main", @@ -128,8 +129,10 @@ def test_purl2url_get_inferred_urls(): "https://gitlab.com/tg1999/firebase", "https://gitlab.com/tg1999/firebase/-/archive/1a122122/firebase-1a122122.tar.gz", ], - "pkg:pypi/sortedcontainers@2.4.0": ["https://pypi.org/project/sortedcontainers/2.4.0/"], - "pkg:rubygems/package-name": [], + "pkg:pypi/sortedcontainers@2.4.0": [ + "https://pypi.org/project/sortedcontainers/2.4.0/" + ], + "pkg:rubygems/package-name": ["https://rubygems.org/gems/package-name"], "pkg:bitbucket/birkenfeld": [], }