1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Repository {
17 #[serde(rename = "allow_fast_forward_only_merge", skip_serializing_if = "Option::is_none")]
18 pub allow_fast_forward_only_merge: Option<bool>,
19 #[serde(rename = "allow_merge_commits", skip_serializing_if = "Option::is_none")]
20 pub allow_merge_commits: Option<bool>,
21 #[serde(rename = "allow_rebase", skip_serializing_if = "Option::is_none")]
22 pub allow_rebase: Option<bool>,
23 #[serde(rename = "allow_rebase_explicit", skip_serializing_if = "Option::is_none")]
24 pub allow_rebase_explicit: Option<bool>,
25 #[serde(rename = "allow_rebase_update", skip_serializing_if = "Option::is_none")]
26 pub allow_rebase_update: Option<bool>,
27 #[serde(rename = "allow_squash_merge", skip_serializing_if = "Option::is_none")]
28 pub allow_squash_merge: Option<bool>,
29 #[serde(rename = "archived", skip_serializing_if = "Option::is_none")]
30 pub archived: Option<bool>,
31 #[serde(rename = "archived_at", skip_serializing_if = "Option::is_none")]
32 pub archived_at: Option<String>,
33 #[serde(rename = "avatar_url", skip_serializing_if = "Option::is_none")]
34 pub avatar_url: Option<String>,
35 #[serde(rename = "clone_url", skip_serializing_if = "Option::is_none")]
36 pub clone_url: Option<String>,
37 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
38 pub created_at: Option<String>,
39 #[serde(rename = "default_allow_maintainer_edit", skip_serializing_if = "Option::is_none")]
40 pub default_allow_maintainer_edit: Option<bool>,
41 #[serde(rename = "default_branch", skip_serializing_if = "Option::is_none")]
42 pub default_branch: Option<String>,
43 #[serde(rename = "default_delete_branch_after_merge", skip_serializing_if = "Option::is_none")]
44 pub default_delete_branch_after_merge: Option<bool>,
45 #[serde(rename = "default_merge_style", skip_serializing_if = "Option::is_none")]
46 pub default_merge_style: Option<String>,
47 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
48 pub description: Option<String>,
49 #[serde(rename = "empty", skip_serializing_if = "Option::is_none")]
50 pub empty: Option<bool>,
51 #[serde(rename = "external_tracker", skip_serializing_if = "Option::is_none")]
52 pub external_tracker: Option<Box<models::ExternalTracker>>,
53 #[serde(rename = "external_wiki", skip_serializing_if = "Option::is_none")]
54 pub external_wiki: Option<Box<models::ExternalWiki>>,
55 #[serde(rename = "fork", skip_serializing_if = "Option::is_none")]
56 pub fork: Option<bool>,
57 #[serde(rename = "forks_count", skip_serializing_if = "Option::is_none")]
58 pub forks_count: Option<i64>,
59 #[serde(rename = "full_name", skip_serializing_if = "Option::is_none")]
60 pub full_name: Option<String>,
61 #[serde(rename = "has_actions", skip_serializing_if = "Option::is_none")]
62 pub has_actions: Option<bool>,
63 #[serde(rename = "has_issues", skip_serializing_if = "Option::is_none")]
64 pub has_issues: Option<bool>,
65 #[serde(rename = "has_packages", skip_serializing_if = "Option::is_none")]
66 pub has_packages: Option<bool>,
67 #[serde(rename = "has_projects", skip_serializing_if = "Option::is_none")]
68 pub has_projects: Option<bool>,
69 #[serde(rename = "has_pull_requests", skip_serializing_if = "Option::is_none")]
70 pub has_pull_requests: Option<bool>,
71 #[serde(rename = "has_releases", skip_serializing_if = "Option::is_none")]
72 pub has_releases: Option<bool>,
73 #[serde(rename = "has_wiki", skip_serializing_if = "Option::is_none")]
74 pub has_wiki: Option<bool>,
75 #[serde(rename = "html_url", skip_serializing_if = "Option::is_none")]
76 pub html_url: Option<String>,
77 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
78 pub id: Option<i64>,
79 #[serde(rename = "ignore_whitespace_conflicts", skip_serializing_if = "Option::is_none")]
80 pub ignore_whitespace_conflicts: Option<bool>,
81 #[serde(rename = "internal", skip_serializing_if = "Option::is_none")]
82 pub internal: Option<bool>,
83 #[serde(rename = "internal_tracker", skip_serializing_if = "Option::is_none")]
84 pub internal_tracker: Option<Box<models::InternalTracker>>,
85 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
86 pub language: Option<String>,
87 #[serde(rename = "languages_url", skip_serializing_if = "Option::is_none")]
88 pub languages_url: Option<String>,
89 #[serde(rename = "link", skip_serializing_if = "Option::is_none")]
90 pub link: Option<String>,
91 #[serde(rename = "mirror", skip_serializing_if = "Option::is_none")]
92 pub mirror: Option<bool>,
93 #[serde(rename = "mirror_interval", skip_serializing_if = "Option::is_none")]
94 pub mirror_interval: Option<String>,
95 #[serde(rename = "mirror_updated", skip_serializing_if = "Option::is_none")]
96 pub mirror_updated: Option<String>,
97 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
98 pub name: Option<String>,
99 #[serde(rename = "object_format_name", skip_serializing_if = "Option::is_none")]
101 pub object_format_name: Option<ObjectFormatName>,
102 #[serde(rename = "open_issues_count", skip_serializing_if = "Option::is_none")]
103 pub open_issues_count: Option<i64>,
104 #[serde(rename = "open_pr_counter", skip_serializing_if = "Option::is_none")]
105 pub open_pr_counter: Option<i64>,
106 #[serde(rename = "original_url", skip_serializing_if = "Option::is_none")]
107 pub original_url: Option<String>,
108 #[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
109 pub owner: Option<Box<models::User>>,
110 #[serde(rename = "parent", skip_serializing_if = "Option::is_none")]
111 pub parent: Option<Box<models::Repository>>,
112 #[serde(rename = "permissions", skip_serializing_if = "Option::is_none")]
113 pub permissions: Option<Box<models::Permission>>,
114 #[serde(rename = "private", skip_serializing_if = "Option::is_none")]
115 pub private: Option<bool>,
116 #[serde(rename = "projects_mode", skip_serializing_if = "Option::is_none")]
117 pub projects_mode: Option<String>,
118 #[serde(rename = "release_counter", skip_serializing_if = "Option::is_none")]
119 pub release_counter: Option<i64>,
120 #[serde(rename = "repo_transfer", skip_serializing_if = "Option::is_none")]
121 pub repo_transfer: Option<Box<models::RepoTransfer>>,
122 #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
123 pub size: Option<i64>,
124 #[serde(rename = "ssh_url", skip_serializing_if = "Option::is_none")]
125 pub ssh_url: Option<String>,
126 #[serde(rename = "stars_count", skip_serializing_if = "Option::is_none")]
127 pub stars_count: Option<i64>,
128 #[serde(rename = "template", skip_serializing_if = "Option::is_none")]
129 pub template: Option<bool>,
130 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
131 pub updated_at: Option<String>,
132 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
133 pub url: Option<String>,
134 #[serde(rename = "watchers_count", skip_serializing_if = "Option::is_none")]
135 pub watchers_count: Option<i64>,
136 #[serde(rename = "website", skip_serializing_if = "Option::is_none")]
137 pub website: Option<String>,
138}
139
140impl Repository {
141 pub fn new() -> Repository {
143 Repository {
144 allow_fast_forward_only_merge: None,
145 allow_merge_commits: None,
146 allow_rebase: None,
147 allow_rebase_explicit: None,
148 allow_rebase_update: None,
149 allow_squash_merge: None,
150 archived: None,
151 archived_at: None,
152 avatar_url: None,
153 clone_url: None,
154 created_at: None,
155 default_allow_maintainer_edit: None,
156 default_branch: None,
157 default_delete_branch_after_merge: None,
158 default_merge_style: None,
159 description: None,
160 empty: None,
161 external_tracker: None,
162 external_wiki: None,
163 fork: None,
164 forks_count: None,
165 full_name: None,
166 has_actions: None,
167 has_issues: None,
168 has_packages: None,
169 has_projects: None,
170 has_pull_requests: None,
171 has_releases: None,
172 has_wiki: None,
173 html_url: None,
174 id: None,
175 ignore_whitespace_conflicts: None,
176 internal: None,
177 internal_tracker: None,
178 language: None,
179 languages_url: None,
180 link: None,
181 mirror: None,
182 mirror_interval: None,
183 mirror_updated: None,
184 name: None,
185 object_format_name: None,
186 open_issues_count: None,
187 open_pr_counter: None,
188 original_url: None,
189 owner: None,
190 parent: None,
191 permissions: None,
192 private: None,
193 projects_mode: None,
194 release_counter: None,
195 repo_transfer: None,
196 size: None,
197 ssh_url: None,
198 stars_count: None,
199 template: None,
200 updated_at: None,
201 url: None,
202 watchers_count: None,
203 website: None,
204 }
205 }
206}
207#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
209pub enum ObjectFormatName {
210 #[serde(rename = "sha1")]
211 Sha1,
212 #[serde(rename = "sha256")]
213 Sha256,
214}
215
216impl Default for ObjectFormatName {
217 fn default() -> ObjectFormatName {
218 Self::Sha1
219 }
220}
221