gitbundle_sdk/models/
pullreq_merge_output.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct PullreqMergeOutput {
17 #[serde(
18 rename = "allowed_methods",
19 default,
20 with = "::serde_with::rust::double_option",
21 skip_serializing_if = "Option::is_none"
22 )]
23 pub allowed_methods: Option<Option<Vec<models::PullreqMergeMethod>>>,
24 #[serde(
25 rename = "branch_deleted",
26 default,
27 with = "::serde_with::rust::double_option",
28 skip_serializing_if = "Option::is_none"
29 )]
30 pub branch_deleted: Option<Option<bool>>,
31 #[serde(rename = "conflict_files")]
32 pub conflict_files: Vec<String>,
33 #[serde(
34 rename = "dry_run",
35 default,
36 with = "::serde_with::rust::double_option",
37 skip_serializing_if = "Option::is_none"
38 )]
39 pub dry_run: Option<Option<bool>>,
40 #[serde(
41 rename = "minimum_required_approvals_count",
42 default,
43 with = "::serde_with::rust::double_option",
44 skip_serializing_if = "Option::is_none"
45 )]
46 pub minimum_required_approvals_count: Option<Option<i64>>,
47 #[serde(
48 rename = "minimum_required_approvals_count_latest",
49 default,
50 with = "::serde_with::rust::double_option",
51 skip_serializing_if = "Option::is_none"
52 )]
53 pub minimum_required_approvals_count_latest: Option<Option<i64>>,
54 #[serde(
55 rename = "requires_code_owners_approval",
56 default,
57 with = "::serde_with::rust::double_option",
58 skip_serializing_if = "Option::is_none"
59 )]
60 pub requires_code_owners_approval: Option<Option<bool>>,
61 #[serde(
62 rename = "requires_code_owners_approval_latest",
63 default,
64 with = "::serde_with::rust::double_option",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub requires_code_owners_approval_latest: Option<Option<bool>>,
68 #[serde(
69 rename = "requires_comment_resolution",
70 default,
71 with = "::serde_with::rust::double_option",
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub requires_comment_resolution: Option<Option<bool>>,
75 #[serde(
76 rename = "requires_no_change_requests",
77 default,
78 with = "::serde_with::rust::double_option",
79 skip_serializing_if = "Option::is_none"
80 )]
81 pub requires_no_change_requests: Option<Option<bool>>,
82 #[serde(rename = "rule_checks")]
83 pub rule_checks: Vec<models::RuleCheckResult>,
84 #[serde(
85 rename = "sha",
86 default,
87 with = "::serde_with::rust::double_option",
88 skip_serializing_if = "Option::is_none"
89 )]
90 pub sha: Option<Option<String>>,
91}
92
93impl PullreqMergeOutput {
94 pub fn new(
95 conflict_files: Vec<String>,
96 rule_checks: Vec<models::RuleCheckResult>,
97 ) -> PullreqMergeOutput {
98 PullreqMergeOutput {
99 allowed_methods: None,
100 branch_deleted: None,
101 conflict_files,
102 dry_run: None,
103 minimum_required_approvals_count: None,
104 minimum_required_approvals_count_latest: None,
105 requires_code_owners_approval: None,
106 requires_code_owners_approval_latest: None,
107 requires_comment_resolution: None,
108 requires_no_change_requests: None,
109 rule_checks,
110 sha: None,
111 }
112 }
113}