4242from vulnerabilities .package_managers import MavenVersionAPI
4343from vulnerabilities .package_managers import NugetVersionAPI
4444from vulnerabilities .package_managers import ComposerVersionAPI
45+ from vulnerabilities .package_managers import PypiVersionAPI
46+ from vulnerabilities .package_managers import RubyVersionAPI
4547
4648# set of all possible values of first '%s' = {'MAVEN','COMPOSER', 'NUGET'}
4749# second '%s' is interesting, it will have the value '' for the first request,
@@ -132,6 +134,8 @@ def set_version_api(self, ecosystem: str) -> None:
132134 "MAVEN" : MavenVersionAPI ,
133135 "NUGET" : NugetVersionAPI ,
134136 "COMPOSER" : ComposerVersionAPI ,
137+ "PIP" : PypiVersionAPI ,
138+ "RUBYGEMS" : RubyVersionAPI
135139 }
136140 versioner = versioners .get (ecosystem )
137141 if versioner :
@@ -146,14 +150,14 @@ def process_name(ecosystem: str, pkg_name: str) -> Optional[Tuple[Optional[str],
146150 return
147151 ns , name = artifact_comps
148152 return ns , name
149-
150- if ecosystem == "NUGET" :
151- return None , pkg_name
152-
153+
153154 if ecosystem == "COMPOSER" :
154155 vendor , name = pkg_name .split ("/" )
155156 return vendor , name
156157
158+ if ecosystem == "NUGET" or ecosystem == "PIP" or ecosystem == "RUBYGEMS" :
159+ return None , pkg_name
160+
157161 def collect_packages (self , ecosystem ):
158162 packages = set ()
159163 for page in self .advisories [ecosystem ]:
@@ -172,23 +176,25 @@ def process_response(self) -> List[Advisory]:
172176
173177 if self .process_name (ecosystem , name ):
174178 ns , pkg_name = self .process_name (ecosystem , name )
175- else :
176- continue
177- aff_range = adv ["node" ]["vulnerableVersionRange" ]
178- aff_vers , unaff_vers = self .categorize_versions (
179- aff_range , self .version_api .get (name )
180- )
181- affected_purls = {
182- PackageURL (name = pkg_name , namespace = ns ,
183- version = version , type = pkg_type )
184- for version in aff_vers
185- }
186-
187- unaffected_purls = {
188- PackageURL (name = pkg_name , namespace = ns ,
189- version = version , type = pkg_type )
190- for version in unaff_vers
191- }
179+ aff_range = adv ["node" ]["vulnerableVersionRange" ]
180+ aff_vers , unaff_vers = self .categorize_versions (
181+ aff_range , self .version_api .get (name )
182+ )
183+ affected_purls = {
184+ PackageURL (name = pkg_name , namespace = ns ,
185+ version = version , type = pkg_type )
186+ for version in aff_vers
187+ }
188+
189+ unaffected_purls = {
190+ PackageURL (name = pkg_name , namespace = ns ,
191+ version = version , type = pkg_type )
192+ for version in unaff_vers
193+ }
194+ else :
195+ affected_purls = set ()
196+ unaffected_purls = set ()
197+
192198
193199 cve_ids = set ()
194200 vuln_references = []
0 commit comments