Skip to content

Commit 6e1c233

Browse files
committed
Add Maven support for purl2url: Add support of type as artifact type
1 parent 2bc0cb9 commit 6e1c233

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/packageurl/contrib/purl2url.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,9 +402,13 @@ def build_maven_download_url(purl):
402402
if purl_data.qualifiers and "repository_url" in purl_data.qualifiers:
403403
base_url = purl_data.qualifiers["repository_url"]
404404

405+
maven_type = "jar" # default to jar
406+
if purl_data.qualifiers and "type" in purl_data.qualifiers:
407+
maven_type = purl_data.qualifiers["type"]
408+
405409
if namespace and name and version:
406410
maven_namespace = namespace.replace(".", "/")
407-
return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}.jar"
411+
return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}.{maven_type}"
408412

409413

410414
@download_router.route("pkg:hackage/.*")

tests/contrib/test_purl2url.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ def test_purl2url_get_download_url():
9595
"pkg:gitlab/hoppr/[email protected]": "https://gitlab.com/hoppr/hoppr/-/archive/v1.11.1-dev.2/hoppr-v1.11.1-dev.2.tar.gz",
9696
"pkg:maven/org.apache.commons/[email protected]": "https://repo.maven.apache.org/maven2/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar",
9797
"pkg:maven/org.apache.commons/[email protected]?repository_url=https://repo1.maven.org/maven2": "https://repo1.maven.org/maven2/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar",
98+
"pkg:maven/org.apache.commons/[email protected]?type=pom": "https://repo.maven.apache.org/maven2/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.pom",
9899
# From `download_url` qualifier
99100
"pkg:github/yarnpkg/[email protected]?download_url=https://github.com/yarnpkg/yarn/releases/download/v1.3.2/yarn-v1.3.2.tar.gz&version_prefix=v": "https://github.com/yarnpkg/yarn/releases/download/v1.3.2/yarn-v1.3.2.tar.gz",
100101
"pkg:generic/lxc-master.tar.gz?download_url=https://salsa.debian.org/lxc-team/lxc/-/archive/master/lxc-master.tar.gz": "https://salsa.debian.org/lxc-team/lxc/-/archive/master/lxc-master.tar.gz",

0 commit comments

Comments
 (0)