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 PipelineTriggersService struct {
30 client *Client
31 }
32
33
34
35
36
37 type PipelineTrigger struct {
38 ID int `json:"id"`
39 Description string `json:"description"`
40 CreatedAt *time.Time `json:"created_at"`
41 DeletedAt *time.Time `json:"deleted_at"`
42 LastUsed *time.Time `json:"last_used"`
43 Token string `json:"token"`
44 UpdatedAt *time.Time `json:"updated_at"`
45 Owner *User `json:"owner"`
46 }
47
48
49
50
51
52 type ListPipelineTriggersOptions ListOptions
53
54
55
56
57
58 func (s *PipelineTriggersService) ListPipelineTriggers(pid interface{}, opt *ListPipelineTriggersOptions, options ...RequestOptionFunc) ([]*PipelineTrigger, *Response, error) {
59 project, err := parseID(pid)
60 if err != nil {
61 return nil, nil, err
62 }
63 u := fmt.Sprintf("projects/%s/triggers", PathEscape(project))
64
65 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
66 if err != nil {
67 return nil, nil, err
68 }
69
70 var pt []*PipelineTrigger
71 resp, err := s.client.Do(req, &pt)
72 if err != nil {
73 return nil, resp, err
74 }
75
76 return pt, resp, nil
77 }
78
79
80
81
82
83 func (s *PipelineTriggersService) GetPipelineTrigger(pid interface{}, trigger int, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
84 project, err := parseID(pid)
85 if err != nil {
86 return nil, nil, err
87 }
88 u := fmt.Sprintf("projects/%s/triggers/%d", PathEscape(project), trigger)
89
90 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
91 if err != nil {
92 return nil, nil, err
93 }
94
95 pt := new(PipelineTrigger)
96 resp, err := s.client.Do(req, pt)
97 if err != nil {
98 return nil, resp, err
99 }
100
101 return pt, resp, nil
102 }
103
104
105
106
107
108 type AddPipelineTriggerOptions struct {
109 Description *string `url:"description,omitempty" json:"description,omitempty"`
110 }
111
112
113
114
115
116 func (s *PipelineTriggersService) AddPipelineTrigger(pid interface{}, opt *AddPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
117 project, err := parseID(pid)
118 if err != nil {
119 return nil, nil, err
120 }
121 u := fmt.Sprintf("projects/%s/triggers", PathEscape(project))
122
123 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
124 if err != nil {
125 return nil, nil, err
126 }
127
128 pt := new(PipelineTrigger)
129 resp, err := s.client.Do(req, pt)
130 if err != nil {
131 return nil, resp, err
132 }
133
134 return pt, resp, nil
135 }
136
137
138
139
140
141 type EditPipelineTriggerOptions struct {
142 Description *string `url:"description,omitempty" json:"description,omitempty"`
143 }
144
145
146
147
148
149 func (s *PipelineTriggersService) EditPipelineTrigger(pid interface{}, trigger int, opt *EditPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
150 project, err := parseID(pid)
151 if err != nil {
152 return nil, nil, err
153 }
154 u := fmt.Sprintf("projects/%s/triggers/%d", PathEscape(project), trigger)
155
156 req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
157 if err != nil {
158 return nil, nil, err
159 }
160
161 pt := new(PipelineTrigger)
162 resp, err := s.client.Do(req, pt)
163 if err != nil {
164 return nil, resp, err
165 }
166
167 return pt, resp, nil
168 }
169
170
171
172
173
174
175 func (s *PipelineTriggersService) TakeOwnershipOfPipelineTrigger(pid interface{}, trigger int, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
176 project, err := parseID(pid)
177 if err != nil {
178 return nil, nil, err
179 }
180 u := fmt.Sprintf("projects/%s/triggers/%d/take_ownership", PathEscape(project), trigger)
181
182 req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
183 if err != nil {
184 return nil, nil, err
185 }
186
187 pt := new(PipelineTrigger)
188 resp, err := s.client.Do(req, pt)
189 if err != nil {
190 return nil, resp, err
191 }
192
193 return pt, resp, nil
194 }
195
196
197
198
199
200 func (s *PipelineTriggersService) DeletePipelineTrigger(pid interface{}, trigger int, options ...RequestOptionFunc) (*Response, error) {
201 project, err := parseID(pid)
202 if err != nil {
203 return nil, err
204 }
205 u := fmt.Sprintf("projects/%s/triggers/%d", PathEscape(project), trigger)
206
207 req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
208 if err != nil {
209 return nil, err
210 }
211
212 return s.client.Do(req, nil)
213 }
214
215
216
217
218
219 type RunPipelineTriggerOptions struct {
220 Ref *string `url:"ref" json:"ref"`
221 Token *string `url:"token" json:"token"`
222 Variables map[string]string `url:"variables,omitempty" json:"variables,omitempty"`
223 }
224
225
226
227
228
229 func (s *PipelineTriggersService) RunPipelineTrigger(pid interface{}, opt *RunPipelineTriggerOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error) {
230 project, err := parseID(pid)
231 if err != nil {
232 return nil, nil, err
233 }
234 u := fmt.Sprintf("projects/%s/trigger/pipeline", PathEscape(project))
235
236 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
237 if err != nil {
238 return nil, nil, err
239 }
240
241 pt := new(Pipeline)
242 resp, err := s.client.Do(req, pt)
243 if err != nil {
244 return nil, resp, err
245 }
246
247 return pt, resp, nil
248 }
249
View as plain text