Skip to content

Commit 69e6387

Browse files
committed
Add Maven support for purl2url: Add support of classifier as classifier
1 parent 6e1c233 commit 69e6387

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/packageurl/contrib/purl2url.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,8 +406,14 @@ def build_maven_download_url(purl):
406406
if purl_data.qualifiers and "type" in purl_data.qualifiers:
407407
maven_type = purl_data.qualifiers["type"]
408408

409+
classifier = None
410+
if purl_data.qualifiers and "classifier" in purl_data.qualifiers:
411+
classifier = purl_data.qualifiers["classifier"]
412+
409413
if namespace and name and version:
410414
maven_namespace = namespace.replace(".", "/")
415+
if classifier:
416+
return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}-{classifier}.{maven_type}"
411417
return f"{base_url}/{maven_namespace}/{name}/{version}/{name}-{version}.{maven_type}"
412418

413419

tests/contrib/test_purl2url.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ def test_purl2url_get_download_url():
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",
9898
"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",
99+
"pkg:maven/org.apache.commons/[email protected]?classifier=arbitrary": "https://repo.maven.apache.org/maven2/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2-arbitrary.jar",
99100
# From `download_url` qualifier
100101
"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",
101102
"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)