diff --git a/requirements.txt b/requirements.txt index 93587da8d..729b349c4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -107,7 +107,7 @@ toml==0.10.2 tomli==2.0.1 traitlets==5.1.1 typing_extensions==4.1.1 -univers==30.9.1 +univers==30.10.0 urllib3==1.26.9 wcwidth==0.2.5 websocket-client==0.59.0 diff --git a/setup.cfg b/setup.cfg index 651d6d6fa..7d661e23c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -70,7 +70,7 @@ install_requires = #essentials packageurl-python>=0.10.5rc1 - univers>=30.9.1 + univers>=30.10.0 license-expression>=21.6.14 # file and data formats diff --git a/vulnerabilities/package_managers.py b/vulnerabilities/package_managers.py index e9cc34af6..26473e0c5 100644 --- a/vulnerabilities/package_managers.py +++ b/vulnerabilities/package_managers.py @@ -556,6 +556,22 @@ def fetch(self, pkg: str) -> Iterable[PackageVersion]: ) +class ConanVersionAPI(VersionAPI): + """ + Fetch versions of Erlang packages from the hex API + """ + + package_type = "conan" + + def fetch(self, pkg: str) -> Iterable[PackageVersion]: + response = get_response( + url=f"https://conan.io/center/api/ui/details?name={pkg}&user=_&channel=_", + content_type="json", + ) + for release in response["versions"]: + yield PackageVersion(value=release["version"]) + + class GoproxyVersionAPI(VersionAPI): """ Fetch versions of Go "golang" packages from the Go proxy API @@ -688,6 +704,7 @@ def fetch(self, pkg: str) -> Iterable[PackageVersion]: CratesVersionAPI, DebianVersionAPI, GitHubTagsAPI, + ConanVersionAPI, } VERSION_API_CLASSES_BY_PACKAGE_TYPE = {cls.package_type: cls for cls in VERSION_API_CLASSES}