Skip to content

Commit 253109b

Browse files
authored
Use new packagist endpoint to collect composer versions (#198)
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent aa2ae08 commit 253109b

File tree

3 files changed

+3995
-9535
lines changed

3 files changed

+3995
-9535
lines changed

src/fetchcode/package_versions.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ def get_composer_versions_from_purl(purl):
240240
return
241241

242242
pkg = f"{purl.namespace}/{purl.name}"
243-
response = get_response(url=f"https://repo.packagist.org/p/{pkg}.json")
243+
response = get_response(url=f"https://repo.packagist.org/p2/{pkg}.json")
244244
if response:
245245
yield from composer_extract_versions(response, pkg)
246246

@@ -407,14 +407,17 @@ def fetch_version_info(version_info: str, escaped_pkg: str) -> Optional[PackageV
407407

408408

409409
def composer_extract_versions(resp: dict, pkg: str) -> Iterable[PackageVersion]:
410-
for version in get_item(resp, "packages", pkg) or []:
411-
if "dev" in version:
410+
for item in get_item(resp, "packages", pkg) or []:
411+
if "dev-" in item:
412412
continue
413413

414414
# This if statement ensures, that all_versions contains only released versions
415415
# See https://github.com/composer/composer/blob/44a4429978d1b3c6223277b875762b2930e83e8c/doc/articles/versions.md#tags # nopep8
416416
# for explanation of removing 'v'
417-
time = get_item(resp, "packages", pkg, version, "time")
417+
time = item.get("time")
418+
version = item.get("version")
419+
if not version:
420+
continue
418421
yield PackageVersion(
419422
value=cleaned_version(version),
420423
release_date=dateparser.parse(time) if time else None,

0 commit comments

Comments
 (0)