Skip to content

Commit b9b8074

Browse files
committed
Include package commit patches in impact exports
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent a67ffd2 commit b9b8074

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

vulnerabilities/pipes/export.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,16 @@ def serialize_references(reference):
113113
}
114114

115115

116+
def serialize_commit_patches(patches):
117+
return [
118+
{
119+
"vcs_url": p.vcs_url,
120+
"commit": p.commit_hash,
121+
}
122+
for p in patches.all()
123+
]
124+
125+
116126
def serialize_advisory(advisory):
117127
"""Return a plain data mapping serialized from advisory object."""
118128
aliases = sorted([a.alias for a in advisory.aliases.all()])
@@ -124,6 +134,12 @@ def serialize_advisory(advisory):
124134
"purl": impact.base_purl,
125135
"affected_versions": impact.affecting_vers,
126136
"fixed_versions": impact.fixed_vers,
137+
"fixed_in_commits": serialize_commit_patches(
138+
impact.fixed_by_package_commit_patches,
139+
),
140+
"introduced_in_commits": serialize_commit_patches(
141+
impact.introduced_by_package_commit_patches,
142+
),
127143
}
128144
for impact in advisory.impacted_packages.all()
129145
]

vulnerabilities/tests/pipelines/exporters/test_federate_vulnerabilities.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
from vulnerabilities.importer import AdvisoryDataV2
2323
from vulnerabilities.importer import AffectedPackageV2
24+
from vulnerabilities.importer import PackageCommitPatchData
2425
from vulnerabilities.pipelines import insert_advisory_v2
2526
from vulnerabilities.pipelines.exporters.federate_vulnerabilities import (
2627
FederatePackageVulnerabilities,
@@ -68,8 +69,13 @@ def setUp(self):
6869
package=PackageURL.from_string("pkg:npm/foobar"),
6970
affected_version_range=VersionRange.from_string("vers:npm/>=1.2.4"),
7071
fixed_version_range=VersionRange.from_string("vers:npm/2.0.0"),
72+
fixed_by_commit_patches=[
73+
PackageCommitPatchData(
74+
vcs_url="https://foobar.vcs/",
75+
commit_hash="982f801f",
76+
)
77+
],
7178
introduced_by_commit_patches=[],
72-
fixed_by_commit_patches=[],
7379
),
7480
],
7581
patches=[],

vulnerabilities/tests/test_data/exporters/federate_vulnerabilities/ADV-001-expected.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ impacted_packages:
88
- purl: pkg:npm/foobar
99
affected_versions: vers:npm/<=1.2.3
1010
fixed_versions: vers:npm/1.2.4
11+
fixed_in_commits: []
12+
introduced_in_commits: []
1113
severities: []
1214
weaknesses: []
1315
references: []

vulnerabilities/tests/test_data/exporters/federate_vulnerabilities/ADV-002-expected.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ impacted_packages:
88
- purl: pkg:npm/foobar
99
affected_versions: vers:npm/>=1.2.4
1010
fixed_versions: vers:npm/2.0.0
11+
fixed_in_commits:
12+
- vcs_url: https://foobar.vcs/
13+
commit: 982f801f
14+
introduced_in_commits: []
1115
severities: []
1216
weaknesses: []
1317
references: []

0 commit comments

Comments
 (0)