1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package gitlab
18
19 import (
20 "fmt"
21 "net/http"
22 "time"
23 )
24
25
26
27
28
29 type ResourceLabelEventsService struct {
30 client *Client
31 }
32
33
34
35
36
37 type LabelEvent struct {
38 ID int `json:"id"`
39 Action string `json:"action"`
40 CreatedAt *time.Time `json:"created_at"`
41 ResourceType string `json:"resource_type"`
42 ResourceID int `json:"resource_id"`
43 User struct {
44 ID int `json:"id"`
45 Name string `json:"name"`
46 Username string `json:"username"`
47 State string `json:"state"`
48 AvatarURL string `json:"avatar_url"`
49 WebURL string `json:"web_url"`
50 } `json:"user"`
51 Label struct {
52 ID int `json:"id"`
53 Name string `json:"name"`
54 Color string `json:"color"`
55 TextColor string `json:"text_color"`
56 Description string `json:"description"`
57 } `json:"label"`
58 }
59
60
61
62
63
64
65 type ListLabelEventsOptions struct {
66 ListOptions
67 }
68
69
70
71
72
73
74 func (s *ResourceLabelEventsService) ListIssueLabelEvents(pid interface{}, issue int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error) {
75 project, err := parseID(pid)
76 if err != nil {
77 return nil, nil, err
78 }
79 u := fmt.Sprintf("projects/%s/issues/%d/resource_label_events", PathEscape(project), issue)
80
81 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
82 if err != nil {
83 return nil, nil, err
84 }
85
86 var ls []*LabelEvent
87 resp, err := s.client.Do(req, &ls)
88 if err != nil {
89 return nil, resp, err
90 }
91
92 return ls, resp, nil
93 }
94
95
96
97
98
99 func (s *ResourceLabelEventsService) GetIssueLabelEvent(pid interface{}, issue int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error) {
100 project, err := parseID(pid)
101 if err != nil {
102 return nil, nil, err
103 }
104 u := fmt.Sprintf("projects/%s/issues/%d/resource_label_events/%d", PathEscape(project), issue, event)
105
106 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
107 if err != nil {
108 return nil, nil, err
109 }
110
111 l := new(LabelEvent)
112 resp, err := s.client.Do(req, l)
113 if err != nil {
114 return nil, resp, err
115 }
116
117 return l, resp, nil
118 }
119
120
121
122
123
124
125 func (s *ResourceLabelEventsService) ListGroupEpicLabelEvents(gid interface{}, epic int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error) {
126 group, err := parseID(gid)
127 if err != nil {
128 return nil, nil, err
129 }
130 u := fmt.Sprintf("groups/%s/epics/%d/resource_label_events", PathEscape(group), epic)
131
132 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
133 if err != nil {
134 return nil, nil, err
135 }
136
137 var ls []*LabelEvent
138 resp, err := s.client.Do(req, &ls)
139 if err != nil {
140 return nil, resp, err
141 }
142
143 return ls, resp, nil
144 }
145
146
147
148
149
150 func (s *ResourceLabelEventsService) GetGroupEpicLabelEvent(gid interface{}, epic int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error) {
151 group, err := parseID(gid)
152 if err != nil {
153 return nil, nil, err
154 }
155 u := fmt.Sprintf("groups/%s/epics/%d/resource_label_events/%d", PathEscape(group), epic, event)
156
157 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
158 if err != nil {
159 return nil, nil, err
160 }
161
162 l := new(LabelEvent)
163 resp, err := s.client.Do(req, l)
164 if err != nil {
165 return nil, resp, err
166 }
167
168 return l, resp, nil
169 }
170
171
172
173
174
175
176 func (s *ResourceLabelEventsService) ListMergeRequestsLabelEvents(pid interface{}, request int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error) {
177 project, err := parseID(pid)
178 if err != nil {
179 return nil, nil, err
180 }
181 u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_label_events", PathEscape(project), request)
182
183 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
184 if err != nil {
185 return nil, nil, err
186 }
187
188 var ls []*LabelEvent
189 resp, err := s.client.Do(req, &ls)
190 if err != nil {
191 return nil, resp, err
192 }
193
194 return ls, resp, nil
195 }
196
197
198
199
200
201 func (s *ResourceLabelEventsService) GetMergeRequestLabelEvent(pid interface{}, request int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error) {
202 project, err := parseID(pid)
203 if err != nil {
204 return nil, nil, err
205 }
206 u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_label_events/%d", PathEscape(project), request, event)
207
208 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
209 if err != nil {
210 return nil, nil, err
211 }
212
213 l := new(LabelEvent)
214 resp, err := s.client.Do(req, l)
215 if err != nil {
216 return nil, resp, err
217 }
218
219 return l, resp, nil
220 }
221
View as plain text