Skip to content

Commit 11e6528

Browse files
authored
Merge pull request #2080 from ziadhany/osv-migration
Fix OSV to handle affected_packages correctly & add support to collect commits
2 parents 7bc98a1 + 49b0a39 commit 11e6528

34 files changed

+2930
-15
lines changed

vulnerabilities/pipelines/v2_importers/github_osv_importer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
from vulnerabilities.importer import AdvisoryData
1717
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
18+
from vulnerabilities.pipes.osv_v2 import parse_advisory_data_v3
1819
from vulnerabilities.utils import get_advisory_url
1920

2021

@@ -47,8 +48,6 @@ def advisories_count(self):
4748
return sum(1 for _ in advisory_dir.rglob("*.json"))
4849

4950
def collect_advisories(self) -> Iterable[AdvisoryData]:
50-
from vulnerabilities.importers.osv import parse_advisory_data_v2
51-
5251
supported_ecosystems = [
5352
"pypi",
5453
"npm",
@@ -72,7 +71,7 @@ def collect_advisories(self) -> Iterable[AdvisoryData]:
7271
with open(file) as f:
7372
raw_data = json.load(f)
7473
advisory_text = file.read_text()
75-
yield parse_advisory_data_v2(
74+
yield parse_advisory_data_v3(
7675
raw_data=raw_data,
7776
supported_ecosystems=supported_ecosystems,
7877
advisory_url=advisory_url,

vulnerabilities/pipelines/v2_importers/oss_fuzz.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
from vulnerabilities.importer import AdvisoryData
1717
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
18+
from vulnerabilities.pipes.osv_v2 import parse_advisory_data_v3
1819
from vulnerabilities.utils import get_advisory_url
1920

2021
logger = logging.getLogger(__name__)
@@ -43,8 +44,6 @@ def advisories_count(self):
4344
return sum(1 for _ in vulns_directory.rglob("*.yaml"))
4445

4546
def collect_advisories(self) -> Iterable[AdvisoryData]:
46-
from vulnerabilities.importers.osv import parse_advisory_data_v2
47-
4847
base_directory = Path(self.vcs_response.dest_dir)
4948
vulns_directory = base_directory / "vulns"
5049

@@ -56,7 +55,7 @@ def collect_advisories(self) -> Iterable[AdvisoryData]:
5655
)
5756
advisory_text = advisory.read_text()
5857
advisory_dict = saneyaml.load(advisory_text)
59-
yield parse_advisory_data_v2(
58+
yield parse_advisory_data_v3(
6059
raw_data=advisory_dict,
6160
supported_ecosystems=["generic"],
6261
advisory_url=advisory_url,

vulnerabilities/pipelines/v2_importers/pypa_importer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
from vulnerabilities.importer import AdvisoryData
1717
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
18+
from vulnerabilities.pipes.osv_v2 import parse_advisory_data_v3
1819
from vulnerabilities.utils import get_advisory_url
1920

2021

@@ -46,8 +47,6 @@ def advisories_count(self):
4647
return sum(1 for _ in vulns_directory.rglob("*.yaml"))
4748

4849
def collect_advisories(self) -> Iterable[AdvisoryData]:
49-
from vulnerabilities.importers.osv import parse_advisory_data_v2
50-
5150
base_directory = Path(self.vcs_response.dest_dir)
5251
vulns_directory = base_directory / "vulns"
5352

@@ -59,7 +58,7 @@ def collect_advisories(self) -> Iterable[AdvisoryData]:
5958
)
6059
advisory_text = advisory.read_text()
6160
advisory_dict = saneyaml.load(advisory_text)
62-
yield parse_advisory_data_v2(
61+
yield parse_advisory_data_v3(
6362
raw_data=advisory_dict,
6463
supported_ecosystems=["pypi"],
6564
advisory_url=advisory_url,

vulnerabilities/pipelines/v2_importers/pysec_importer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
from vulnerabilities.importer import AdvisoryData
1818
from vulnerabilities.pipelines import VulnerableCodeBaseImporterPipelineV2
19+
from vulnerabilities.pipes.osv_v2 import parse_advisory_data_v3
1920

2021

2122
class PyPIImporterPipeline(VulnerableCodeBaseImporterPipelineV2):
@@ -47,7 +48,6 @@ def advisories_count(self) -> int:
4748

4849
def collect_advisories(self) -> Iterable[AdvisoryData]:
4950
"""Yield AdvisoryData using a zipped data dump of OSV data"""
50-
from vulnerabilities.importers.osv import parse_advisory_data_v2
5151

5252
with ZipFile(BytesIO(self.advisory_zip)) as zip_file:
5353
for file_name in zip_file.namelist():
@@ -60,7 +60,7 @@ def collect_advisories(self) -> Iterable[AdvisoryData]:
6060
with zip_file.open(file_name) as f:
6161
vul_info = json.load(f)
6262
advisory_text = f.read()
63-
yield parse_advisory_data_v2(
63+
yield parse_advisory_data_v3(
6464
raw_data=vul_info,
6565
supported_ecosystems=["pypi"],
6666
advisory_url=self.url,

0 commit comments

Comments
 (0)