1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 "time"
12 )
13
14
15 type IssueEvent struct {
16 ID *int64 `json:"id,omitempty"`
17 URL *string `json:"url,omitempty"`
18
19
20 Actor *User `json:"actor,omitempty"`
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 Event *string `json:"event,omitempty"`
73
74 CreatedAt *time.Time `json:"created_at,omitempty"`
75 Issue *Issue `json:"issue,omitempty"`
76
77
78 Assignee *User `json:"assignee,omitempty"`
79 Assigner *User `json:"assigner,omitempty"`
80 CommitID *string `json:"commit_id,omitempty"`
81 Milestone *Milestone `json:"milestone,omitempty"`
82 Label *Label `json:"label,omitempty"`
83 Rename *Rename `json:"rename,omitempty"`
84 LockReason *string `json:"lock_reason,omitempty"`
85 ProjectCard *ProjectCard `json:"project_card,omitempty"`
86 DismissedReview *DismissedReview `json:"dismissed_review,omitempty"`
87 RequestedReviewer *User `json:"requested_reviewer,omitempty"`
88 ReviewRequester *User `json:"review_requester,omitempty"`
89 }
90
91
92 type DismissedReview struct {
93
94
95 State *string `json:"state,omitempty"`
96 ReviewID *int64 `json:"review_id,omitempty"`
97 DismissalMessage *string `json:"dismissal_message,omitempty"`
98 DismissalCommitID *string `json:"dismissal_commit_id,omitempty"`
99 }
100
101
102
103
104 func (s *IssuesService) ListIssueEvents(ctx context.Context, owner, repo string, number int, opts *ListOptions) ([]*IssueEvent, *Response, error) {
105 u := fmt.Sprintf("repos/%v/%v/issues/%v/events", owner, repo, number)
106 u, err := addOptions(u, opts)
107 if err != nil {
108 return nil, nil, err
109 }
110
111 req, err := s.client.NewRequest("GET", u, nil)
112 if err != nil {
113 return nil, nil, err
114 }
115
116 req.Header.Set("Accept", mediaTypeProjectCardDetailsPreview)
117
118 var events []*IssueEvent
119 resp, err := s.client.Do(ctx, req, &events)
120 if err != nil {
121 return nil, resp, err
122 }
123
124 return events, resp, nil
125 }
126
127
128
129
130 func (s *IssuesService) ListRepositoryEvents(ctx context.Context, owner, repo string, opts *ListOptions) ([]*IssueEvent, *Response, error) {
131 u := fmt.Sprintf("repos/%v/%v/issues/events", owner, repo)
132 u, err := addOptions(u, opts)
133 if err != nil {
134 return nil, nil, err
135 }
136
137 req, err := s.client.NewRequest("GET", u, nil)
138 if err != nil {
139 return nil, nil, err
140 }
141
142 var events []*IssueEvent
143 resp, err := s.client.Do(ctx, req, &events)
144 if err != nil {
145 return nil, resp, err
146 }
147
148 return events, resp, nil
149 }
150
151
152
153
154 func (s *IssuesService) GetEvent(ctx context.Context, owner, repo string, id int64) (*IssueEvent, *Response, error) {
155 u := fmt.Sprintf("repos/%v/%v/issues/events/%v", owner, repo, id)
156
157 req, err := s.client.NewRequest("GET", u, nil)
158 if err != nil {
159 return nil, nil, err
160 }
161
162 event := new(IssueEvent)
163 resp, err := s.client.Do(ctx, req, event)
164 if err != nil {
165 return nil, resp, err
166 }
167
168 return event, resp, nil
169 }
170
171
172 type Rename struct {
173 From *string `json:"from,omitempty"`
174 To *string `json:"to,omitempty"`
175 }
176
177 func (r Rename) String() string {
178 return Stringify(r)
179 }
180
View as plain text