1use chrono::{DateTime, Local};
2use serde::{Deserialize, Serialize};
3
4use crate::{License, User};
5
6#[derive(Clone, Debug, Serialize, Deserialize)]
7pub struct Repository {
8 pub id: usize,
9 pub node_id: String,
10 pub name: String,
11 pub full_name: String,
12 pub private: bool,
13 pub owner: User,
14 pub html_url: String,
15 pub description: String,
16 pub fork: bool,
17 pub url: Option<String>,
18 pub forks_url: String,
19 pub keys_url: String,
20 pub collaborators_url: String,
21 pub teams_url: String,
22 pub hooks_url: String,
23 pub issue_events_url: String,
24 pub events_url: String,
25 pub assignees_url: String,
26 pub branches_url: String,
27 pub tags_url: String,
28 pub blobs_url: String,
29 pub git_tags_url: String,
30 pub git_refs_url: String,
31 pub trees_url: String,
32 pub statuses_url: String,
33 pub languages_url: String,
34 pub stargazers_url: String,
35 pub contributors_url: String,
36 pub subscribers_url: String,
37 pub subscription_url: String,
38 pub commits_url: String,
39 pub git_commits_url: String,
40 pub comments_url: String,
41 pub issue_comment_url: String,
42 pub contents_url: String,
43 pub compare_url: String,
44 pub merges_url: String,
45 pub archive_url: String,
46 pub downloads_url: String,
47 pub issues_url: String,
48 pub pulls_url: String,
49 pub milestones_url: String,
50 pub notifications_url: String,
51 pub labels_url: String,
52 pub deployments_url: String,
53 pub created_at: DateTime<Local>,
54 pub updated_at: DateTime<Local>,
55 pub pushed_at: DateTime<Local>,
56 pub git_url: String,
57 pub ssh_url: String,
58 pub clone_url: String,
59 pub svn_url: String,
60 pub homepage: String,
61 pub size: usize,
62 pub stargazers_count: usize,
63 pub watchers_count: usize,
64 pub language: Option<String>,
65 pub has_issues: bool,
66 pub has_projects: bool,
67 pub has_downloads: bool,
68 pub has_wiki: bool,
69 pub has_pages: bool,
70 pub forks_count: usize,
71 pub mirror_url: Option<String>,
72 pub archived: bool,
73 pub disabled: bool,
74 pub open_issues_count: usize,
75 pub license: Option<License>,
76 pub allow_forking: bool,
77 pub is_template: bool,
78 pub topics: Vec<String>,
79 pub visibility: String,
80 pub forks: usize,
81 pub open_issues: usize,
82 pub watchers: usize,
83 pub default_branch: String,
84 pub temp_clone_token: Option<String>,
85 pub organization: Option<User>,
86 pub network_count: usize,
87 pub subscribers_count: usize,
88}