@@ -52,7 +52,12 @@ def __init__(self, *args, **kwargs):
5252
5353 @classmethod
5454 def steps (cls ):
55- return (cls .collect_and_store_advisories ,)
55+ return (cls .clone , cls .collect_and_store_advisories , cls .clean_downloads )
56+
57+ def clean_downloads (self ):
58+ if self .vcs_response :
59+ self .log (f"Removing cloned repository" )
60+ self .vcs_response .delete ()
5661
5762 def clone (self ):
5863 self .log (f"Cloning `{ self .repo_url } `" )
@@ -166,8 +171,15 @@ def _advisory_affects_version(self, advisory: AdvisoryData) -> bool:
166171 def process_file (self , file , base_path , file_path = None ) -> Iterable [AdvisoryData ]:
167172 if file_path :
168173 relative_path = file_path
174+ advisory_id = (
175+ file_path .replace (".yml" , "" ).split ("/" )[- 2 ]
176+ + "/"
177+ + file_path .replace (".yml" , "" ).split ("/" )[- 1 ]
178+ )
169179 else :
170180 relative_path = str (file .relative_to (base_path )).strip ("/" )
181+ path_segments = str (file ).split ("/" )
182+ advisory_id = "/" .join (path_segments [- 2 :]).replace (".yml" , "" )
171183
172184 advisory_url = (
173185 f"https://github.com/dependabot/elixir-security-advisories/blob/master/{ relative_path } "
@@ -221,8 +233,8 @@ def process_file(self, file, base_path, file_path=None) -> Iterable[AdvisoryData
221233 date_published = dateparser .parse (yaml_file .get ("disclosure_date" ))
222234
223235 yield AdvisoryData (
224- advisory_id = cve_id ,
225- aliases = [],
236+ advisory_id = advisory_id ,
237+ aliases = [cve_id ],
226238 summary = summary ,
227239 references_v2 = references ,
228240 affected_packages = affected_packages ,
0 commit comments