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