1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ReposCreateInOrgRequest {
16 #[serde(rename = "name")]
18 pub name: String,
19 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
21 pub description: Option<String>,
22 #[serde(rename = "homepage", skip_serializing_if = "Option::is_none")]
24 pub homepage: Option<String>,
25 #[serde(rename = "private", skip_serializing_if = "Option::is_none")]
27 pub private: Option<bool>,
28 #[serde(rename = "visibility", skip_serializing_if = "Option::is_none")]
30 pub visibility: Option<Visibility>,
31 #[serde(rename = "has_issues", skip_serializing_if = "Option::is_none")]
33 pub has_issues: Option<bool>,
34 #[serde(rename = "has_projects", skip_serializing_if = "Option::is_none")]
36 pub has_projects: Option<bool>,
37 #[serde(rename = "has_wiki", skip_serializing_if = "Option::is_none")]
39 pub has_wiki: Option<bool>,
40 #[serde(rename = "has_downloads", skip_serializing_if = "Option::is_none")]
42 pub has_downloads: Option<bool>,
43 #[serde(rename = "is_template", skip_serializing_if = "Option::is_none")]
45 pub is_template: Option<bool>,
46 #[serde(rename = "team_id", skip_serializing_if = "Option::is_none")]
48 pub team_id: Option<i32>,
49 #[serde(rename = "auto_init", skip_serializing_if = "Option::is_none")]
51 pub auto_init: Option<bool>,
52 #[serde(rename = "gitignore_template", skip_serializing_if = "Option::is_none")]
54 pub gitignore_template: Option<String>,
55 #[serde(rename = "license_template", skip_serializing_if = "Option::is_none")]
57 pub license_template: Option<String>,
58 #[serde(rename = "allow_squash_merge", skip_serializing_if = "Option::is_none")]
60 pub allow_squash_merge: Option<bool>,
61 #[serde(rename = "allow_merge_commit", skip_serializing_if = "Option::is_none")]
63 pub allow_merge_commit: Option<bool>,
64 #[serde(rename = "allow_rebase_merge", skip_serializing_if = "Option::is_none")]
66 pub allow_rebase_merge: Option<bool>,
67 #[serde(rename = "allow_auto_merge", skip_serializing_if = "Option::is_none")]
69 pub allow_auto_merge: Option<bool>,
70 #[serde(rename = "delete_branch_on_merge", skip_serializing_if = "Option::is_none")]
72 pub delete_branch_on_merge: Option<bool>,
73 #[serde(rename = "use_squash_pr_title_as_default", skip_serializing_if = "Option::is_none")]
75 pub use_squash_pr_title_as_default: Option<bool>,
76 #[serde(rename = "squash_merge_commit_title", skip_serializing_if = "Option::is_none")]
78 pub squash_merge_commit_title: Option<SquashMergeCommitTitle>,
79 #[serde(rename = "squash_merge_commit_message", skip_serializing_if = "Option::is_none")]
81 pub squash_merge_commit_message: Option<SquashMergeCommitMessage>,
82 #[serde(rename = "merge_commit_title", skip_serializing_if = "Option::is_none")]
84 pub merge_commit_title: Option<MergeCommitTitle>,
85 #[serde(rename = "merge_commit_message", skip_serializing_if = "Option::is_none")]
87 pub merge_commit_message: Option<MergeCommitMessage>,
88 #[serde(rename = "custom_properties", skip_serializing_if = "Option::is_none")]
90 pub custom_properties: Option<std::collections::HashMap<String, serde_json::Value>>,
91}
92
93impl ReposCreateInOrgRequest {
94 pub fn new(name: String) -> ReposCreateInOrgRequest {
95 ReposCreateInOrgRequest {
96 name,
97 description: None,
98 homepage: None,
99 private: None,
100 visibility: None,
101 has_issues: None,
102 has_projects: None,
103 has_wiki: None,
104 has_downloads: None,
105 is_template: None,
106 team_id: None,
107 auto_init: None,
108 gitignore_template: None,
109 license_template: None,
110 allow_squash_merge: None,
111 allow_merge_commit: None,
112 allow_rebase_merge: None,
113 allow_auto_merge: None,
114 delete_branch_on_merge: None,
115 use_squash_pr_title_as_default: None,
116 squash_merge_commit_title: None,
117 squash_merge_commit_message: None,
118 merge_commit_title: None,
119 merge_commit_message: None,
120 custom_properties: None,
121 }
122 }
123}
124#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
126pub enum Visibility {
127 #[serde(rename = "public")]
128 Public,
129 #[serde(rename = "private")]
130 Private,
131}
132
133impl Default for Visibility {
134 fn default() -> Visibility {
135 Self::Public
136 }
137}
138#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
140pub enum SquashMergeCommitTitle {
141 #[serde(rename = "PR_TITLE")]
142 PrTitle,
143 #[serde(rename = "COMMIT_OR_PR_TITLE")]
144 CommitOrPrTitle,
145}
146
147impl Default for SquashMergeCommitTitle {
148 fn default() -> SquashMergeCommitTitle {
149 Self::PrTitle
150 }
151}
152#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
154pub enum SquashMergeCommitMessage {
155 #[serde(rename = "PR_BODY")]
156 PrBody,
157 #[serde(rename = "COMMIT_MESSAGES")]
158 CommitMessages,
159 #[serde(rename = "BLANK")]
160 Blank,
161}
162
163impl Default for SquashMergeCommitMessage {
164 fn default() -> SquashMergeCommitMessage {
165 Self::PrBody
166 }
167}
168#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
170pub enum MergeCommitTitle {
171 #[serde(rename = "PR_TITLE")]
172 PrTitle,
173 #[serde(rename = "MERGE_MESSAGE")]
174 MergeMessage,
175}
176
177impl Default for MergeCommitTitle {
178 fn default() -> MergeCommitTitle {
179 Self::PrTitle
180 }
181}
182#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
184pub enum MergeCommitMessage {
185 #[serde(rename = "PR_BODY")]
186 PrBody,
187 #[serde(rename = "PR_TITLE")]
188 PrTitle,
189 #[serde(rename = "BLANK")]
190 Blank,
191}
192
193impl Default for MergeCommitMessage {
194 fn default() -> MergeCommitMessage {
195 Self::PrBody
196 }
197}
198