Skip to content

Commit 4bd76d5

Browse files
committed
Add repo URL support and testing for cocoapods #143
Reference: #143 Signed-off-by: John M. Horan <johnmhoran@gmail.com>
1 parent ef3747a commit 4bd76d5

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

src/packageurl/contrib/purl2url.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,20 @@ def build_golang_repo_url(purl):
304304
return f"https://pkg.go.dev/{namespace}/{name}"
305305

306306

307+
@repo_router.route("pkg:cocoapods/.*")
308+
def build_cocoapods_repo_url(purl):
309+
"""
310+
Return a CocoaPods repo URL from the `purl` string.
311+
"""
312+
purl_data = PackageURL.from_string(purl)
313+
name = purl_data.name
314+
315+
if name:
316+
repository_homepage_url = f"https://cocoapods.org/pods/{name}"
317+
318+
return repository_homepage_url
319+
320+
307321
# Download URLs:
308322

309323

tests/contrib/test_purl2url.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ def test_purl2url_get_repo_url():
6464
"pkg:golang/xorm.io/xorm": "https://pkg.go.dev/xorm.io/xorm",
6565
"pkg:golang/xorm.io/xorm@v0.8.2": "https://pkg.go.dev/xorm.io/xorm@v0.8.2",
6666
"pkg:golang/gopkg.in/ldap.v3@v3.1.0": "https://pkg.go.dev/gopkg.in/ldap.v3@v3.1.0",
67+
"pkg:cocoapods/AFNetworking@4.0.1": "https://cocoapods.org/pods/AFNetworking",
68+
"pkg:cocoapods/MapsIndoors@3.24.0": "https://cocoapods.org/pods/MapsIndoors",
6769
}
6870

6971
for purl, url in purls_url.items():
@@ -134,7 +136,10 @@ def test_purl2url_get_inferred_urls():
134136
"https://gitlab.com/tg1999/firebase",
135137
"https://gitlab.com/tg1999/firebase/-/archive/1a122122/firebase-1a122122.tar.gz",
136138
],
137-
"pkg:pypi/sortedcontainers@2.4.0": ["https://pypi.org/project/sortedcontainers/2.4.0/"],
139+
"pkg:pypi/sortedcontainers@2.4.0": [
140+
"https://pypi.org/project/sortedcontainers/2.4.0/"
141+
],
142+
"pkg:cocoapods/AFNetworking@4.0.1": ["https://cocoapods.org/pods/AFNetworking"],
138143
"pkg:composer/psr/log@1.1.3": ["https://packagist.org/packages/psr/log#1.1.3"],
139144
"pkg:rubygems/package-name": ["https://rubygems.org/gems/package-name"],
140145
"pkg:bitbucket/birkenfeld": [],

0 commit comments

Comments
 (0)