diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fa7f34795..261b2cfe6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,12 @@ Release notes +Version v30.2.1 +---------------- + +- We refactored and fixed the LaunchPad API code. + + Version v30.2.0 ---------------- diff --git a/setup.cfg b/setup.cfg index 192974522..c09e5ad44 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = vulnerablecode -version = 30.2.0 +version = 30.2.1 license = Apache-2.0 AND CC-BY-SA-4.0 # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 diff --git a/vulnerabilities/package_managers.py b/vulnerabilities/package_managers.py index 0b8363c5e..2cc16c6f0 100644 --- a/vulnerabilities/package_managers.py +++ b/vulnerabilities/package_managers.py @@ -137,17 +137,24 @@ def fetch(self, pkg: str) -> Iterable[PackageVersion]: while True: response = get_response(url=url, content_type="json") - entries = response["entries"] + if not response: + break + entries = response.get("entries") if not entries: break for release in entries: - source_package_version = release["source_package_version"] - source_package_version = remove_debian_default_epoch(source_package_version) - yield PackageVersion( - value=source_package_version, - release_date=dateparser.parse(release["date_published"]), - ) + source_package_version = release.get("source_package_version") + source_package_version = remove_debian_default_epoch(version=source_package_version) + date_published = release.get("date_published") + release_date = None + if date_published and type(date_published) is str: + release_date = dateparser.parse(date_published) + if source_package_version: + yield PackageVersion( + value=source_package_version, + release_date=release_date, + ) if response.get("next_collection_link"): url = response["next_collection_link"] else: diff --git a/vulnerablecode/__init__.py b/vulnerablecode/__init__.py index b50d54a13..1e68626f1 100644 --- a/vulnerablecode/__init__.py +++ b/vulnerablecode/__init__.py @@ -12,7 +12,7 @@ import warnings from pathlib import Path -__version__ = "30.2.0" +__version__ = "30.2.1" def command_line():