Skip to content

Commit eb983df

Browse files
authored
Merge pull request #67 from progval/update-to-1.7.4
Update from 1.6.7 to 1.7.4
2 parents bd5b378 + ba3d6fa commit eb983df

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This library provides bindings to Open Source Security Foundation's
2020
Open Source Vulnerability (osv) schema and a client to access
2121
the API from the Rust Language.
2222

23-
Currently compatible with v1.6.7 of the [ossf/osv-schema](https://github.com/ossf/osv-schema).
23+
Currently compatible with v1.7.4 of the [ossf/osv-schema](https://github.com/ossf/osv-schema).
2424

2525
### References
2626

src/schema.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ pub type Version = String;
3333
#[non_exhaustive]
3434
pub enum Ecosystem {
3535
AlmaLinux(Option<String>),
36+
Alpaquita,
3637
Alpine(Option<String>),
3738
Android,
39+
BellSoftHardenedContainers,
3840
Bioconductor,
3941
Bitnami,
4042
Chainguard,
@@ -43,18 +45,23 @@ pub enum Ecosystem {
4345
CratesIO,
4446
Debian(Option<String>),
4547
DWF,
48+
Echo,
4649
GHC,
4750
GSD,
4851
GitHubActions,
4952
Go,
5053
Hackage,
5154
Hex,
5255
JavaScript,
56+
Julia,
57+
Kubernetes,
5358
Linux,
5459
Mageia(String),
5560
Maven(String),
61+
MinimOS,
5662
Npm,
5763
NuGet,
64+
OpenEuler,
5865
OpenSUSE(Option<String>),
5966
OssFuzz,
6067
Packagist,
@@ -75,6 +82,7 @@ pub enum Ecosystem {
7582
lts: bool,
7683
},
7784
UVI,
85+
VSCode,
7886
Wolfi,
7987
}
8088

@@ -88,11 +96,15 @@ impl Serialize for Ecosystem {
8896
Ecosystem::AlmaLinux(Some(release)) => {
8997
serializer.serialize_str(&format!("AlmaLinux:{}", release))
9098
}
99+
Ecosystem::Alpaquita => serializer.serialize_str("Alpaquita"),
91100
Ecosystem::Alpine(None) => serializer.serialize_str("Alpine"),
92101
Ecosystem::Alpine(Some(version)) => {
93102
serializer.serialize_str(&format!("Alpine:{}", version))
94103
}
95104
Ecosystem::Android => serializer.serialize_str("Android"),
105+
Ecosystem::BellSoftHardenedContainers => {
106+
serializer.serialize_str("BellSoft Hardened Containers")
107+
}
96108
Ecosystem::Bioconductor => serializer.serialize_str("Bioconductor"),
97109
Ecosystem::Bitnami => serializer.serialize_str("Bitnami"),
98110
Ecosystem::Chainguard => serializer.serialize_str("Chainguard"),
@@ -104,13 +116,16 @@ impl Serialize for Ecosystem {
104116
serializer.serialize_str(&format!("Debian:{}", version))
105117
}
106118
Ecosystem::DWF => serializer.serialize_str("DWF"),
119+
Ecosystem::Echo => serializer.serialize_str("Echo"),
107120
Ecosystem::GHC => serializer.serialize_str("GHC"),
108121
Ecosystem::GSD => serializer.serialize_str("GSD"),
109122
Ecosystem::GitHubActions => serializer.serialize_str("GitHub Actions"),
110123
Ecosystem::Go => serializer.serialize_str("Go"),
111124
Ecosystem::Hackage => serializer.serialize_str("Hackage"),
112125
Ecosystem::Hex => serializer.serialize_str("Hex"),
113126
Ecosystem::JavaScript => serializer.serialize_str("JavaScript"),
127+
Ecosystem::Julia => serializer.serialize_str("Julia"),
128+
Ecosystem::Kubernetes => serializer.serialize_str("Kubernetes"),
114129
Ecosystem::Linux => serializer.serialize_str("Linux"),
115130
Ecosystem::Mageia(release) => serializer.serialize_str(&format!("Mageia:{}", release)),
116131
Ecosystem::Maven(repository) => {
@@ -120,8 +135,10 @@ impl Serialize for Ecosystem {
120135
};
121136
serializer.serialize_str(&mvn)
122137
}
138+
Ecosystem::MinimOS => serializer.serialize_str("MinimOS"),
123139
Ecosystem::Npm => serializer.serialize_str("npm"),
124140
Ecosystem::NuGet => serializer.serialize_str("NuGet"),
141+
Ecosystem::OpenEuler => serializer.serialize_str("openEuler"),
125142
Ecosystem::OpenSUSE(None) => serializer.serialize_str("openSUSE"),
126143
Ecosystem::OpenSUSE(Some(release)) => {
127144
serializer.serialize_str(&format!("openSUSE:{}", release))
@@ -175,6 +192,7 @@ impl Serialize for Ecosystem {
175192
serializer.serialize_str(&serialized)
176193
}
177194
Ecosystem::UVI => serializer.serialize_str("UVI"),
195+
Ecosystem::VSCode => serializer.serialize_str("VSCode"),
178196
Ecosystem::Wolfi => serializer.serialize_str("Wolfi"),
179197
}
180198
}
@@ -200,6 +218,7 @@ impl<'de> Deserialize<'de> for Ecosystem {
200218
{
201219
match value {
202220
"AlmaLinux" | "AlmaLinux:" => Ok(Ecosystem::AlmaLinux(None)),
221+
"Alpaquita" => Ok(Ecosystem::Alpaquita),
203222
_ if value.starts_with("AlmaLinux:") => Ok(Ecosystem::AlmaLinux(
204223
value.strip_prefix("AlmaLinux:").map(|v| v.to_string()),
205224
)),
@@ -208,6 +227,7 @@ impl<'de> Deserialize<'de> for Ecosystem {
208227
value.strip_prefix("Alpine:").map(|v| v.to_string()),
209228
)),
210229
"Android" => Ok(Ecosystem::Android),
230+
"BellSoft Hardened Containers" => Ok(Ecosystem::BellSoftHardenedContainers),
211231
"Bioconductor" => Ok(Ecosystem::Bioconductor),
212232
"Bitnami" => Ok(Ecosystem::Bitnami),
213233
"Chainguard" => Ok(Ecosystem::Chainguard),
@@ -219,13 +239,16 @@ impl<'de> Deserialize<'de> for Ecosystem {
219239
value.strip_prefix("Debian:").map(|v| v.to_string()),
220240
)),
221241
"DWF" => Ok(Ecosystem::DWF),
242+
"Echo" => Ok(Ecosystem::Echo),
222243
"GHC" => Ok(Ecosystem::GHC),
223244
"GitHub Actions" => Ok(Ecosystem::GitHubActions),
224245
"Go" => Ok(Ecosystem::Go),
225246
"GSD" => Ok(Ecosystem::GSD),
226247
"Hackage" => Ok(Ecosystem::Hackage),
227248
"Hex" => Ok(Ecosystem::Hex),
228249
"JavaScript" => Ok(Ecosystem::JavaScript),
250+
"Julia" => Ok(Ecosystem::Julia),
251+
"Kubernetes" => Ok(Ecosystem::Kubernetes),
229252
"Linux" => Ok(Ecosystem::Linux),
230253
_ if value.starts_with("Mageia:") => Ok(Ecosystem::Mageia(
231254
value
@@ -239,8 +262,10 @@ impl<'de> Deserialize<'de> for Ecosystem {
239262
_ if value.starts_with("Maven:") => Ok(Ecosystem::Maven(
240263
value.strip_prefix("Maven:").map(|v| v.to_string()).unwrap(),
241264
)),
265+
"MinimOS" => Ok(Ecosystem::MinimOS),
242266
"npm" => Ok(Ecosystem::Npm),
243267
"NuGet" => Ok(Ecosystem::NuGet),
268+
"openEuler" => Ok(Ecosystem::OpenEuler),
244269
"openSUSE" => Ok(Ecosystem::OpenSUSE(None)),
245270
_ if value.starts_with("openSUSE:") => Ok(Ecosystem::OpenSUSE(
246271
value.strip_prefix("openSUSE:").map(|v| v.to_string()),
@@ -282,6 +307,7 @@ impl<'de> Deserialize<'de> for Ecosystem {
282307
).ok_or(de::Error::unknown_variant(value, &["Ecosystem"]))
283308
}
284309
"UVI" => Ok(Ecosystem::UVI),
310+
"VSCode" => Ok(Ecosystem::VSCode),
285311
"Wolfi" => Ok(Ecosystem::Wolfi),
286312
_ => Err(de::Error::unknown_variant(value, &["Ecosystem"])),
287313
}
@@ -473,6 +499,11 @@ pub enum SeverityType {
473499
#[serde(rename = "CVSS_V4")]
474500
CVSSv4,
475501

502+
/// A lowercased string representing the [Ubuntu priority](https://ubuntu.com/security/cves/about#priority).
503+
/// This is based on many factors including severity, importance, risk, estimated number of affected users,
504+
/// software configuration, active exploitation, and other factors.
505+
Ubuntu,
506+
476507
/// The severity score was arrived at by using an unspecified
477508
/// scoring method.
478509
#[serde(rename = "UNSPECIFIED")]
@@ -584,6 +615,11 @@ pub struct Vulnerability {
584615
#[serde(skip_serializing_if = "Option::is_none")]
585616
pub aliases: Option<Vec<String>>,
586617

618+
/// The `upstream` field gives a list of IDs of upstream vulnerabilities that are referred to
619+
/// by the vulnerability entry.
620+
#[serde(skip_serializing_if = "Option::is_none")]
621+
pub upstream: Option<Vec<String>>,
622+
587623
/// The related field gives a list of IDs of closely related vulnerabilities, such as the same
588624
/// problem in alternate ecosystems.
589625
#[serde(skip_serializing_if = "Option::is_none")]
@@ -649,6 +685,7 @@ mod tests {
649685
modified: chrono::Utc::now(),
650686
withdrawn: None,
651687
aliases: None,
688+
upstream: None,
652689
related: None,
653690
summary: None,
654691
details: None,

0 commit comments

Comments
 (0)