backlog_kit 0.12.1 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,12 @@
1
1
  module BacklogKit
2
2
  class Client
3
+
4
+ # Methods for the Priority API
3
5
  module Priority
6
+
7
+ # Get list of priorities
8
+ #
9
+ # @return [BacklogKit::Response] List of priorities
4
10
  def get_priorities
5
11
  get('priorities')
6
12
  end
@@ -1,140 +1,432 @@
1
1
  module BacklogKit
2
2
  class Client
3
+
4
+ # Methods for the Project API
3
5
  module Project
4
- def get_projects
5
- get('projects')
6
+
7
+ # Get list of projects
8
+ #
9
+ # @param params [Hash] Request parameters
10
+ # @return [BacklogKit::Response] List of projects
11
+ def get_projects(params = {})
12
+ get('projects', params)
6
13
  end
7
14
 
15
+ # Get a project
16
+ #
17
+ # @param project_id_or_key [Integer, String] Project id or project key
18
+ # @return [BacklogKit::Response] The project information
8
19
  def get_project(project_id_or_key)
9
20
  get("projects/#{project_id_or_key}")
10
21
  end
11
22
 
23
+ # Create a new project
24
+ #
25
+ # @param key [String] Project key
26
+ # @param name [String] Project name
27
+ # @param params [Hash] Request parameters
28
+ # @return [BacklogKit::Response] The project information
12
29
  def create_project(key, name, params = {})
13
30
  params.merge!(key: key, name: name)
14
31
  post('projects', params)
15
32
  end
16
33
 
34
+ # Update a project
35
+ #
36
+ # @param project_id_or_key [Integer, String] Project id or project key
37
+ # @param params [Hash] Request parameters
38
+ # @return [BacklogKit::Response] The project information
17
39
  def update_project(project_id_or_key, params = {})
18
40
  patch("projects/#{project_id_or_key}", params)
19
41
  end
20
42
 
43
+ # Delete a project
44
+ #
45
+ # @param project_id_or_key [Integer, String] Project id or project key
46
+ # @return [BacklogKit::Response] The project information
21
47
  def delete_project(project_id_or_key)
22
48
  delete("projects/#{project_id_or_key}")
23
49
  end
24
50
 
51
+ # Download a project icon image
52
+ #
53
+ # @param project_id_or_key [Integer, String] Project id or project key
54
+ # @return [BacklogKit::Response] Binary image data
25
55
  def download_project_icon(project_id_or_key)
26
56
  get("projects/#{project_id_or_key}/image")
27
57
  end
28
58
 
59
+ # Get list of project activities
60
+ #
61
+ # @param project_id_or_key [Integer, String] Project id or project key
62
+ # @param params [Hash] Request parameters
63
+ # @return [BacklogKit::Response] List of recent updates in the project
29
64
  def get_project_activities(project_id_or_key, params = {})
30
65
  get("projects/#{project_id_or_key}/activities", params)
31
66
  end
32
67
 
68
+ # Get list of project members
69
+ #
70
+ # @param project_id_or_key [Integer, String] Project id or project key
71
+ # @return [BacklogKit::Response] List of users
33
72
  def get_project_users(project_id_or_key)
34
73
  get("projects/#{project_id_or_key}/users")
35
74
  end
36
75
 
76
+ # Add a user to a project
77
+ #
78
+ # @param project_id_or_key [Integer, String] Project id or project key
79
+ # @param user_id [Integer, String] User id
80
+ # @return [BacklogKit::Response] The user information
37
81
  def add_project_user(project_id_or_key, user_id)
38
82
  post("projects/#{project_id_or_key}/users", user_id: user_id)
39
83
  end
40
84
 
85
+ # Remove a user from project
86
+ #
87
+ # @param project_id_or_key [Integer, String] Project id or project key
88
+ # @param user_id [Integer, String] User id
89
+ # @return [BacklogKit::Response] The user information
41
90
  def remove_project_user(project_id_or_key, user_id)
42
91
  delete("projects/#{project_id_or_key}/users", user_id: user_id)
43
92
  end
44
93
 
94
+ # Get list of users who has Project Administrator role
95
+ #
96
+ # @param project_id_or_key [Integer, String] Project id or project key
97
+ # @return [BacklogKit::Response] List of users
45
98
  def get_project_administrators(project_id_or_key)
46
99
  get("projects/#{project_id_or_key}/administrators")
47
100
  end
48
101
 
102
+ # Add Project Administrator role to a user
103
+ #
104
+ # @param project_id_or_key [Integer, String] Project id or project key
105
+ # @param user_id [Integer, String] User id
106
+ # @return [BacklogKit::Response] The user information
49
107
  def add_project_admin_auth(project_id_or_key, user_id)
50
108
  post("projects/#{project_id_or_key}/administrators", user_id: user_id)
51
109
  end
52
110
 
111
+ # Remove Project Administrator role from user
112
+ #
113
+ # @param project_id_or_key [Integer, String] Project id or project key
114
+ # @param user_id [Integer, String] User id
115
+ # @return [BacklogKit::Response] The user information
53
116
  def remove_project_admin_auth(project_id_or_key, user_id)
54
117
  delete("projects/#{project_id_or_key}/administrators", user_id: user_id)
55
118
  end
56
119
 
120
+ # Get list of issue types
121
+ #
122
+ # @param project_id_or_key [Integer, String] Project id or project key
123
+ # @return [BacklogKit::Response] List of issue types
57
124
  def get_issue_types(project_id_or_key)
58
125
  get("projects/#{project_id_or_key}/issueTypes")
59
126
  end
60
127
 
128
+ # Add an issue type to a project
129
+ #
130
+ # @param project_id_or_key [Integer, String] Project id or project key
131
+ # @param name [String] Issue type name
132
+ # @param color [String] Background color of the issue type
133
+ # @return [BacklogKit::Response] The issue type information
61
134
  def add_issue_type(project_id_or_key, name, color)
62
135
  post("projects/#{project_id_or_key}/issueTypes", name: name, color: color)
63
136
  end
64
137
 
138
+ # Update an issue type
139
+ #
140
+ # @param project_id_or_key [Integer, String] Project id or project key
141
+ # @param type_id [Integer, String] Issue type id
142
+ # @param params [Hash] Request parameters
143
+ # @return [BacklogKit::Response] The issue type information
65
144
  def update_issue_type(project_id_or_key, type_id, params = {})
66
145
  patch("projects/#{project_id_or_key}/issueTypes/#{type_id}", params)
67
146
  end
68
147
 
148
+ # Remove an issue type from project
149
+ #
150
+ # @param project_id_or_key [Integer, String] Project id or project key
151
+ # @param type_id [Integer, String] Issue type id
152
+ # @param substitute_type_id [Integer, String] Issue type id to change linked issue
153
+ # @return [BacklogKit::Response] The issue type information
69
154
  def remove_issue_type(project_id_or_key, type_id, substitute_type_id)
70
155
  delete("projects/#{project_id_or_key}/issueTypes/#{type_id}", substitute_issue_type_id: substitute_type_id)
71
156
  end
72
157
 
158
+ # Get list of categories
159
+ #
160
+ # @param project_id_or_key [Integer, String] Project id or project key
161
+ # @return [BacklogKit::Response] List of categories
73
162
  def get_categories(project_id_or_key)
74
163
  get("projects/#{project_id_or_key}/categories")
75
164
  end
76
165
 
166
+ # Add a category to a project
167
+ #
168
+ # @param project_id_or_key [Integer, String] Project id or project key
169
+ # @param name [String] Category name
170
+ # @return [BacklogKit::Response] The category information
77
171
  def add_category(project_id_or_key, name)
78
172
  post("projects/#{project_id_or_key}/categories", name: name)
79
173
  end
80
174
 
175
+ # Update a category
176
+ #
177
+ # @param project_id_or_key [Integer, String] Project id or project key
178
+ # @param category_id [Integer, String] Category id
179
+ # @param name [String] Category name
180
+ # @return [BacklogKit::Response] The category information
81
181
  def update_category(project_id_or_key, category_id, name)
82
182
  patch("projects/#{project_id_or_key}/categories/#{category_id}", name: name)
83
183
  end
84
184
 
185
+ # Remove a category from project
186
+ #
187
+ # @param project_id_or_key [Integer, String] Project id or project key
188
+ # @param category_id [Integer, String] Category id
189
+ # @return [BacklogKit::Response] The category information
85
190
  def remove_category(project_id_or_key, category_id)
86
191
  delete("projects/#{project_id_or_key}/categories/#{category_id}")
87
192
  end
88
193
 
194
+ # Get list of versions
195
+ #
196
+ # @param project_id_or_key [Integer, String] Project id or project key
197
+ # @return [BacklogKit::Response] List of versions
89
198
  def get_versions(project_id_or_key)
90
199
  get("projects/#{project_id_or_key}/versions")
91
200
  end
92
201
 
202
+ # Add a version to a project
203
+ #
204
+ # @param project_id_or_key [Integer, String] Project id or project key
205
+ # @param name [String] Version name
206
+ # @param params [Hash] Request parameters
207
+ # @return [BacklogKit::Response] The version information
93
208
  def add_version(project_id_or_key, name, params = {})
94
209
  params.merge!(name: name)
95
210
  post("projects/#{project_id_or_key}/versions", params)
96
211
  end
97
212
 
213
+ # Update a version
214
+ #
215
+ # @param project_id_or_key [Integer, String] Project id or project key
216
+ # @param version_id [Integer, String] Version id
217
+ # @param params [Hash] Request parameters
218
+ # @return [BacklogKit::Response] The version information
98
219
  def update_version(project_id_or_key, version_id, params = {})
99
220
  patch("projects/#{project_id_or_key}/versions/#{version_id}", params)
100
221
  end
101
222
 
223
+ # Remove a version from project
224
+ #
225
+ # @param project_id_or_key [Integer, String] Project id or project key
226
+ # @param version_id [Integer, String] Version id
227
+ # @return [BacklogKit::Response] The version information
102
228
  def remove_version(project_id_or_key, version_id)
103
229
  delete("projects/#{project_id_or_key}/versions/#{version_id}")
104
230
  end
105
231
 
232
+ # Get list of shared files
233
+ #
234
+ # @param project_id_or_key [Integer, String] Project id or project key
235
+ # @param directory_path [String] Directory path
236
+ # @param params [Hash] Request parameters
237
+ # @return [BacklogKit::Response] List of files
106
238
  def get_shared_files(project_id_or_key, directory_path = '', params = {})
107
239
  get("projects/#{project_id_or_key}/files/metadata/#{directory_path}", params)
108
240
  end
109
241
 
242
+ # Download a shared file
243
+ #
244
+ # @param project_id_or_key [Integer, String] Project id or project key
245
+ # @param file_id [Integer, String] Shared file id
246
+ # @return [BacklogKit::Response] Binary data
110
247
  def download_shared_file(project_id_or_key, file_id)
111
248
  get("projects/#{project_id_or_key}/files/#{file_id}")
112
249
  end
113
250
 
251
+ # Get disk usage
252
+ #
253
+ # @param project_id_or_key [Integer, String] Project id or project key
254
+ # @return [BacklogKit::Response] The disk usage information
114
255
  def get_project_disk_usage(project_id_or_key)
115
256
  get("projects/#{project_id_or_key}/diskUsage")
116
257
  end
117
258
 
259
+ # Get list of webhooks
260
+ #
261
+ # @param project_id_or_key [Integer, String] Project id or project key
262
+ # @return [BacklogKit::Response] List of webhooks
118
263
  def get_webhooks(project_id_or_key)
119
264
  get("projects/#{project_id_or_key}/webhooks")
120
265
  end
121
266
 
267
+ # Get a webhook
268
+ #
269
+ # @param project_id_or_key [Integer, String] Project id or project key
270
+ # @param webhook_id [Integer, String] Webhook id
271
+ # @return [BacklogKit::Response] The webhook information
122
272
  def get_webhook(project_id_or_key, webhook_id)
123
273
  get("projects/#{project_id_or_key}/webhooks/#{webhook_id}")
124
274
  end
125
275
 
276
+ # Add a webhook to a project
277
+ #
278
+ # @param project_id_or_key [Integer, String] Project id or project key
279
+ # @param name [String] Webhook name
280
+ # @param hook_url [String] Webhook URL
281
+ # @param params [Hash] Request parameters
282
+ # @return [BacklogKit::Response] The webhook information
126
283
  def add_webhook(project_id_or_key, name, hook_url, params = {})
127
284
  params.merge!(name: name, hook_url: hook_url)
128
285
  post("projects/#{project_id_or_key}/webhooks", params)
129
286
  end
130
287
 
288
+ # Update a webhook
289
+ #
290
+ # @param project_id_or_key [Integer, String] Project id or project key
291
+ # @param webhook_id [Integer, String] Webhook id
292
+ # @param params [Hash] Request parameters
293
+ # @return [BacklogKit::Response] The webhook information
131
294
  def update_webhook(project_id_or_key, webhook_id, params = {})
132
295
  patch("projects/#{project_id_or_key}/webhooks/#{webhook_id}", params)
133
296
  end
134
297
 
298
+ # Remove a webhook from project
299
+ #
300
+ # @param project_id_or_key [Integer, String] Project id or project key
301
+ # @param webhook_id [Integer, String] Webhook id
302
+ # @return [BacklogKit::Response] The webhook information
135
303
  def remove_webhook(project_id_or_key, webhook_id)
136
304
  delete("projects/#{project_id_or_key}/webhooks/#{webhook_id}")
137
305
  end
306
+
307
+ # Get list of pull requests
308
+ #
309
+ # @param project_id_or_key [Integer, String] Project id or project key
310
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
311
+ # @return [BacklogKit::Response] List of pull requests
312
+ def get_pull_requests(project_id_or_key, repository_id_or_name)
313
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests")
314
+ end
315
+
316
+ # Get number of pull requests
317
+ #
318
+ # @param project_id_or_key [Integer, String] Project id or project key
319
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
320
+ # @return [BacklogKit::Response] Number of pull requests
321
+ def get_pull_request_count(project_id_or_key, repository_id_or_name)
322
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/count")
323
+ end
324
+
325
+ # Get a pull request
326
+ #
327
+ # @param project_id_or_key [Integer, String] Project id or project key
328
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
329
+ # @param pull_request_number [Integer, String] Pull request number
330
+ # @return [BacklogKit::Response] The pull request information
331
+ def get_pull_request(project_id_or_key, repository_id_or_name, pull_request_number)
332
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}")
333
+ end
334
+
335
+ # Create a new pull request
336
+ #
337
+ # @param project_id_or_key [Integer, String] Project id or project key
338
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
339
+ # @param params [Hash] Request parameters
340
+ # @return [BacklogKit::Response] The pull request information
341
+ def create_pull_request(project_id_or_key, repository_id_or_name, params = {})
342
+ post("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests", params)
343
+ end
344
+
345
+ # Update a pull request
346
+ #
347
+ # @param project_id_or_key [Integer, String] Project id or project key
348
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
349
+ # @param pull_request_number [Integer, String] Pull request number
350
+ # @param params [Hash] Request parameters
351
+ # @return [BacklogKit::Response] The pull request information
352
+ def update_pull_request(project_id_or_key, repository_id_or_name, pull_request_number, params = {})
353
+ patch("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}", params)
354
+ end
355
+
356
+ # Get list of comments in pull request
357
+ #
358
+ # @param project_id_or_key [Integer, String] Project id or project key
359
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
360
+ # @param pull_request_number [Integer, String] Pull request number
361
+ # @return [BacklogKit::Response] List of comments
362
+ def get_pull_request_comments(project_id_or_key, repository_id_or_name, pull_request_number)
363
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}/comments")
364
+ end
365
+
366
+ # Get number of comments in pull request
367
+ #
368
+ # @param project_id_or_key [Integer, String] Project id or project key
369
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
370
+ # @param pull_request_number [Integer, String] Pull request number
371
+ # @return [BacklogKit::Response] Number of comments
372
+ def get_pull_request_comment_count(project_id_or_key, repository_id_or_name, pull_request_number)
373
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}/comments/count")
374
+ end
375
+
376
+ # Add a comment to a pull request
377
+ #
378
+ # @param project_id_or_key [Integer, String] Project id or project key
379
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
380
+ # @param pull_request_number [Integer, String] Pull request number
381
+ # @param params [Hash] Request parameters
382
+ # @return [BacklogKit::Response] The comment information
383
+ def add_pull_request_comment(project_id_or_key, repository_id_or_name, pull_request_number, params = {})
384
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}/comments", params)
385
+ end
386
+
387
+ # Update a comment in pull request
388
+ #
389
+ # @param project_id_or_key [Integer, String] Project id or project key
390
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
391
+ # @param pull_request_number [Integer, String] Pull request number
392
+ # @param comment_id [Integer, String] Comment id
393
+ # @param content [String] Content of the comment
394
+ # @return [BacklogKit::Response] The comment information
395
+ def update_pull_request_comment(project_id_or_key, repository_id_or_name, pull_request_number, comment_id, content)
396
+ patch("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}/comments/#{comment_id}", content: content)
397
+ end
398
+
399
+ # Get list of attachment files on pull request
400
+ #
401
+ # @param project_id_or_key [Integer, String] Project id or project key
402
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
403
+ # @param pull_request_number [Integer, String] Pull request number
404
+ # @return [BacklogKit::Response] List of files
405
+ def get_pull_request_attachments(project_id_or_key, repository_id_or_name, pull_request_number)
406
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}/attachments")
407
+ end
408
+
409
+ # Download an attachment file on pull request
410
+ #
411
+ # @param project_id_or_key [Integer, String] Project id or project key
412
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
413
+ # @param pull_request_number [Integer, String] Pull request number
414
+ # @param attachment_id [Integer, String] Attachment file id
415
+ # @return [BacklogKit::Response] Binary data
416
+ def download_pull_request_attachment(project_id_or_key, repository_id_or_name, pull_request_number, attachment_id)
417
+ get("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}/attachments/#{attachment_id}")
418
+ end
419
+
420
+ # Remove an attachment file from pull request
421
+ #
422
+ # @param project_id_or_key [Integer, String] Project id or project key
423
+ # @param repository_id_or_name [Integer, String] Repository id or repository name
424
+ # @param pull_request_number [Integer, String] Pull request number
425
+ # @param attachment_id [Integer, String] Attachment file id
426
+ # @return [BacklogKit::Response] The pull request information
427
+ def remove_pull_request_attachment(project_id_or_key, repository_id_or_name, pull_request_number, attachment_id)
428
+ delete("projects/#{project_id_or_key}/git/repositories/#{repository_id_or_name}/pullRequests/#{pull_request_number}/attachments/#{attachment_id}")
429
+ end
138
430
  end
139
431
  end
140
432
  end
@@ -1,6 +1,12 @@
1
1
  module BacklogKit
2
2
  class Client
3
+
4
+ # Methods for the Resolution API
3
5
  module Resolution
6
+
7
+ # Get list of resolutions
8
+ #
9
+ # @return [BacklogKit::Response] List of resolutions
4
10
  def get_resolutions
5
11
  get('resolutions')
6
12
  end