1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ReposCreateForAuthenticatedUserRequest {
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 = "has_issues", skip_serializing_if = "Option::is_none")]
30 pub has_issues: Option<bool>,
31 #[serde(rename = "has_projects", skip_serializing_if = "Option::is_none")]
33 pub has_projects: Option<bool>,
34 #[serde(rename = "has_wiki", skip_serializing_if = "Option::is_none")]
36 pub has_wiki: Option<bool>,
37 #[serde(rename = "has_discussions", skip_serializing_if = "Option::is_none")]
39 pub has_discussions: Option<bool>,
40 #[serde(rename = "team_id", skip_serializing_if = "Option::is_none")]
42 pub team_id: Option<i32>,
43 #[serde(rename = "auto_init", skip_serializing_if = "Option::is_none")]
45 pub auto_init: Option<bool>,
46 #[serde(rename = "gitignore_template", skip_serializing_if = "Option::is_none")]
48 pub gitignore_template: Option<String>,
49 #[serde(rename = "license_template", skip_serializing_if = "Option::is_none")]
51 pub license_template: Option<String>,
52 #[serde(rename = "allow_squash_merge", skip_serializing_if = "Option::is_none")]
54 pub allow_squash_merge: Option<bool>,
55 #[serde(rename = "allow_merge_commit", skip_serializing_if = "Option::is_none")]
57 pub allow_merge_commit: Option<bool>,
58 #[serde(rename = "allow_rebase_merge", skip_serializing_if = "Option::is_none")]
60 pub allow_rebase_merge: Option<bool>,
61 #[serde(rename = "allow_auto_merge", skip_serializing_if = "Option::is_none")]
63 pub allow_auto_merge: Option<bool>,
64 #[serde(rename = "delete_branch_on_merge", skip_serializing_if = "Option::is_none")]
66 pub delete_branch_on_merge: Option<bool>,
67 #[serde(rename = "squash_merge_commit_title", skip_serializing_if = "Option::is_none")]
69 pub squash_merge_commit_title: Option<SquashMergeCommitTitle>,
70 #[serde(rename = "squash_merge_commit_message", skip_serializing_if = "Option::is_none")]
72 pub squash_merge_commit_message: Option<SquashMergeCommitMessage>,
73 #[serde(rename = "merge_commit_title", skip_serializing_if = "Option::is_none")]
75 pub merge_commit_title: Option<MergeCommitTitle>,
76 #[serde(rename = "merge_commit_message", skip_serializing_if = "Option::is_none")]
78 pub merge_commit_message: Option<MergeCommitMessage>,
79 #[serde(rename = "has_downloads", skip_serializing_if = "Option::is_none")]
81 pub has_downloads: Option<bool>,
82 #[serde(rename = "is_template", skip_serializing_if = "Option::is_none")]
84 pub is_template: Option<bool>,
85}
86
87impl ReposCreateForAuthenticatedUserRequest {
88 pub fn new(name: String) -> ReposCreateForAuthenticatedUserRequest {
89 ReposCreateForAuthenticatedUserRequest {
90 name,
91 description: None,
92 homepage: None,
93 private: None,
94 has_issues: None,
95 has_projects: None,
96 has_wiki: None,
97 has_discussions: None,
98 team_id: None,
99 auto_init: None,
100 gitignore_template: None,
101 license_template: None,
102 allow_squash_merge: None,
103 allow_merge_commit: None,
104 allow_rebase_merge: None,
105 allow_auto_merge: None,
106 delete_branch_on_merge: None,
107 squash_merge_commit_title: None,
108 squash_merge_commit_message: None,
109 merge_commit_title: None,
110 merge_commit_message: None,
111 has_downloads: None,
112 is_template: None,
113 }
114 }
115}
116#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
118pub enum SquashMergeCommitTitle {
119 #[serde(rename = "PR_TITLE")]
120 PrTitle,
121 #[serde(rename = "COMMIT_OR_PR_TITLE")]
122 CommitOrPrTitle,
123}
124
125impl Default for SquashMergeCommitTitle {
126 fn default() -> SquashMergeCommitTitle {
127 Self::PrTitle
128 }
129}
130#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
132pub enum SquashMergeCommitMessage {
133 #[serde(rename = "PR_BODY")]
134 PrBody,
135 #[serde(rename = "COMMIT_MESSAGES")]
136 CommitMessages,
137 #[serde(rename = "BLANK")]
138 Blank,
139}
140
141impl Default for SquashMergeCommitMessage {
142 fn default() -> SquashMergeCommitMessage {
143 Self::PrBody
144 }
145}
146#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
148pub enum MergeCommitTitle {
149 #[serde(rename = "PR_TITLE")]
150 PrTitle,
151 #[serde(rename = "MERGE_MESSAGE")]
152 MergeMessage,
153}
154
155impl Default for MergeCommitTitle {
156 fn default() -> MergeCommitTitle {
157 Self::PrTitle
158 }
159}
160#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
162pub enum MergeCommitMessage {
163 #[serde(rename = "PR_BODY")]
164 PrBody,
165 #[serde(rename = "PR_TITLE")]
166 PrTitle,
167 #[serde(rename = "BLANK")]
168 Blank,
169}
170
171impl Default for MergeCommitMessage {
172 fn default() -> MergeCommitMessage {
173 Self::PrBody
174 }
175}
176