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 DeployTokensService struct {
30 client *Client
31 }
32
33
34 type DeployToken struct {
35 ID int `json:"id"`
36 Name string `json:"name"`
37 Username string `json:"username"`
38 ExpiresAt *time.Time `json:"expires_at"`
39 Revoked bool `json:"revoked"`
40 Expired bool `json:"expired"`
41 Token string `json:"token,omitempty"`
42 Scopes []string `json:"scopes"`
43 }
44
45 func (k DeployToken) String() string {
46 return Stringify(k)
47 }
48
49
50
51
52
53 func (s *DeployTokensService) ListAllDeployTokens(options ...RequestOptionFunc) ([]*DeployToken, *Response, error) {
54 req, err := s.client.NewRequest(http.MethodGet, "deploy_tokens", nil, options)
55 if err != nil {
56 return nil, nil, err
57 }
58
59 var ts []*DeployToken
60 resp, err := s.client.Do(req, &ts)
61 if err != nil {
62 return nil, resp, err
63 }
64
65 return ts, resp, nil
66 }
67
68
69
70
71
72
73 type ListProjectDeployTokensOptions ListOptions
74
75
76
77
78
79 func (s *DeployTokensService) ListProjectDeployTokens(pid interface{}, opt *ListProjectDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error) {
80 project, err := parseID(pid)
81 if err != nil {
82 return nil, nil, err
83 }
84 u := fmt.Sprintf("projects/%s/deploy_tokens", PathEscape(project))
85
86 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
87 if err != nil {
88 return nil, nil, err
89 }
90
91 var ts []*DeployToken
92 resp, err := s.client.Do(req, &ts)
93 if err != nil {
94 return nil, resp, err
95 }
96
97 return ts, resp, nil
98 }
99
100
101
102
103
104 func (s *DeployTokensService) GetProjectDeployToken(pid interface{}, deployToken int, options ...RequestOptionFunc) (*DeployToken, *Response, error) {
105 project, err := parseID(pid)
106 if err != nil {
107 return nil, nil, err
108 }
109 u := fmt.Sprintf("projects/%s/deploy_tokens/%d", PathEscape(project), deployToken)
110
111 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
112 if err != nil {
113 return nil, nil, err
114 }
115
116 t := new(DeployToken)
117 resp, err := s.client.Do(req, t)
118 if err != nil {
119 return nil, resp, err
120 }
121
122 return t, resp, nil
123 }
124
125
126
127
128
129 type CreateProjectDeployTokenOptions struct {
130 Name *string `url:"name,omitempty" json:"name,omitempty"`
131 ExpiresAt *time.Time `url:"expires_at,omitempty" json:"expires_at,omitempty"`
132 Username *string `url:"username,omitempty" json:"username,omitempty"`
133 Scopes *[]string `url:"scopes,omitempty" json:"scopes,omitempty"`
134 }
135
136
137
138
139
140 func (s *DeployTokensService) CreateProjectDeployToken(pid interface{}, opt *CreateProjectDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error) {
141 project, err := parseID(pid)
142 if err != nil {
143 return nil, nil, err
144 }
145 u := fmt.Sprintf("projects/%s/deploy_tokens", PathEscape(project))
146
147 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
148 if err != nil {
149 return nil, nil, err
150 }
151
152 t := new(DeployToken)
153 resp, err := s.client.Do(req, t)
154 if err != nil {
155 return nil, resp, err
156 }
157
158 return t, resp, nil
159 }
160
161
162
163
164
165 func (s *DeployTokensService) DeleteProjectDeployToken(pid interface{}, deployToken int, options ...RequestOptionFunc) (*Response, error) {
166 project, err := parseID(pid)
167 if err != nil {
168 return nil, err
169 }
170 u := fmt.Sprintf("projects/%s/deploy_tokens/%d", PathEscape(project), deployToken)
171
172 req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
173 if err != nil {
174 return nil, err
175 }
176
177 return s.client.Do(req, nil)
178 }
179
180
181
182
183
184
185 type ListGroupDeployTokensOptions ListOptions
186
187
188
189
190
191 func (s *DeployTokensService) ListGroupDeployTokens(gid interface{}, opt *ListGroupDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error) {
192 group, err := parseID(gid)
193 if err != nil {
194 return nil, nil, err
195 }
196 u := fmt.Sprintf("groups/%s/deploy_tokens", PathEscape(group))
197
198 req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
199 if err != nil {
200 return nil, nil, err
201 }
202
203 var ts []*DeployToken
204 resp, err := s.client.Do(req, &ts)
205 if err != nil {
206 return nil, resp, err
207 }
208
209 return ts, resp, nil
210 }
211
212
213
214
215
216 func (s *DeployTokensService) GetGroupDeployToken(gid interface{}, deployToken int, options ...RequestOptionFunc) (*DeployToken, *Response, error) {
217 group, err := parseID(gid)
218 if err != nil {
219 return nil, nil, err
220 }
221 u := fmt.Sprintf("groups/%s/deploy_tokens/%d", PathEscape(group), deployToken)
222
223 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
224 if err != nil {
225 return nil, nil, err
226 }
227
228 t := new(DeployToken)
229 resp, err := s.client.Do(req, t)
230 if err != nil {
231 return nil, resp, err
232 }
233
234 return t, resp, nil
235 }
236
237
238
239
240
241 type CreateGroupDeployTokenOptions struct {
242 Name *string `url:"name,omitempty" json:"name,omitempty"`
243 ExpiresAt *time.Time `url:"expires_at,omitempty" json:"expires_at,omitempty"`
244 Username *string `url:"username,omitempty" json:"username,omitempty"`
245 Scopes *[]string `url:"scopes,omitempty" json:"scopes,omitempty"`
246 }
247
248
249
250
251
252 func (s *DeployTokensService) CreateGroupDeployToken(gid interface{}, opt *CreateGroupDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error) {
253 group, err := parseID(gid)
254 if err != nil {
255 return nil, nil, err
256 }
257 u := fmt.Sprintf("groups/%s/deploy_tokens", PathEscape(group))
258
259 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
260 if err != nil {
261 return nil, nil, err
262 }
263
264 t := new(DeployToken)
265 resp, err := s.client.Do(req, t)
266 if err != nil {
267 return nil, resp, err
268 }
269
270 return t, resp, nil
271 }
272
273
274
275
276
277 func (s *DeployTokensService) DeleteGroupDeployToken(gid interface{}, deployToken int, options ...RequestOptionFunc) (*Response, error) {
278 group, err := parseID(gid)
279 if err != nil {
280 return nil, err
281 }
282 u := fmt.Sprintf("groups/%s/deploy_tokens/%d", PathEscape(group), deployToken)
283
284 req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
285 if err != nil {
286 return nil, err
287 }
288
289 return s.client.Do(req, nil)
290 }
291
View as plain text