openapi_github/models/
dependabot_alert.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct DependabotAlert {
17 #[serde(rename = "number")]
19 pub number: i32,
20 #[serde(rename = "state")]
22 pub state: State,
23 #[serde(rename = "dependency")]
24 pub dependency: Box<models::DependabotAlertWithRepositoryDependency>,
25 #[serde(rename = "security_advisory")]
26 pub security_advisory: Box<models::DependabotAlertSecurityAdvisory>,
27 #[serde(rename = "security_vulnerability")]
28 pub security_vulnerability: Box<models::DependabotAlertSecurityVulnerability>,
29 #[serde(rename = "url")]
31 pub url: String,
32 #[serde(rename = "html_url")]
34 pub html_url: String,
35 #[serde(rename = "created_at")]
37 pub created_at: String,
38 #[serde(rename = "updated_at")]
40 pub updated_at: String,
41 #[serde(rename = "dismissed_at", deserialize_with = "Option::deserialize")]
43 pub dismissed_at: Option<String>,
44 #[serde(rename = "dismissed_by", deserialize_with = "Option::deserialize")]
45 pub dismissed_by: Option<Box<models::NullableSimpleUser>>,
46 #[serde(rename = "dismissed_reason", deserialize_with = "Option::deserialize")]
48 pub dismissed_reason: Option<DismissedReason>,
49 #[serde(rename = "dismissed_comment", deserialize_with = "Option::deserialize")]
51 pub dismissed_comment: Option<String>,
52 #[serde(rename = "fixed_at", deserialize_with = "Option::deserialize")]
54 pub fixed_at: Option<String>,
55 #[serde(rename = "auto_dismissed_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
57 pub auto_dismissed_at: Option<Option<String>>,
58}
59
60impl DependabotAlert {
61 pub fn new(number: i32, state: State, dependency: models::DependabotAlertWithRepositoryDependency, security_advisory: models::DependabotAlertSecurityAdvisory, security_vulnerability: models::DependabotAlertSecurityVulnerability, url: String, html_url: String, created_at: String, updated_at: String, dismissed_at: Option<String>, dismissed_by: Option<models::NullableSimpleUser>, dismissed_reason: Option<DismissedReason>, dismissed_comment: Option<String>, fixed_at: Option<String>) -> DependabotAlert {
63 DependabotAlert {
64 number,
65 state,
66 dependency: Box::new(dependency),
67 security_advisory: Box::new(security_advisory),
68 security_vulnerability: Box::new(security_vulnerability),
69 url,
70 html_url,
71 created_at,
72 updated_at,
73 dismissed_at,
74 dismissed_by: dismissed_by.map(Box::new),
75 dismissed_reason,
76 dismissed_comment,
77 fixed_at,
78 auto_dismissed_at: None,
79 }
80 }
81}
82#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
84pub enum State {
85 #[serde(rename = "auto_dismissed")]
86 AutoDismissed,
87 #[serde(rename = "dismissed")]
88 Dismissed,
89 #[serde(rename = "fixed")]
90 Fixed,
91 #[serde(rename = "open")]
92 Open,
93}
94
95impl Default for State {
96 fn default() -> State {
97 Self::AutoDismissed
98 }
99}
100#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
102pub enum DismissedReason {
103 #[serde(rename = "fix_started")]
104 FixStarted,
105 #[serde(rename = "inaccurate")]
106 Inaccurate,
107 #[serde(rename = "no_bandwidth")]
108 NoBandwidth,
109 #[serde(rename = "not_used")]
110 NotUsed,
111 #[serde(rename = "tolerable_risk")]
112 TolerableRisk,
113}
114
115impl Default for DismissedReason {
116 fn default() -> DismissedReason {
117 Self::FixStarted
118 }
119}
120