1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PullRequestBaseRepo {
16 #[serde(rename = "archive_url")]
17 pub archive_url: String,
18 #[serde(rename = "assignees_url")]
19 pub assignees_url: String,
20 #[serde(rename = "blobs_url")]
21 pub blobs_url: String,
22 #[serde(rename = "branches_url")]
23 pub branches_url: String,
24 #[serde(rename = "collaborators_url")]
25 pub collaborators_url: String,
26 #[serde(rename = "comments_url")]
27 pub comments_url: String,
28 #[serde(rename = "commits_url")]
29 pub commits_url: String,
30 #[serde(rename = "compare_url")]
31 pub compare_url: String,
32 #[serde(rename = "contents_url")]
33 pub contents_url: String,
34 #[serde(rename = "contributors_url")]
35 pub contributors_url: String,
36 #[serde(rename = "deployments_url")]
37 pub deployments_url: String,
38 #[serde(rename = "description", deserialize_with = "Option::deserialize")]
39 pub description: Option<String>,
40 #[serde(rename = "downloads_url")]
41 pub downloads_url: String,
42 #[serde(rename = "events_url")]
43 pub events_url: String,
44 #[serde(rename = "fork")]
45 pub fork: bool,
46 #[serde(rename = "forks_url")]
47 pub forks_url: String,
48 #[serde(rename = "full_name")]
49 pub full_name: String,
50 #[serde(rename = "git_commits_url")]
51 pub git_commits_url: String,
52 #[serde(rename = "git_refs_url")]
53 pub git_refs_url: String,
54 #[serde(rename = "git_tags_url")]
55 pub git_tags_url: String,
56 #[serde(rename = "hooks_url")]
57 pub hooks_url: String,
58 #[serde(rename = "html_url")]
59 pub html_url: String,
60 #[serde(rename = "id")]
61 pub id: i32,
62 #[serde(rename = "is_template", skip_serializing_if = "Option::is_none")]
63 pub is_template: Option<bool>,
64 #[serde(rename = "node_id")]
65 pub node_id: String,
66 #[serde(rename = "issue_comment_url")]
67 pub issue_comment_url: String,
68 #[serde(rename = "issue_events_url")]
69 pub issue_events_url: String,
70 #[serde(rename = "issues_url")]
71 pub issues_url: String,
72 #[serde(rename = "keys_url")]
73 pub keys_url: String,
74 #[serde(rename = "labels_url")]
75 pub labels_url: String,
76 #[serde(rename = "languages_url")]
77 pub languages_url: String,
78 #[serde(rename = "merges_url")]
79 pub merges_url: String,
80 #[serde(rename = "milestones_url")]
81 pub milestones_url: String,
82 #[serde(rename = "name")]
83 pub name: String,
84 #[serde(rename = "notifications_url")]
85 pub notifications_url: String,
86 #[serde(rename = "owner")]
87 pub owner: Box<models::PullRequestHeadRepoOwner>,
88 #[serde(rename = "private")]
89 pub private: bool,
90 #[serde(rename = "pulls_url")]
91 pub pulls_url: String,
92 #[serde(rename = "releases_url")]
93 pub releases_url: String,
94 #[serde(rename = "stargazers_url")]
95 pub stargazers_url: String,
96 #[serde(rename = "statuses_url")]
97 pub statuses_url: String,
98 #[serde(rename = "subscribers_url")]
99 pub subscribers_url: String,
100 #[serde(rename = "subscription_url")]
101 pub subscription_url: String,
102 #[serde(rename = "tags_url")]
103 pub tags_url: String,
104 #[serde(rename = "teams_url")]
105 pub teams_url: String,
106 #[serde(rename = "trees_url")]
107 pub trees_url: String,
108 #[serde(rename = "url")]
109 pub url: String,
110 #[serde(rename = "clone_url")]
111 pub clone_url: String,
112 #[serde(rename = "default_branch")]
113 pub default_branch: String,
114 #[serde(rename = "forks")]
115 pub forks: i32,
116 #[serde(rename = "forks_count")]
117 pub forks_count: i32,
118 #[serde(rename = "git_url")]
119 pub git_url: String,
120 #[serde(rename = "has_downloads")]
121 pub has_downloads: bool,
122 #[serde(rename = "has_issues")]
123 pub has_issues: bool,
124 #[serde(rename = "has_projects")]
125 pub has_projects: bool,
126 #[serde(rename = "has_wiki")]
127 pub has_wiki: bool,
128 #[serde(rename = "has_pages")]
129 pub has_pages: bool,
130 #[serde(rename = "has_discussions")]
131 pub has_discussions: bool,
132 #[serde(rename = "homepage", deserialize_with = "Option::deserialize")]
133 pub homepage: Option<String>,
134 #[serde(rename = "language", deserialize_with = "Option::deserialize")]
135 pub language: Option<String>,
136 #[serde(rename = "master_branch", skip_serializing_if = "Option::is_none")]
137 pub master_branch: Option<String>,
138 #[serde(rename = "archived")]
139 pub archived: bool,
140 #[serde(rename = "disabled")]
141 pub disabled: bool,
142 #[serde(rename = "visibility", skip_serializing_if = "Option::is_none")]
144 pub visibility: Option<String>,
145 #[serde(rename = "mirror_url", deserialize_with = "Option::deserialize")]
146 pub mirror_url: Option<String>,
147 #[serde(rename = "open_issues")]
148 pub open_issues: i32,
149 #[serde(rename = "open_issues_count")]
150 pub open_issues_count: i32,
151 #[serde(rename = "permissions", skip_serializing_if = "Option::is_none")]
152 pub permissions: Option<Box<models::FullRepositoryPermissions>>,
153 #[serde(rename = "temp_clone_token", skip_serializing_if = "Option::is_none")]
154 pub temp_clone_token: Option<String>,
155 #[serde(rename = "allow_merge_commit", skip_serializing_if = "Option::is_none")]
156 pub allow_merge_commit: Option<bool>,
157 #[serde(rename = "allow_squash_merge", skip_serializing_if = "Option::is_none")]
158 pub allow_squash_merge: Option<bool>,
159 #[serde(rename = "allow_rebase_merge", skip_serializing_if = "Option::is_none")]
160 pub allow_rebase_merge: Option<bool>,
161 #[serde(rename = "license", deserialize_with = "Option::deserialize")]
162 pub license: Option<Box<models::NullableLicenseSimple>>,
163 #[serde(rename = "pushed_at")]
164 pub pushed_at: String,
165 #[serde(rename = "size")]
166 pub size: i32,
167 #[serde(rename = "ssh_url")]
168 pub ssh_url: String,
169 #[serde(rename = "stargazers_count")]
170 pub stargazers_count: i32,
171 #[serde(rename = "svn_url")]
172 pub svn_url: String,
173 #[serde(rename = "topics", skip_serializing_if = "Option::is_none")]
174 pub topics: Option<Vec<String>>,
175 #[serde(rename = "watchers")]
176 pub watchers: i32,
177 #[serde(rename = "watchers_count")]
178 pub watchers_count: i32,
179 #[serde(rename = "created_at")]
180 pub created_at: String,
181 #[serde(rename = "updated_at")]
182 pub updated_at: String,
183 #[serde(rename = "allow_forking", skip_serializing_if = "Option::is_none")]
184 pub allow_forking: Option<bool>,
185 #[serde(rename = "web_commit_signoff_required", skip_serializing_if = "Option::is_none")]
186 pub web_commit_signoff_required: Option<bool>,
187}
188
189impl PullRequestBaseRepo {
190 pub fn new(archive_url: String, assignees_url: String, blobs_url: String, branches_url: String, collaborators_url: String, comments_url: String, commits_url: String, compare_url: String, contents_url: String, contributors_url: String, deployments_url: String, description: Option<String>, downloads_url: String, events_url: String, fork: bool, forks_url: String, full_name: String, git_commits_url: String, git_refs_url: String, git_tags_url: String, hooks_url: String, html_url: String, id: i32, node_id: String, issue_comment_url: String, issue_events_url: String, issues_url: String, keys_url: String, labels_url: String, languages_url: String, merges_url: String, milestones_url: String, name: String, notifications_url: String, owner: models::PullRequestHeadRepoOwner, private: bool, pulls_url: String, releases_url: String, stargazers_url: String, statuses_url: String, subscribers_url: String, subscription_url: String, tags_url: String, teams_url: String, trees_url: String, url: String, clone_url: String, default_branch: String, forks: i32, forks_count: i32, git_url: String, has_downloads: bool, has_issues: bool, has_projects: bool, has_wiki: bool, has_pages: bool, has_discussions: bool, homepage: Option<String>, language: Option<String>, archived: bool, disabled: bool, mirror_url: Option<String>, open_issues: i32, open_issues_count: i32, license: Option<models::NullableLicenseSimple>, pushed_at: String, size: i32, ssh_url: String, stargazers_count: i32, svn_url: String, watchers: i32, watchers_count: i32, created_at: String, updated_at: String) -> PullRequestBaseRepo {
191 PullRequestBaseRepo {
192 archive_url,
193 assignees_url,
194 blobs_url,
195 branches_url,
196 collaborators_url,
197 comments_url,
198 commits_url,
199 compare_url,
200 contents_url,
201 contributors_url,
202 deployments_url,
203 description,
204 downloads_url,
205 events_url,
206 fork,
207 forks_url,
208 full_name,
209 git_commits_url,
210 git_refs_url,
211 git_tags_url,
212 hooks_url,
213 html_url,
214 id,
215 is_template: None,
216 node_id,
217 issue_comment_url,
218 issue_events_url,
219 issues_url,
220 keys_url,
221 labels_url,
222 languages_url,
223 merges_url,
224 milestones_url,
225 name,
226 notifications_url,
227 owner: Box::new(owner),
228 private,
229 pulls_url,
230 releases_url,
231 stargazers_url,
232 statuses_url,
233 subscribers_url,
234 subscription_url,
235 tags_url,
236 teams_url,
237 trees_url,
238 url,
239 clone_url,
240 default_branch,
241 forks,
242 forks_count,
243 git_url,
244 has_downloads,
245 has_issues,
246 has_projects,
247 has_wiki,
248 has_pages,
249 has_discussions,
250 homepage,
251 language,
252 master_branch: None,
253 archived,
254 disabled,
255 visibility: None,
256 mirror_url,
257 open_issues,
258 open_issues_count,
259 permissions: None,
260 temp_clone_token: None,
261 allow_merge_commit: None,
262 allow_squash_merge: None,
263 allow_rebase_merge: None,
264 license: license.map(Box::new),
265 pushed_at,
266 size,
267 ssh_url,
268 stargazers_count,
269 svn_url,
270 topics: None,
271 watchers,
272 watchers_count,
273 created_at,
274 updated_at,
275 allow_forking: None,
276 web_commit_signoff_required: None,
277 }
278 }
279}
280