ephemeris_forge_github/config/
security.rs1use facet::Facet;
2
3#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
5#[repr(u8)]
6pub enum Status {
7 #[facet(rename = "enabled")]
9 Enabled,
10 #[facet(rename = "disabled")]
12 Disabled,
13}
14
15#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
17#[repr(u8)]
18pub enum ReviewerType {
19 #[facet(rename = "TEAM")]
21 Team,
22 #[facet(rename = "ROLE")]
24 Role,
25}
26
27#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
29#[repr(u8)]
30pub enum ReviewerMode {
31 #[facet(rename = "ALWAYS")]
33 Always,
34 #[facet(rename = "EXEMPT")]
36 Exempt,
37}
38
39#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
41#[facet(deny_unknown_fields)]
42pub struct Reviewer {
43 pub reviewer_id: u64,
45 pub reviewer_type: ReviewerType,
47 pub mode: ReviewerMode,
49}
50
51#[derive(Clone, Debug, Eq, Facet, PartialEq)]
53#[facet(deny_unknown_fields)]
54pub struct BypassOptions {
55 pub reviewers: Option<Vec<Reviewer>>,
57}
58
59#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
61#[repr(u8)]
62pub enum SetupState {
63 #[facet(rename = "configured")]
65 Configured,
66 #[facet(rename = "not-configured")]
68 NotConfigured,
69}
70
71#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
73#[repr(u8)]
74pub enum Language {
75 #[facet(rename = "actions")]
77 Actions,
78 #[facet(rename = "c-cpp")]
80 CCpp,
81 #[facet(rename = "csharp")]
83 Csharp,
84 #[facet(rename = "go")]
86 Go,
87 #[facet(rename = "java-kotlin")]
89 JavaKotlin,
90 #[facet(rename = "javascript-typescript")]
92 JavascriptTypescript,
93 #[facet(rename = "python")]
95 Python,
96 #[facet(rename = "ruby")]
98 Ruby,
99 #[facet(rename = "swift")]
101 Swift,
102}
103
104#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
106#[repr(u8)]
107pub enum RunnerType {
108 #[facet(rename = "standard")]
110 Standard,
111 #[facet(rename = "labeled")]
113 Labeled,
114}
115
116#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
118#[repr(u8)]
119pub enum QuerySuite {
120 #[facet(rename = "default")]
122 Default,
123 #[facet(rename = "extended")]
125 Extended,
126}
127
128#[derive(Clone, Copy, Debug, Eq, Facet, Ord, PartialEq, PartialOrd)]
130#[repr(u8)]
131pub enum ThreatModel {
132 #[facet(rename = "remote")]
134 Remote,
135 #[facet(rename = "remote_and_local")]
137 RemoteAndLocal,
138}
139
140#[derive(Clone, Debug, Eq, Facet, PartialEq)]
142#[facet(deny_unknown_fields)]
143pub struct CodeScanning {
144 pub state: Option<SetupState>,
146 pub languages: Option<Vec<Language>>,
148 pub runner_type: Option<RunnerType>,
150 pub runner_label: Option<String>,
152 pub query_suite: Option<QuerySuite>,
154 pub threat_model: Option<ThreatModel>,
156}
157
158#[derive(Clone, Debug, Eq, Facet, PartialEq)]
162#[facet(deny_unknown_fields)]
163pub struct Security {
164 pub advanced_security: Option<Status>,
166 pub code_security: Option<Status>,
168 pub secret_scanning: Option<Status>,
170 pub secret_scanning_push_protection: Option<Status>,
172 pub secret_scanning_ai_detection: Option<Status>,
174 pub secret_scanning_non_provider_patterns: Option<Status>,
176 pub secret_scanning_delegated_alert_dismissal: Option<Status>,
178 pub secret_scanning_delegated_bypass: Option<Status>,
180 pub secret_scanning_delegated_bypass_options: BypassOptions,
182 pub vulnerability_alerts: Option<bool>,
184 pub automated_security_fixes: Option<bool>,
186 pub private_vulnerability_reporting: Option<bool>,
188 pub code_scanning_default_setup: Option<CodeScanning>,
190}