ephemeris_forge_github/api/request/
security.rs1use facet::Facet;
2
3use crate::{Language, QuerySuite, Reviewer, RunnerType, SetupState, Status, ThreatModel};
4
5#[derive(Clone, Copy, Debug, Eq, Facet, PartialEq)]
7pub struct StatusBody {
8 pub status: Status,
10}
11
12#[derive(Clone, Debug, Eq, Facet, PartialEq)]
14pub struct ReviewersBody {
15 pub reviewers: Vec<Reviewer>,
17}
18
19#[derive(Clone, Debug, Default, Eq, Facet, PartialEq)]
23#[facet(skip_all_unless_truthy)]
24pub struct AnalysisPatch {
25 pub advanced_security: Option<StatusBody>,
27 pub code_security: Option<StatusBody>,
29 pub secret_scanning: Option<StatusBody>,
31 pub secret_scanning_push_protection: Option<StatusBody>,
33 pub secret_scanning_ai_detection: Option<StatusBody>,
35 pub secret_scanning_non_provider_patterns: Option<StatusBody>,
37 pub secret_scanning_delegated_alert_dismissal: Option<StatusBody>,
39 pub secret_scanning_delegated_bypass: Option<StatusBody>,
41 pub secret_scanning_delegated_bypass_options: Option<ReviewersBody>,
43}
44
45impl AnalysisPatch {
46 #[must_use]
48 pub fn is_empty(&self) -> bool {
49 *self == Self::default()
50 }
51}
52
53#[derive(Facet)]
55pub(crate) struct AnalysisBody {
56 pub(crate) security_and_analysis: AnalysisPatch,
57}
58
59#[derive(Clone, Debug, Default, Eq, Facet, PartialEq)]
61#[facet(skip_all_unless_truthy)]
62pub struct CodeScanningPatch {
63 pub state: Option<SetupState>,
65 pub languages: Option<Vec<Language>>,
67 pub runner_type: Option<RunnerType>,
69 pub runner_label: Option<String>,
71 pub query_suite: Option<QuerySuite>,
73 pub threat_model: Option<ThreatModel>,
75}