-
-
Notifications
You must be signed in to change notification settings - Fork 279
/
Copy pathtimelines.rs
130 lines (123 loc) · 4.92 KB
/
timelines.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
use super::*;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct TimelineEvent {
/// Identifies the actual type of event that occurred.
pub event: Event,
/// The unique identifier of the event.
pub id: Option<TimelineEventId>,
/// The Global Node ID of the event.
pub node_id: Option<String>,
/// The REST API URL for fetching the event.
pub url: Option<Url>,
/// The person who generated the event.
pub actor: Option<Author>,
/// The SHA of the commit that referenced this issue.
pub commit_id: Option<String>,
/// The GitHub REST API link to the commit that referenced this issue.
pub commit_url: Option<String>,
/// The timestamp indicating when the event occurred.
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub project_card: Option<ProjectCard>,
#[serde(skip_serializing_if = "Option::is_none")]
pub project_id: Option<ProjectId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub project_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub column_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub assignees: Option<Vec<Author>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub assigner: Option<Author>,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub author_association: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<Author>,
#[serde(skip_serializing_if = "Option::is_none")]
pub html_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub issue_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tree: Option<repos::CommitObject>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<repos::Verification>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parents: Option<Vec<repos::Commit>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub committer: Option<CommitAuthor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub author: Option<CommitAuthor>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sha: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
#[serde(skip_serializing_if = "Option::is_none")]
pub milestone: Option<Milestone>, // differs from other milestones the API returns. Has only a title.
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<Label>, // differs from other labels the API returns. Has only a name and a color.
#[serde(skip_serializing_if = "Option::is_none")]
pub lock_reason: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub previous_column_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rename: Option<Rename>,
#[serde(skip_serializing_if = "Option::is_none")]
pub submitted_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<pulls::ReviewState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dismissed_review: Option<DismissedReview>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pull_request_url: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub requested_reviewer: Option<Author>,
#[serde(skip_serializing_if = "Option::is_none")]
pub review_requester: Option<Author>,
#[serde(skip_serializing_if = "Option::is_none")]
pub assignee: Option<Author>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct DismissedReview {
state: pulls::ReviewState,
review_id: ReviewId,
dismissal_message: Option<String>,
dismissal_commit_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct Source {
issue: issues::Issue,
r#type: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct Rename {
from: String,
to: String,
}
#[derive(Debug, Clone, Hash, Eq, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct Label {
pub name: String,
pub color: String,
}
#[derive(Debug, Clone, Hash, Eq, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct Milestone {
pub title: String,
}
/// The author of a commit, identified by its name and email.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CommitAuthor {
pub name: String,
pub email: String,
pub date: Option<chrono::DateTime<chrono::Utc>>,
}