gitabu 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,428 @@
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 Commits result
17
+ class CommitsResult
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 CommitsErrorResult
28
+ attr_accessor :result, :message
29
+
30
+ def initialize(result:, message:)
31
+ @result = result
32
+ @message = message
33
+ end
34
+ end
35
+
36
+ # Commits endpoints.
37
+ class Commits
38
+ def self.list_commits(owner: nil, repo: nil, options: nil)
39
+ new.list_commits(owner, repo, options)
40
+ end
41
+
42
+ def self.list_branches_for_head_commit(owner: nil, repo: nil, commit_sha: nil, options: nil)
43
+ new.list_branches_for_head_commit(owner, repo, commit_sha, options)
44
+ end
45
+
46
+ def self.list_pull_requests_associated_with_a_commit(owner: nil, repo: nil, commit_sha: nil, options: nil)
47
+ new.list_pull_requests_associated_with_a_commit(owner, repo, commit_sha, options)
48
+ end
49
+
50
+ def self.get_a_commit(owner: nil, repo: nil, ref: nil, options: nil)
51
+ new.get_a_commit(owner, repo, ref, options)
52
+ end
53
+
54
+ def self.compare_two_commits(owner: nil, repo: nil, basehead: nil, options: nil)
55
+ new.compare_two_commits(owner, repo, basehead, options)
56
+ end
57
+
58
+ def self.list_commit_comments_for_a_repository(owner: nil, repo: nil, options: nil)
59
+ new.list_commit_comments_for_a_repository(owner, repo, options)
60
+ end
61
+
62
+ def self.get_a_commit_comment(owner: nil, repo: nil, comment_id: nil, options: nil)
63
+ new.get_a_commit_comment(owner, repo, comment_id, options)
64
+ end
65
+
66
+ def self.update_a_commit_comment(owner: nil, repo: nil, comment_id: nil, body: nil, options: nil)
67
+ new.update_a_commit_comment(owner, repo, comment_id, body, options)
68
+ end
69
+
70
+ def self.delete_a_commit_comment(owner: nil, repo: nil, comment_id: nil, options: nil)
71
+ new.delete_a_commit_comment(owner, repo, comment_id, options)
72
+ end
73
+
74
+ def self.list_commit_comments(owner: nil, repo: nil, commit_sha: nil, options: nil)
75
+ new.list_commit_comments(owner, repo, commit_sha, options)
76
+ end
77
+
78
+ def self.create_a_commit_comment(owner: nil, repo: nil, commit_sha: nil, body: nil, path: nil, position: nil, line: nil, options: nil)
79
+ new.create_a_commit_comment(owner, repo, commit_sha, body, path, position, line, options)
80
+ end
81
+
82
+ def self.get_the_combined_status_for_a_specific_reference(owner: nil, repo: nil, ref: nil, options: nil)
83
+ new.get_the_combined_status_for_a_specific_reference(owner, repo, ref, options)
84
+ end
85
+
86
+ def self.list_commit_statuses_for_a_reference(owner: nil, repo: nil, ref: nil, options: nil)
87
+ new.list_commit_statuses_for_a_reference(owner, repo, ref, options)
88
+ end
89
+
90
+ def self.create_a_commit_status(owner: nil, repo: nil, sha: nil, state: nil, target_url: nil, description: nil, context: nil, options: nil)
91
+ new.create_a_commit_status(owner, repo, sha, state, target_url, description, context, options)
92
+ end
93
+
94
+ private
95
+
96
+ # list commits
97
+ #
98
+ # @param owner [String]
99
+ # @param repo [String]
100
+ #
101
+ # @return CommitsResult, CommitsErrorResult
102
+ def list_commits(owner, repo, options)
103
+ auth = nil
104
+ body = nil
105
+ headers = { accept: 'application/vnd.github.v3+json' }
106
+ params = { sha: options[:sha], path: options[:path], author: options[:author], since: options[:since], until: options[:until], per_page: options[:per_page], page: options[:page] }
107
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits"
108
+
109
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
110
+
111
+ if http_call.successful?
112
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
113
+ else
114
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
115
+ end
116
+ end
117
+
118
+ # list branches for head commit
119
+ #
120
+ # @param owner [String]
121
+ # @param repo [String]
122
+ # @param commit_sha [String] commit_sha parameter
123
+ #
124
+ # @return CommitsResult, CommitsErrorResult
125
+ def list_branches_for_head_commit(owner, repo, commit_sha, _options)
126
+ auth = nil
127
+ body = nil
128
+ headers = { accept: 'application/vnd.github.v3+json' }
129
+ params = nil
130
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits/#{commit_sha}/branches-where-head"
131
+
132
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
133
+
134
+ if http_call.successful?
135
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
136
+ else
137
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
138
+ end
139
+ end
140
+
141
+ # list pull requests associated with a commit
142
+ #
143
+ # @param owner [String]
144
+ # @param repo [String]
145
+ # @param commit_sha [String] commit_sha parameter
146
+ #
147
+ # @return CommitsResult, CommitsErrorResult
148
+ def list_pull_requests_associated_with_a_commit(owner, repo, commit_sha, options)
149
+ auth = nil
150
+ body = nil
151
+ headers = { accept: 'application/vnd.github.v3+json' }
152
+ params = { per_page: options[:per_page], page: options[:page] }
153
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits/#{commit_sha}/pulls"
154
+
155
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
156
+
157
+ if http_call.successful?
158
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
159
+ else
160
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
161
+ end
162
+ end
163
+
164
+ # get a commit
165
+ #
166
+ # @param owner [String]
167
+ # @param repo [String]
168
+ # @param ref [String] ref parameter
169
+ #
170
+ # @return CommitsResult, CommitsErrorResult
171
+ def get_a_commit(owner, repo, ref, options)
172
+ auth = nil
173
+ body = nil
174
+ headers = { accept: 'application/vnd.github.v3+json' }
175
+ params = { page: options[:page], per_page: options[:per_page] }
176
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits/#{ref}"
177
+
178
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
179
+
180
+ if http_call.successful?
181
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
182
+ else
183
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
184
+ end
185
+ end
186
+
187
+ # compare two commits
188
+ #
189
+ # @param owner [String]
190
+ # @param repo [String]
191
+ # @param basehead [String] The base branch and head branch to compare. This parameter expects the format {base}...{head}.
192
+ #
193
+ # @return CommitsResult, CommitsErrorResult
194
+ def compare_two_commits(owner, repo, basehead, options)
195
+ auth = nil
196
+ body = nil
197
+ headers = { accept: 'application/vnd.github.v3+json' }
198
+ params = { page: options[:page], per_page: options[:per_page] }
199
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/compare/#{basehead}"
200
+
201
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
202
+
203
+ if http_call.successful?
204
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
205
+ else
206
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
207
+ end
208
+ end
209
+
210
+ # list commit comments for a repository
211
+ #
212
+ # @param owner [String]
213
+ # @param repo [String]
214
+ #
215
+ # @return CommitsResult, CommitsErrorResult
216
+ def list_commit_comments_for_a_repository(owner, repo, options)
217
+ auth = nil
218
+ body = nil
219
+ headers = { accept: 'application/vnd.github.v3+json' }
220
+ params = { per_page: options[:per_page], page: options[:page] }
221
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/comments"
222
+
223
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
224
+
225
+ if http_call.successful?
226
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
227
+ else
228
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
229
+ end
230
+ end
231
+
232
+ # get a commit comment
233
+ #
234
+ # @param owner [String]
235
+ # @param repo [String]
236
+ # @param comment_id [Integer] comment_id parameter
237
+ #
238
+ # @return CommitsResult, CommitsErrorResult
239
+ def get_a_commit_comment(owner, repo, comment_id, _options)
240
+ auth = nil
241
+ body = nil
242
+ headers = { accept: 'application/vnd.github.v3+json' }
243
+ params = nil
244
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/comments/#{comment_id}"
245
+
246
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
247
+
248
+ if http_call.successful?
249
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
250
+ else
251
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
252
+ end
253
+ end
254
+
255
+ # update a commit comment
256
+ #
257
+ # @param owner [String]
258
+ # @param repo [String]
259
+ # @param comment_id [Integer] comment_id parameter
260
+ # @param body [String] Required. The contents of the comment
261
+ #
262
+ # @return CommitsResult, CommitsErrorResult
263
+ def update_a_commit_comment(owner, repo, comment_id, body, _options)
264
+ auth = nil
265
+ body = { body: body }
266
+ headers = { accept: 'application/vnd.github.v3+json' }
267
+ params = nil
268
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/comments/#{comment_id}"
269
+
270
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :patch, params: params, uri: uri)
271
+
272
+ if http_call.successful?
273
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
274
+ else
275
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
276
+ end
277
+ end
278
+
279
+ # delete a commit comment
280
+ #
281
+ # @param owner [String]
282
+ # @param repo [String]
283
+ # @param comment_id [Integer] comment_id parameter
284
+ #
285
+ # @return CommitsResult, CommitsErrorResult
286
+ def delete_a_commit_comment(owner, repo, comment_id, _options)
287
+ auth = nil
288
+ body = nil
289
+ headers = { accept: 'application/vnd.github.v3+json' }
290
+ params = nil
291
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/comments/#{comment_id}"
292
+
293
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :delete, params: params, uri: uri)
294
+
295
+ if http_call.successful?
296
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
297
+ else
298
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
299
+ end
300
+ end
301
+
302
+ # list commit comments
303
+ #
304
+ # @param owner [String]
305
+ # @param repo [String]
306
+ # @param commit_sha [String] commit_sha parameter
307
+ #
308
+ # @return CommitsResult, CommitsErrorResult
309
+ def list_commit_comments(owner, repo, commit_sha, options)
310
+ auth = nil
311
+ body = nil
312
+ headers = { accept: 'application/vnd.github.v3+json' }
313
+ params = { per_page: options[:per_page], page: options[:page] }
314
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits/#{commit_sha}/comments"
315
+
316
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
317
+
318
+ if http_call.successful?
319
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
320
+ else
321
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
322
+ end
323
+ end
324
+
325
+ # create a commit comment
326
+ #
327
+ # @param owner [String]
328
+ # @param repo [String]
329
+ # @param commit_sha [String] commit_sha parameter
330
+ # @param body [String] Required. The contents of the comment.
331
+ # @param path [String] Relative path of the file to comment on.
332
+ # @param position [Integer] Line index in the diff to comment on.
333
+ # @param line [Integer] Deprecated. Use position parameter instead. Line number in the file to comment on.
334
+ #
335
+ # @return CommitsResult, CommitsErrorResult
336
+ def create_a_commit_comment(owner, repo, commit_sha, body, path, position, line, _options)
337
+ auth = nil
338
+ body = { body: body, path: path, position: position, line: line }
339
+ headers = { accept: 'application/vnd.github.v3+json' }
340
+ params = nil
341
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits/#{commit_sha}/comments"
342
+
343
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
344
+
345
+ if http_call.successful?
346
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
347
+ else
348
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
349
+ end
350
+ end
351
+
352
+ # get the combined status for a specific reference
353
+ #
354
+ # @param owner [String]
355
+ # @param repo [String]
356
+ # @param ref [String] ref parameter
357
+ #
358
+ # @return CommitsResult, CommitsErrorResult
359
+ def get_the_combined_status_for_a_specific_reference(owner, repo, ref, options)
360
+ auth = nil
361
+ body = nil
362
+ headers = { accept: 'application/vnd.github.v3+json' }
363
+ params = { per_page: options[:per_page], page: options[:page] }
364
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits/#{ref}/status"
365
+
366
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
367
+
368
+ if http_call.successful?
369
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
370
+ else
371
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
372
+ end
373
+ end
374
+
375
+ # list commit statuses for a reference
376
+ #
377
+ # @param owner [String]
378
+ # @param repo [String]
379
+ # @param ref [String] ref parameter
380
+ #
381
+ # @return CommitsResult, CommitsErrorResult
382
+ def list_commit_statuses_for_a_reference(owner, repo, ref, options)
383
+ auth = nil
384
+ body = nil
385
+ headers = { accept: 'application/vnd.github.v3+json' }
386
+ params = { per_page: options[:per_page], page: options[:page] }
387
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/commits/#{ref}/statuses"
388
+
389
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :get, params: params, uri: uri)
390
+
391
+ if http_call.successful?
392
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
393
+ else
394
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
395
+ end
396
+ end
397
+
398
+ # create a commit status
399
+ #
400
+ # @param owner [String]
401
+ # @param repo [String]
402
+ # @param sha [String]
403
+ # @param state [String] Required. The state of the status. Can be one of error, failure, pending, or success.
404
+ # @param target_url [String] The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status.
405
+ # For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: http://ci.example.com/user/repo/build/sha
406
+ # @param description [String] A short description of the status.
407
+ # @param context [String] A string label to differentiate this status from the status of other systems. This field is case-insensitive.Default: default
408
+ #
409
+ # @return CommitsResult, CommitsErrorResult
410
+ def create_a_commit_status(owner, repo, sha, state, target_url, description, context, _options)
411
+ auth = nil
412
+ body = { state: state, target_url: target_url, description: description, context: context }
413
+ headers = { accept: 'application/vnd.github.v3+json' }
414
+ params = nil
415
+ uri = "#{Gitabu::BASE_URL}/repos/#{owner}/#{repo}/statuses/#{sha}"
416
+
417
+ http_call = Gitabu::HttpClient.call(auth: auth, body: body, headers: headers, method: :post, params: params, uri: uri)
418
+
419
+ if http_call.successful?
420
+ CommitsResult.new(result: http_call, message: "Successful call to endpoint. #{http_call.result.message}")
421
+ else
422
+ CommitsErrorResult.new(result: http_call, message: "Failure while calling endpoint. #{http_call.result.message}")
423
+ end
424
+ end
425
+ end
426
+ end
427
+ end
428
+ end