gitabu 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +33 -0
  4. data/CHANGELOG.md +3 -0
  5. data/Gemfile +10 -0
  6. data/Gemfile.lock +65 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +42 -0
  9. data/Rakefile +12 -0
  10. data/gitabu.gemspec +41 -0
  11. data/lib/gitabu/api/v3/actions.rb +3724 -0
  12. data/lib/gitabu/api/v3/activity.rb +835 -0
  13. data/lib/gitabu/api/v3/apps.rb +961 -0
  14. data/lib/gitabu/api/v3/billing.rb +217 -0
  15. data/lib/gitabu/api/v3/branches.rb +1098 -0
  16. data/lib/gitabu/api/v3/checks.rb +384 -0
  17. data/lib/gitabu/api/v3/code_scanning.rb +315 -0
  18. data/lib/gitabu/api/v3/codes_of_conduct.rb +92 -0
  19. data/lib/gitabu/api/v3/codespaces.rb +650 -0
  20. data/lib/gitabu/api/v3/collaborators.rb +341 -0
  21. data/lib/gitabu/api/v3/commits.rb +428 -0
  22. data/lib/gitabu/api/v3/dependabot.rb +419 -0
  23. data/lib/gitabu/api/v3/deploy_keys.rb +152 -0
  24. data/lib/gitabu/api/v3/deployments.rb +356 -0
  25. data/lib/gitabu/api/v3/emojis.rb +67 -0
  26. data/lib/gitabu/api/v3/enterprise_admin.rb +495 -0
  27. data/lib/gitabu/api/v3/gists.rb +552 -0
  28. data/lib/gitabu/api/v3/git.rb +409 -0
  29. data/lib/gitabu/api/v3/gitignore.rb +92 -0
  30. data/lib/gitabu/api/v3/interactions.rb +275 -0
  31. data/lib/gitabu/api/v3/issues.rb +1119 -0
  32. data/lib/gitabu/api/v3/licenses.rb +118 -0
  33. data/lib/gitabu/api/v3/markdown.rb +94 -0
  34. data/lib/gitabu/api/v3/meta.rb +142 -0
  35. data/lib/gitabu/api/v3/metrics.rb +302 -0
  36. data/lib/gitabu/api/v3/migrations.rb +631 -0
  37. data/lib/gitabu/api/v3/orgs.rb +1291 -0
  38. data/lib/gitabu/api/v3/packages.rb +686 -0
  39. data/lib/gitabu/api/v3/pages.rb +282 -0
  40. data/lib/gitabu/api/v3/projects.rb +693 -0
  41. data/lib/gitabu/api/v3/pulls.rb +816 -0
  42. data/lib/gitabu/api/v3/rate_limit.rb +67 -0
  43. data/lib/gitabu/api/v3/reactions.rb +734 -0
  44. data/lib/gitabu/api/v3/releases.rb +411 -0
  45. data/lib/gitabu/api/v3/repos.rb +1136 -0
  46. data/lib/gitabu/api/v3/scim.rb +214 -0
  47. data/lib/gitabu/api/v3/search.rb +217 -0
  48. data/lib/gitabu/api/v3/secret_scanning.rb +201 -0
  49. data/lib/gitabu/api/v3/teams.rb +1963 -0
  50. data/lib/gitabu/api/v3/users.rb +851 -0
  51. data/lib/gitabu/api/v3/webhooks.rb +379 -0
  52. data/lib/gitabu/builder.rb +37 -0
  53. data/lib/gitabu/client.rb +8 -0
  54. data/lib/gitabu/generator.rb +75 -0
  55. data/lib/gitabu/http_client.rb +96 -0
  56. data/lib/gitabu/items.rb +110 -0
  57. data/lib/gitabu/public/api/v3/actions.json +5779 -0
  58. data/lib/gitabu/public/api/v3/activity.json +1248 -0
  59. data/lib/gitabu/public/api/v3/apps.json +1174 -0
  60. data/lib/gitabu/public/api/v3/billing.json +183 -0
  61. data/lib/gitabu/public/api/v3/branches.json +1886 -0
  62. data/lib/gitabu/public/api/v3/checks.json +856 -0
  63. data/lib/gitabu/public/api/v3/code_scanning.json +666 -0
  64. data/lib/gitabu/public/api/v3/codes_of_conduct.json +41 -0
  65. data/lib/gitabu/public/api/v3/codespaces.json +884 -0
  66. data/lib/gitabu/public/api/v3/collaborators.json +464 -0
  67. data/lib/gitabu/public/api/v3/commits.json +830 -0
  68. data/lib/gitabu/public/api/v3/dependabot.json +596 -0
  69. data/lib/gitabu/public/api/v3/deploy_keys.json +195 -0
  70. data/lib/gitabu/public/api/v3/deployments.json +698 -0
  71. data/lib/gitabu/public/api/v3/emojis.json +18 -0
  72. data/lib/gitabu/public/api/v3/enterprise_admin.json +881 -0
  73. data/lib/gitabu/public/api/v3/gists.json +689 -0
  74. data/lib/gitabu/public/api/v3/git.json +735 -0
  75. data/lib/gitabu/public/api/v3/gitignore.json +41 -0
  76. data/lib/gitabu/public/api/v3/interactions.json +265 -0
  77. data/lib/gitabu/public/api/v3/issues.json +2359 -0
  78. data/lib/gitabu/public/api/v3/licenses.json +100 -0
  79. data/lib/gitabu/public/api/v3/markdown.json +59 -0
  80. data/lib/gitabu/public/api/v3/meta.json +69 -0
  81. data/lib/gitabu/public/api/v3/metrics.json +342 -0
  82. data/lib/gitabu/public/api/v3/migrations.json +960 -0
  83. data/lib/gitabu/public/api/v3/orgs.json +1989 -0
  84. data/lib/gitabu/public/api/v3/packages.json +1078 -0
  85. data/lib/gitabu/public/api/v3/pages.json +373 -0
  86. data/lib/gitabu/public/api/v3/projects.json +966 -0
  87. data/lib/gitabu/public/api/v3/pulls.json +1768 -0
  88. data/lib/gitabu/public/api/v3/rate_limit.json +18 -0
  89. data/lib/gitabu/public/api/v3/reactions.json +1425 -0
  90. data/lib/gitabu/public/api/v3/releases.json +753 -0
  91. data/lib/gitabu/public/api/v3/repos.json +2314 -0
  92. data/lib/gitabu/public/api/v3/scim.json +412 -0
  93. data/lib/gitabu/public/api/v3/search.json +408 -0
  94. data/lib/gitabu/public/api/v3/secret_scanning.json +385 -0
  95. data/lib/gitabu/public/api/v3/teams.json +3126 -0
  96. data/lib/gitabu/public/api/v3/users.json +956 -0
  97. data/lib/gitabu/public/api/v3/webhooks.json +667 -0
  98. data/lib/gitabu/run.rb +237 -0
  99. data/lib/gitabu/scraper.rb +86 -0
  100. data/lib/gitabu/templates/template.rb.erb +70 -0
  101. data/lib/gitabu/version.rb +6 -0
  102. data/lib/gitabu.rb +57 -0
  103. data/sig/gitabu.rbs +4 -0
  104. metadata +177 -0
@@ -0,0 +1,693 @@
1
+ # frozen_string_literal: true
2
+
3
+ # INFO ON GENERATED CODE
4
+ #
5
+ # This file is generated.
6
+ # See the contribution guide on how to improve the code.
7
+ #
8
+ # INFO ON GENERATED CODE
9
+
10
+ # Ruby gem that helps you work with Github API.
11
+ module Gitabu
12
+ # API module
13
+ module Api
14
+ # Github Version 3
15
+ module V3
16
+ # Class to display Projects result
17
+ class ProjectsResult
18
+ attr_accessor :result, :message
19
+
20
+ def initialize(result:, message:)
21
+ @result = result
22
+ @message = message
23
+ end
24
+ end
25
+
26
+ # Class to display error result
27
+ class ProjectsErrorResult
28
+ attr_accessor :result, :message
29
+
30
+ def initialize(result:, message:)
31
+ @result = result
32
+ @message = message
33
+ end
34
+ end
35
+
36
+ # Projects endpoints.
37
+ class Projects
38
+ def self.list_organization_projects(org: nil, options: nil)
39
+ new.list_organization_projects(org, options)
40
+ end
41
+
42
+ def self.create_an_organization_project(org: nil, name: nil, body: nil, options: nil)
43
+ new.create_an_organization_project(org, name, body, options)
44
+ end
45
+
46
+ def self.get_a_project(project_id: nil, options: nil)
47
+ new.get_a_project(project_id, options)
48
+ end
49
+
50
+ def self.update_a_project(project_id: nil, name: nil, body: nil, state: nil, organization_permission: nil, private: nil, options: nil)
51
+ new.update_a_project(project_id, name, body, state, organization_permission, private, options)
52
+ end
53
+
54
+ def self.delete_a_project(project_id: nil, options: nil)
55
+ new.delete_a_project(project_id, options)
56
+ end
57
+
58
+ def self.list_repository_projects(owner: nil, repo: nil, options: nil)
59
+ new.list_repository_projects(owner, repo, options)
60
+ end
61
+
62
+ def self.create_a_repository_project(owner: nil, repo: nil, name: nil, body: nil, options: nil)
63
+ new.create_a_repository_project(owner, repo, name, body, options)
64
+ end
65
+
66
+ def self.create_a_user_project(name: nil, body: nil, options: nil)
67
+ new.create_a_user_project(name, body, options)
68
+ end
69
+
70
+ def self.list_user_projects(username: nil, options: nil)
71
+ new.list_user_projects(username, options)
72
+ end
73
+
74
+ def self.get_a_project_card(card_id: nil, options: nil)
75
+ new.get_a_project_card(card_id, options)
76
+ end
77
+
78
+ def self.update_an_existing_project_card(card_id: nil, note: nil, archived: nil, options: nil)
79
+ new.update_an_existing_project_card(card_id, note, archived, options)
80
+ end
81
+
82
+ def self.delete_a_project_card(card_id: nil, options: nil)
83
+ new.delete_a_project_card(card_id, options)
84
+ end
85
+
86
+ def self.move_a_project_card(card_id: nil, position: nil, column_id: nil, options: nil)
87
+ new.move_a_project_card(card_id, position, column_id, options)
88
+ end
89
+
90
+ def self.list_project_cards(column_id: nil, options: nil)
91
+ new.list_project_cards(column_id, options)
92
+ end
93
+
94
+ def self.create_a_project_card(column_id: nil, note: nil, content_id: nil, content_type: nil, options: nil)
95
+ new.create_a_project_card(column_id, note, content_id, content_type, options)
96
+ end
97
+
98
+ def self.list_project_collaborators(project_id: nil, options: nil)
99
+ new.list_project_collaborators(project_id, options)
100
+ end
101
+
102
+ def self.add_project_collaborator(project_id: nil, username: nil, permission: nil, options: nil)
103
+ new.add_project_collaborator(project_id, username, permission, options)
104
+ end
105
+
106
+ def self.remove_user_as_a_collaborator(project_id: nil, username: nil, options: nil)
107
+ new.remove_user_as_a_collaborator(project_id, username, options)
108
+ end
109
+
110
+ def self.get_project_permission_for_a_user(project_id: nil, username: nil, options: nil)
111
+ new.get_project_permission_for_a_user(project_id, username, options)
112
+ end
113
+
114
+ def self.get_a_project_column(column_id: nil, options: nil)
115
+ new.get_a_project_column(column_id, options)
116
+ end
117
+
118
+ def self.update_an_existing_project_column(column_id: nil, name: nil, options: nil)
119
+ new.update_an_existing_project_column(column_id, name, options)
120
+ end
121
+
122
+ def self.delete_a_project_column(column_id: nil, options: nil)
123
+ new.delete_a_project_column(column_id, options)
124
+ end
125
+
126
+ def self.move_a_project_column(column_id: nil, position: nil, options: nil)
127
+ new.move_a_project_column(column_id, position, options)
128
+ end
129
+
130
+ def self.list_project_columns(project_id: nil, options: nil)
131
+ new.list_project_columns(project_id, options)
132
+ end
133
+
134
+ def self.create_a_project_column(project_id: nil, name: nil, options: nil)
135
+ new.create_a_project_column(project_id, name, options)
136
+ end
137
+
138
+ private
139
+
140
+ # list organization projects
141
+ #
142
+ # @param org [String]
143
+ #
144
+ # @return ProjectsResult, ProjectsErrorResult
145
+ def list_organization_projects(org, options)
146
+ auth = nil
147
+ body = nil
148
+ headers = { accept: 'application/vnd.github.v3+json' }
149
+ params = { state: options[:state], per_page: options[:per_page], page: options[:page] }
150
+ uri = "#{Gitabu::BASE_URL}/orgs/#{org}/projects"
151
+
152
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
153
+
154
+ if http_call.successful?
155
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
156
+ else
157
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
158
+ end
159
+ end
160
+
161
+ # create an organization project
162
+ #
163
+ # @param org [String]
164
+ # @param name [String] Required. The name of the project.
165
+ # @param body [String] The description of the project.
166
+ #
167
+ # @return ProjectsResult, ProjectsErrorResult
168
+ def create_an_organization_project(org, name, body, _options)
169
+ auth = nil
170
+ body = { name: name, body: body }
171
+ headers = { accept: 'application/vnd.github.v3+json' }
172
+ params = nil
173
+ uri = "#{Gitabu::BASE_URL}/orgs/#{org}/projects"
174
+
175
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
176
+
177
+ if http_call.successful?
178
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
179
+ else
180
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
181
+ end
182
+ end
183
+
184
+ # get a project
185
+ #
186
+ # @param project_id [Integer]
187
+ #
188
+ # @return ProjectsResult, ProjectsErrorResult
189
+ def get_a_project(project_id, _options)
190
+ auth = nil
191
+ body = nil
192
+ headers = { accept: 'application/vnd.github.v3+json' }
193
+ params = nil
194
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}"
195
+
196
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
197
+
198
+ if http_call.successful?
199
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
200
+ else
201
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
202
+ end
203
+ end
204
+
205
+ # update a project
206
+ #
207
+ # @param project_id [Integer]
208
+ # @param name [String] Name of the project
209
+ # @param body [String or null] Body of the project
210
+ # @param state [String] State of the project; either 'open' or 'closed'
211
+ # @param organization_permission [String] The baseline permission that all organization members have on this project
212
+ # @param private [Boolean] Whether or not this project can be seen by everyone.
213
+ #
214
+ # @return ProjectsResult, ProjectsErrorResult
215
+ def update_a_project(project_id, name, body, state, organization_permission, private, _options)
216
+ auth = nil
217
+ body = { name: name, body: body, state: state, organization_permission: organization_permission, private: private }
218
+ headers = { accept: 'application/vnd.github.v3+json' }
219
+ params = nil
220
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}"
221
+
222
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :patch, params: params, uri: uri)
223
+
224
+ if http_call.successful?
225
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
226
+ else
227
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
228
+ end
229
+ end
230
+
231
+ # delete a project
232
+ #
233
+ # @param project_id [Integer]
234
+ #
235
+ # @return ProjectsResult, ProjectsErrorResult
236
+ def delete_a_project(project_id, _options)
237
+ auth = nil
238
+ body = nil
239
+ headers = { accept: 'application/vnd.github.v3+json' }
240
+ params = nil
241
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}"
242
+
243
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :delete, params: params, uri: uri)
244
+
245
+ if http_call.successful?
246
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
247
+ else
248
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
249
+ end
250
+ end
251
+
252
+ # list repository projects
253
+ #
254
+ # @param owner [String]
255
+ # @param repo [String]
256
+ #
257
+ # @return ProjectsResult, ProjectsErrorResult
258
+ def list_repository_projects(owner, repo, options)
259
+ auth = nil
260
+ body = nil
261
+ headers = { accept: 'application/vnd.github.v3+json' }
262
+ params = { state: options[:state], per_page: options[:per_page], page: options[:page] }
263
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/projects"
264
+
265
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
266
+
267
+ if http_call.successful?
268
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
269
+ else
270
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
271
+ end
272
+ end
273
+
274
+ # create a repository project
275
+ #
276
+ # @param owner [String]
277
+ # @param repo [String]
278
+ # @param name [String] Required. The name of the project.
279
+ # @param body [String] The description of the project.
280
+ #
281
+ # @return ProjectsResult, ProjectsErrorResult
282
+ def create_a_repository_project(owner, repo, name, body, _options)
283
+ auth = nil
284
+ body = { name: name, body: body }
285
+ headers = { accept: 'application/vnd.github.v3+json' }
286
+ params = nil
287
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/projects"
288
+
289
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
290
+
291
+ if http_call.successful?
292
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
293
+ else
294
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
295
+ end
296
+ end
297
+
298
+ # create a user project
299
+ #
300
+ # @param name [String] Required. Name of the project
301
+ # @param body [String or null] Body of the project
302
+ #
303
+ # @return ProjectsResult, ProjectsErrorResult
304
+ def create_a_user_project(name, body, _options)
305
+ auth = nil
306
+ body = { name: name, body: body }
307
+ headers = { accept: 'application/vnd.github.v3+json' }
308
+ params = nil
309
+ uri = "#{Gitabu::BASE_URL}/user/projects"
310
+
311
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
312
+
313
+ if http_call.successful?
314
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
315
+ else
316
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
317
+ end
318
+ end
319
+
320
+ # list user projects
321
+ #
322
+ # @param username [String]
323
+ #
324
+ # @return ProjectsResult, ProjectsErrorResult
325
+ def list_user_projects(username, options)
326
+ auth = nil
327
+ body = nil
328
+ headers = { accept: 'application/vnd.github.v3+json' }
329
+ params = { state: options[:state], per_page: options[:per_page], page: options[:page] }
330
+ uri = "#{Gitabu::BASE_URL}/users/#{username}/projects"
331
+
332
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
333
+
334
+ if http_call.successful?
335
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
336
+ else
337
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
338
+ end
339
+ end
340
+
341
+ # get a project card
342
+ #
343
+ # @param card_id [Integer] card_id parameter
344
+ #
345
+ # @return ProjectsResult, ProjectsErrorResult
346
+ def get_a_project_card(card_id, _options)
347
+ auth = nil
348
+ body = nil
349
+ headers = { accept: 'application/vnd.github.v3+json' }
350
+ params = nil
351
+ uri = "#{Gitabu::BASE_URL}/projects/columns/cards/#{card_id}"
352
+
353
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
354
+
355
+ if http_call.successful?
356
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
357
+ else
358
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
359
+ end
360
+ end
361
+
362
+ # update an existing project card
363
+ #
364
+ # @param card_id [Integer] card_id parameter
365
+ # @param note [String or null] The project card's note
366
+ # @param archived [Boolean] Whether or not the card is archived
367
+ #
368
+ # @return ProjectsResult, ProjectsErrorResult
369
+ def update_an_existing_project_card(card_id, note, archived, _options)
370
+ auth = nil
371
+ body = { note: note, archived: archived }
372
+ headers = { accept: 'application/vnd.github.v3+json' }
373
+ params = nil
374
+ uri = "#{Gitabu::BASE_URL}/projects/columns/cards/#{card_id}"
375
+
376
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :patch, params: params, uri: uri)
377
+
378
+ if http_call.successful?
379
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
380
+ else
381
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
382
+ end
383
+ end
384
+
385
+ # delete a project card
386
+ #
387
+ # @param card_id [Integer] card_id parameter
388
+ #
389
+ # @return ProjectsResult, ProjectsErrorResult
390
+ def delete_a_project_card(card_id, _options)
391
+ auth = nil
392
+ body = nil
393
+ headers = { accept: 'application/vnd.github.v3+json' }
394
+ params = nil
395
+ uri = "#{Gitabu::BASE_URL}/projects/columns/cards/#{card_id}"
396
+
397
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :delete, params: params, uri: uri)
398
+
399
+ if http_call.successful?
400
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
401
+ else
402
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
403
+ end
404
+ end
405
+
406
+ # move a project card
407
+ #
408
+ # @param card_id [Integer] card_id parameter
409
+ # @param position [String] Required. The position of the card in a column. Can be one of: top, bottom, or after:<card_id> to place after the specified card.
410
+ # @param column_id [Integer] The unique identifier of the column the card should be moved to
411
+ #
412
+ # @return ProjectsResult, ProjectsErrorResult
413
+ def move_a_project_card(card_id, position, column_id, _options)
414
+ auth = nil
415
+ body = { position: position, column_id: column_id }
416
+ headers = { accept: 'application/vnd.github.v3+json' }
417
+ params = nil
418
+ uri = "#{Gitabu::BASE_URL}/projects/columns/cards/#{card_id}/moves"
419
+
420
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
421
+
422
+ if http_call.successful?
423
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
424
+ else
425
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
426
+ end
427
+ end
428
+
429
+ # list project cards
430
+ #
431
+ # @param column_id [Integer] column_id parameter
432
+ #
433
+ # @return ProjectsResult, ProjectsErrorResult
434
+ def list_project_cards(column_id, options)
435
+ auth = nil
436
+ body = nil
437
+ headers = { accept: 'application/vnd.github.v3+json' }
438
+ params = { archived_state: options[:archived_state], per_page: options[:per_page], page: options[:page] }
439
+ uri = "#{Gitabu::BASE_URL}/projects/columns/#{column_id}/cards"
440
+
441
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
442
+
443
+ if http_call.successful?
444
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
445
+ else
446
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
447
+ end
448
+ end
449
+
450
+ # create a project card
451
+ #
452
+ # @param column_id [Integer] column_id parameter
453
+ # @param note [String or null] Required. The project card's note
454
+ # @param content_id [Integer] Required. The unique identifier of the content associated with the card
455
+ # @param content_type [String] Required. The piece of content associated with the card
456
+ #
457
+ # @return ProjectsResult, ProjectsErrorResult
458
+ def create_a_project_card(column_id, note, content_id, content_type, _options)
459
+ auth = nil
460
+ body = { note: note, content_id: content_id, content_type: content_type }
461
+ headers = { accept: 'application/vnd.github.v3+json' }
462
+ params = nil
463
+ uri = "#{Gitabu::BASE_URL}/projects/columns/#{column_id}/cards"
464
+
465
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
466
+
467
+ if http_call.successful?
468
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
469
+ else
470
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
471
+ end
472
+ end
473
+
474
+ # list project collaborators
475
+ #
476
+ # @param project_id [Integer]
477
+ #
478
+ # @return ProjectsResult, ProjectsErrorResult
479
+ def list_project_collaborators(project_id, options)
480
+ auth = nil
481
+ body = nil
482
+ headers = { accept: 'application/vnd.github.v3+json' }
483
+ params = { affiliation: options[:affiliation], per_page: options[:per_page], page: options[:page] }
484
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}/collaborators"
485
+
486
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
487
+
488
+ if http_call.successful?
489
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
490
+ else
491
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
492
+ end
493
+ end
494
+
495
+ # add project collaborator
496
+ #
497
+ # @param project_id [Integer]
498
+ # @param username [String]
499
+ # @param permission [String] The permission to grant the collaborator.Default: write
500
+ #
501
+ # @return ProjectsResult, ProjectsErrorResult
502
+ def add_project_collaborator(project_id, username, permission, _options)
503
+ auth = nil
504
+ body = { permission: permission }
505
+ headers = { accept: 'application/vnd.github.v3+json' }
506
+ params = nil
507
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}/collaborators/#{username}"
508
+
509
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :put, params: params, uri: uri)
510
+
511
+ if http_call.successful?
512
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
513
+ else
514
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
515
+ end
516
+ end
517
+
518
+ # remove user as a collaborator
519
+ #
520
+ # @param project_id [Integer]
521
+ # @param username [String]
522
+ #
523
+ # @return ProjectsResult, ProjectsErrorResult
524
+ def remove_user_as_a_collaborator(project_id, username, _options)
525
+ auth = nil
526
+ body = nil
527
+ headers = { accept: 'application/vnd.github.v3+json' }
528
+ params = nil
529
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}/collaborators/#{username}"
530
+
531
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :delete, params: params, uri: uri)
532
+
533
+ if http_call.successful?
534
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
535
+ else
536
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
537
+ end
538
+ end
539
+
540
+ # get project permission for a user
541
+ #
542
+ # @param project_id [Integer]
543
+ # @param username [String]
544
+ #
545
+ # @return ProjectsResult, ProjectsErrorResult
546
+ def get_project_permission_for_a_user(project_id, username, _options)
547
+ auth = nil
548
+ body = nil
549
+ headers = { accept: 'application/vnd.github.v3+json' }
550
+ params = nil
551
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}/collaborators/#{username}/permission"
552
+
553
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
554
+
555
+ if http_call.successful?
556
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
557
+ else
558
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
559
+ end
560
+ end
561
+
562
+ # get a project column
563
+ #
564
+ # @param column_id [Integer] column_id parameter
565
+ #
566
+ # @return ProjectsResult, ProjectsErrorResult
567
+ def get_a_project_column(column_id, _options)
568
+ auth = nil
569
+ body = nil
570
+ headers = { accept: 'application/vnd.github.v3+json' }
571
+ params = nil
572
+ uri = "#{Gitabu::BASE_URL}/projects/columns/#{column_id}"
573
+
574
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
575
+
576
+ if http_call.successful?
577
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
578
+ else
579
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
580
+ end
581
+ end
582
+
583
+ # update an existing project column
584
+ #
585
+ # @param column_id [Integer] column_id parameter
586
+ # @param name [String] Required. Name of the project column
587
+ #
588
+ # @return ProjectsResult, ProjectsErrorResult
589
+ def update_an_existing_project_column(column_id, name, _options)
590
+ auth = nil
591
+ body = { name: name }
592
+ headers = { accept: 'application/vnd.github.v3+json' }
593
+ params = nil
594
+ uri = "#{Gitabu::BASE_URL}/projects/columns/#{column_id}"
595
+
596
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :patch, params: params, uri: uri)
597
+
598
+ if http_call.successful?
599
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
600
+ else
601
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
602
+ end
603
+ end
604
+
605
+ # delete a project column
606
+ #
607
+ # @param column_id [Integer] column_id parameter
608
+ #
609
+ # @return ProjectsResult, ProjectsErrorResult
610
+ def delete_a_project_column(column_id, _options)
611
+ auth = nil
612
+ body = nil
613
+ headers = { accept: 'application/vnd.github.v3+json' }
614
+ params = nil
615
+ uri = "#{Gitabu::BASE_URL}/projects/columns/#{column_id}"
616
+
617
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :delete, params: params, uri: uri)
618
+
619
+ if http_call.successful?
620
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
621
+ else
622
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
623
+ end
624
+ end
625
+
626
+ # move a project column
627
+ #
628
+ # @param column_id [Integer] column_id parameter
629
+ # @param position [String] Required. The position of the column in a project. Can be one of: first, last, or after:<column_id> to place after the specified column.
630
+ #
631
+ # @return ProjectsResult, ProjectsErrorResult
632
+ def move_a_project_column(column_id, position, _options)
633
+ auth = nil
634
+ body = { position: position }
635
+ headers = { accept: 'application/vnd.github.v3+json' }
636
+ params = nil
637
+ uri = "#{Gitabu::BASE_URL}/projects/columns/#{column_id}/moves"
638
+
639
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
640
+
641
+ if http_call.successful?
642
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
643
+ else
644
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
645
+ end
646
+ end
647
+
648
+ # list project columns
649
+ #
650
+ # @param project_id [Integer]
651
+ #
652
+ # @return ProjectsResult, ProjectsErrorResult
653
+ def list_project_columns(project_id, options)
654
+ auth = nil
655
+ body = nil
656
+ headers = { accept: 'application/vnd.github.v3+json' }
657
+ params = { per_page: options[:per_page], page: options[:page] }
658
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}/columns"
659
+
660
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
661
+
662
+ if http_call.successful?
663
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
664
+ else
665
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
666
+ end
667
+ end
668
+
669
+ # create a project column
670
+ #
671
+ # @param project_id [Integer]
672
+ # @param name [String] Required. Name of the project column
673
+ #
674
+ # @return ProjectsResult, ProjectsErrorResult
675
+ def create_a_project_column(project_id, name, _options)
676
+ auth = nil
677
+ body = { name: name }
678
+ headers = { accept: 'application/vnd.github.v3+json' }
679
+ params = nil
680
+ uri = "#{Gitabu::BASE_URL}/projects/#{project_id}/columns"
681
+
682
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
683
+
684
+ if http_call.successful?
685
+ ProjectsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
686
+ else
687
+ ProjectsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
688
+ end
689
+ end
690
+ end
691
+ end
692
+ end
693
+ end