@@ -97,6 +97,14 @@ def __init__(self, *args, **kwargs):
9797 except KeyError :
9898 raise GitHubTokenError ("Environment variable GH_TOKEN is missing" )
9999
100+ self .ecosytem_type = {
101+ "RUBYGEMS" : "gem" ,
102+ "NUGET" : "nuget" ,
103+ "PIP" : "pypi" ,
104+ "MAVEN" : "maven" ,
105+ "COMPOSER" : "composer" ,
106+ }
107+
100108 def __enter__ (self ):
101109 self .advisories = self .fetch ()
102110
@@ -135,7 +143,7 @@ def set_version_api(self, ecosystem: str) -> None:
135143 "NUGET" : NugetVersionAPI ,
136144 "COMPOSER" : ComposerVersionAPI ,
137145 "PIP" : PypiVersionAPI ,
138- "RUBYGEMS" : RubyVersionAPI
146+ "RUBYGEMS" : RubyVersionAPI ,
139147 }
140148 versioner = versioners .get (ecosystem )
141149 if versioner :
@@ -150,7 +158,7 @@ def process_name(ecosystem: str, pkg_name: str) -> Optional[Tuple[Optional[str],
150158 return
151159 ns , name = artifact_comps
152160 return ns , name
153-
161+
154162 if ecosystem == "COMPOSER" :
155163 vendor , name = pkg_name .split ("/" )
156164 return vendor , name
@@ -169,7 +177,7 @@ def process_response(self) -> List[Advisory]:
169177 adv_list = []
170178 for ecosystem in self .advisories :
171179 self .set_version_api (ecosystem )
172- pkg_type = ecosystem . lower ()
180+ pkg_type = self . ecosytem_type [ ecosystem ]
173181 for resp_page in self .advisories [ecosystem ]:
174182 for adv in resp_page ["data" ]["securityVulnerabilities" ]["edges" ]:
175183 name = adv ["node" ]["package" ]["name" ]
@@ -181,21 +189,18 @@ def process_response(self) -> List[Advisory]:
181189 aff_range , self .version_api .get (name )
182190 )
183191 affected_purls = {
184- PackageURL (name = pkg_name , namespace = ns ,
185- version = version , type = pkg_type )
192+ PackageURL (name = pkg_name , namespace = ns , version = version , type = pkg_type )
186193 for version in aff_vers
187194 }
188195
189196 unaffected_purls = {
190- PackageURL (name = pkg_name , namespace = ns ,
191- version = version , type = pkg_type )
197+ PackageURL (name = pkg_name , namespace = ns , version = version , type = pkg_type )
192198 for version in unaff_vers
193199 }
194- else :
200+ else :
195201 affected_purls = set ()
196202 unaffected_purls = set ()
197203
198-
199204 cve_ids = set ()
200205 vuln_references = []
201206 vuln_desc = adv ["node" ]["advisory" ]["summary" ]
@@ -205,12 +210,13 @@ def process_response(self) -> List[Advisory]:
205210 cve_ids .add (vuln ["value" ])
206211
207212 elif vuln ["type" ] == "GHSA" :
208- ghsa = vuln ['value' ]
209- vuln_references .append (Reference (
210- reference_id = ghsa ,
211- url = "https://github.com/advisories/{}" .format (
212- ghsa )
213- ))
213+ ghsa = vuln ["value" ]
214+ vuln_references .append (
215+ Reference (
216+ reference_id = ghsa ,
217+ url = "https://github.com/advisories/{}" .format (ghsa ),
218+ )
219+ )
214220
215221 for cve_id in cve_ids :
216222 adv_list .append (
@@ -225,8 +231,9 @@ def process_response(self) -> List[Advisory]:
225231 return adv_list
226232
227233 @staticmethod
228- def categorize_versions (version_range : str , all_versions : Set [str ]) -> Tuple [Set [str ], Set [str ]]: # nopep8
234+ def categorize_versions (
235+ version_range : str , all_versions : Set [str ]
236+ ) -> Tuple [Set [str ], Set [str ]]: # nopep8
229237 version_range = RangeSpecifier (version_range )
230- affected_versions = {
231- version for version in all_versions if version in version_range }
238+ affected_versions = {version for version in all_versions if version in version_range }
232239 return (affected_versions , all_versions - affected_versions )
0 commit comments