octodoggy 4.6.2
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.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/CONTRIBUTING.md +22 -0
- data/LICENSE.md +20 -0
- data/README.md +714 -0
- data/Rakefile +22 -0
- data/lib/ext/sawyer/relation.rb +10 -0
- data/lib/octokit.rb +59 -0
- data/lib/octokit/arguments.rb +14 -0
- data/lib/octokit/authentication.rb +82 -0
- data/lib/octokit/client.rb +238 -0
- data/lib/octokit/client/authorizations.rb +244 -0
- data/lib/octokit/client/commit_comments.rb +95 -0
- data/lib/octokit/client/commits.rb +239 -0
- data/lib/octokit/client/contents.rb +162 -0
- data/lib/octokit/client/deployments.rb +62 -0
- data/lib/octokit/client/downloads.rb +50 -0
- data/lib/octokit/client/emojis.rb +18 -0
- data/lib/octokit/client/events.rb +151 -0
- data/lib/octokit/client/feeds.rb +33 -0
- data/lib/octokit/client/gists.rb +233 -0
- data/lib/octokit/client/gitignore.rb +43 -0
- data/lib/octokit/client/hooks.rb +297 -0
- data/lib/octokit/client/integrations.rb +77 -0
- data/lib/octokit/client/issues.rb +321 -0
- data/lib/octokit/client/labels.rb +156 -0
- data/lib/octokit/client/legacy_search.rb +42 -0
- data/lib/octokit/client/licenses.rb +45 -0
- data/lib/octokit/client/markdown.rb +27 -0
- data/lib/octokit/client/meta.rb +21 -0
- data/lib/octokit/client/milestones.rb +87 -0
- data/lib/octokit/client/notifications.rb +171 -0
- data/lib/octokit/client/objects.rb +141 -0
- data/lib/octokit/client/organizations.rb +768 -0
- data/lib/octokit/client/pages.rb +63 -0
- data/lib/octokit/client/projects.rb +314 -0
- data/lib/octokit/client/pub_sub_hubbub.rb +111 -0
- data/lib/octokit/client/pull_requests.rb +301 -0
- data/lib/octokit/client/rate_limit.rb +54 -0
- data/lib/octokit/client/reactions.rb +158 -0
- data/lib/octokit/client/refs.rb +118 -0
- data/lib/octokit/client/releases.rb +163 -0
- data/lib/octokit/client/repositories.rb +654 -0
- data/lib/octokit/client/repository_invitations.rb +103 -0
- data/lib/octokit/client/reviews.rb +174 -0
- data/lib/octokit/client/say.rb +19 -0
- data/lib/octokit/client/search.rb +76 -0
- data/lib/octokit/client/service_status.rb +38 -0
- data/lib/octokit/client/source_import.rb +161 -0
- data/lib/octokit/client/stats.rb +105 -0
- data/lib/octokit/client/statuses.rb +47 -0
- data/lib/octokit/client/traffic.rb +69 -0
- data/lib/octokit/client/users.rb +354 -0
- data/lib/octokit/configurable.rb +147 -0
- data/lib/octokit/connection.rb +199 -0
- data/lib/octokit/default.rb +166 -0
- data/lib/octokit/enterprise_admin_client.rb +40 -0
- data/lib/octokit/enterprise_admin_client/admin_stats.rb +120 -0
- data/lib/octokit/enterprise_admin_client/license.rb +18 -0
- data/lib/octokit/enterprise_admin_client/orgs.rb +27 -0
- data/lib/octokit/enterprise_admin_client/search_indexing.rb +83 -0
- data/lib/octokit/enterprise_admin_client/users.rb +128 -0
- data/lib/octokit/enterprise_management_console_client.rb +50 -0
- data/lib/octokit/enterprise_management_console_client/management_console.rb +176 -0
- data/lib/octokit/error.rb +286 -0
- data/lib/octokit/gist.rb +36 -0
- data/lib/octokit/middleware/follow_redirects.rb +131 -0
- data/lib/octokit/organization.rb +17 -0
- data/lib/octokit/preview.rb +38 -0
- data/lib/octokit/rate_limit.rb +33 -0
- data/lib/octokit/repo_arguments.rb +19 -0
- data/lib/octokit/repository.rb +93 -0
- data/lib/octokit/response/feed_parser.rb +21 -0
- data/lib/octokit/response/raise_error.rb +21 -0
- data/lib/octokit/user.rb +19 -0
- data/lib/octokit/version.rb +17 -0
- data/lib/octokit/warnable.rb +17 -0
- data/octokit.gemspec +22 -0
- metadata +160 -0
@@ -0,0 +1,301 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for the Pull Requests API
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/pulls/
|
7
|
+
module PullRequests
|
8
|
+
|
9
|
+
# List pull requests for a repository
|
10
|
+
#
|
11
|
+
# @overload pull_requests(repo, options)
|
12
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
13
|
+
# @param options [Hash] Method options
|
14
|
+
# @option options [String] :state `open` or `closed`.
|
15
|
+
# @return [Array<Sawyer::Resource>] Array of pulls
|
16
|
+
# @see https://developer.github.com/v3/pulls/#list-pull-requests
|
17
|
+
# @example
|
18
|
+
# Octokit.pull_requests('rails/rails', :state => 'closed')
|
19
|
+
def pull_requests(repo, options = {})
|
20
|
+
paginate "#{Repository.path repo}/pulls", options
|
21
|
+
end
|
22
|
+
alias :pulls :pull_requests
|
23
|
+
|
24
|
+
# Get a pull request
|
25
|
+
#
|
26
|
+
# @see https://developer.github.com/v3/pulls/#get-a-single-pull-request
|
27
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
28
|
+
# @param number [Integer] Number of the pull request to fetch
|
29
|
+
# @return [Sawyer::Resource] Pull request info
|
30
|
+
def pull_request(repo, number, options = {})
|
31
|
+
get "#{Repository.path repo}/pulls/#{number}", options
|
32
|
+
end
|
33
|
+
alias :pull :pull_request
|
34
|
+
|
35
|
+
# Create a pull request
|
36
|
+
#
|
37
|
+
# @see https://developer.github.com/v3/pulls/#create-a-pull-request
|
38
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
39
|
+
# @param base [String] The branch (or git ref) you want your changes
|
40
|
+
# pulled into. This should be an existing branch on the current
|
41
|
+
# repository. You cannot submit a pull request to one repo that requests
|
42
|
+
# a merge to a base of another repo.
|
43
|
+
# @param head [String] The branch (or git ref) where your changes are implemented.
|
44
|
+
# @param title [String] Title for the pull request
|
45
|
+
# @param body [String] The body for the pull request (optional). Supports GFM.
|
46
|
+
# @return [Sawyer::Resource] The newly created pull request
|
47
|
+
# @example
|
48
|
+
# @client.create_pull_request("octokit/octokit.rb", "master", "feature-branch",
|
49
|
+
# "Pull Request title", "Pull Request body")
|
50
|
+
def create_pull_request(repo, base, head, title, body = nil, options = {})
|
51
|
+
pull = {
|
52
|
+
:base => base,
|
53
|
+
:head => head,
|
54
|
+
:title => title,
|
55
|
+
}
|
56
|
+
pull[:body] = body unless body.nil?
|
57
|
+
post "#{Repository.path repo}/pulls", options.merge(pull)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Create a pull request from existing issue
|
61
|
+
#
|
62
|
+
# @see https://developer.github.com/v3/pulls/#alternative-input
|
63
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
64
|
+
# @param base [String] The branch (or git ref) you want your changes
|
65
|
+
# pulled into. This should be an existing branch on the current
|
66
|
+
# repository. You cannot submit a pull request to one repo that requests
|
67
|
+
# a merge to a base of another repo.
|
68
|
+
# @param head [String] The branch (or git ref) where your changes are implemented.
|
69
|
+
# @param issue [Integer] Number of Issue on which to base this pull request
|
70
|
+
# @return [Sawyer::Resource] The newly created pull request
|
71
|
+
def create_pull_request_for_issue(repo, base, head, issue, options = {})
|
72
|
+
pull = {
|
73
|
+
:base => base,
|
74
|
+
:head => head,
|
75
|
+
:issue => issue
|
76
|
+
}
|
77
|
+
post "#{Repository.path repo}/pulls", options.merge(pull)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Update a pull request
|
81
|
+
# @overload update_pull_request(repo, number, title=nil, body=nil, state=nil, options = {})
|
82
|
+
# @deprecated
|
83
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
|
84
|
+
# @param number [Integer] Number of pull request to update.
|
85
|
+
# @param title [String] Title for the pull request.
|
86
|
+
# @param body [String] Body content for pull request. Supports GFM.
|
87
|
+
# @param state [String] State of the pull request. `open` or `closed`.
|
88
|
+
# @overload update_pull_request(repo, number, options = {})
|
89
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
|
90
|
+
# @param number [Integer] Number of pull request to update.
|
91
|
+
# @option options [String] :title Title for the pull request.
|
92
|
+
# @option options [String] :body Body for the pull request.
|
93
|
+
# @option options [String] :state State for the pull request.
|
94
|
+
# @return [Sawyer::Resource] Hash representing updated pull request.
|
95
|
+
# @see https://developer.github.com/v3/pulls/#update-a-pull-request
|
96
|
+
# @example
|
97
|
+
# @client.update_pull_request('octokit/octokit.rb', 67, 'new title', 'updated body', 'closed')
|
98
|
+
# @example Passing nil for optional attributes to update specific attributes.
|
99
|
+
# @client.update_pull_request('octokit/octokit.rb', 67, nil, nil, 'open')
|
100
|
+
# @example Empty body by passing empty string
|
101
|
+
# @client.update_pull_request('octokit/octokit.rb', 67, nil, '')
|
102
|
+
def update_pull_request(*args)
|
103
|
+
arguments = Octokit::Arguments.new(args)
|
104
|
+
repo = arguments.shift
|
105
|
+
number = arguments.shift
|
106
|
+
patch "#{Repository.path repo}/pulls/#{number}", arguments.options
|
107
|
+
end
|
108
|
+
|
109
|
+
# Close a pull request
|
110
|
+
#
|
111
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository.
|
112
|
+
# @param number [Integer] Number of pull request to update.
|
113
|
+
# @return [Sawyer::Resource] Hash representing updated pull request.
|
114
|
+
# @see https://developer.github.com/v3/pulls/#update-a-pull-request
|
115
|
+
# @example
|
116
|
+
# @client.close_pull_request('octokit/octokit.rb', 67)
|
117
|
+
def close_pull_request(repo, number, options = {})
|
118
|
+
options.merge! :state => 'closed'
|
119
|
+
update_pull_request(repo, number, options)
|
120
|
+
end
|
121
|
+
|
122
|
+
# List commits on a pull request
|
123
|
+
#
|
124
|
+
# @see https://developer.github.com/v3/pulls/#list-commits-on-a-pull-request
|
125
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
126
|
+
# @param number [Integer] Number of pull request
|
127
|
+
# @return [Array<Sawyer::Resource>] List of commits
|
128
|
+
def pull_request_commits(repo, number, options = {})
|
129
|
+
paginate "#{Repository.path repo}/pulls/#{number}/commits", options
|
130
|
+
end
|
131
|
+
alias :pull_commits :pull_request_commits
|
132
|
+
|
133
|
+
# List pull request comments for a repository
|
134
|
+
#
|
135
|
+
# By default, Review Comments are ordered by ascending ID.
|
136
|
+
#
|
137
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
138
|
+
# @param options [Hash] Optional parameters
|
139
|
+
# @option options [String] :sort created or updated
|
140
|
+
# @option options [String] :direction asc or desc. Ignored without sort
|
141
|
+
# parameter.
|
142
|
+
# @option options [String] :since Timestamp in ISO 8601
|
143
|
+
# format: YYYY-MM-DDTHH:MM:SSZ
|
144
|
+
#
|
145
|
+
# @return [Array] List of pull request review comments.
|
146
|
+
#
|
147
|
+
# @see https://developer.github.com/v3/pulls/comments/#list-comments-in-a-repository
|
148
|
+
#
|
149
|
+
# @example Get the pull request review comments in the octokit repository
|
150
|
+
# @client.issues_comments("octokit/octokit.rb")
|
151
|
+
#
|
152
|
+
# @example Get review comments, sort by updated asc since a time
|
153
|
+
# @client.pull_requests_comments("octokit/octokit.rb", {
|
154
|
+
# :sort => 'asc',
|
155
|
+
# :direction => 'down',
|
156
|
+
# :since => '2010-05-04T23:45:02Z'
|
157
|
+
# })
|
158
|
+
def pull_requests_comments(repo, options = {})
|
159
|
+
paginate("#{Repository.path repo}/pulls/comments", options)
|
160
|
+
end
|
161
|
+
alias :pulls_comments :pull_requests_comments
|
162
|
+
alias :reviews_comments :pull_requests_comments
|
163
|
+
|
164
|
+
# List comments on a pull request
|
165
|
+
#
|
166
|
+
# @see https://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request
|
167
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
168
|
+
# @param number [Integer] Number of pull request
|
169
|
+
# @return [Array<Sawyer::Resource>] List of comments
|
170
|
+
def pull_request_comments(repo, number, options = {})
|
171
|
+
# return the comments for a pull request
|
172
|
+
paginate("#{Repository.path repo}/pulls/#{number}/comments", options)
|
173
|
+
end
|
174
|
+
alias :pull_comments :pull_request_comments
|
175
|
+
alias :review_comments :pull_request_comments
|
176
|
+
|
177
|
+
# Get a pull request comment
|
178
|
+
#
|
179
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
180
|
+
# @param comment_id [Integer] Id of comment to get
|
181
|
+
# @return [Sawyer::Resource] Hash representing the comment
|
182
|
+
# @see https://developer.github.com/v3/pulls/comments/#get-a-single-comment
|
183
|
+
# @example
|
184
|
+
# @client.pull_request_comment("pengwynn/octkit", 1903950)
|
185
|
+
def pull_request_comment(repo, comment_id, options = {})
|
186
|
+
get "#{Repository.path repo}/pulls/comments/#{comment_id}", options
|
187
|
+
end
|
188
|
+
alias :pull_comment :pull_request_comment
|
189
|
+
alias :review_comment :pull_request_comment
|
190
|
+
|
191
|
+
# Create a pull request comment
|
192
|
+
#
|
193
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
194
|
+
# @param pull_id [Integer] Pull request id
|
195
|
+
# @param body [String] Comment content
|
196
|
+
# @param commit_id [String] Sha of the commit to comment on.
|
197
|
+
# @param path [String] Relative path of the file to comment on.
|
198
|
+
# @param position [Integer] Line index in the diff to comment on.
|
199
|
+
# @return [Sawyer::Resource] Hash representing the new comment
|
200
|
+
# @see https://developer.github.com/v3/pulls/comments/#create-a-comment
|
201
|
+
# @example
|
202
|
+
# @client.create_pull_request_comment("octokit/octokit.rb", 163, ":shipit:",
|
203
|
+
# "2d3201e4440903d8b04a5487842053ca4883e5f0", "lib/octokit/request.rb", 47)
|
204
|
+
def create_pull_request_comment(repo, pull_id, body, commit_id, path, position, options = {})
|
205
|
+
options.merge!({
|
206
|
+
:body => body,
|
207
|
+
:commit_id => commit_id,
|
208
|
+
:path => path,
|
209
|
+
:position => position
|
210
|
+
})
|
211
|
+
post "#{Repository.path repo}/pulls/#{pull_id}/comments", options
|
212
|
+
end
|
213
|
+
alias :create_pull_comment :create_pull_request_comment
|
214
|
+
alias :create_view_comment :create_pull_request_comment
|
215
|
+
|
216
|
+
# Create reply to a pull request comment
|
217
|
+
#
|
218
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
219
|
+
# @param pull_id [Integer] Pull request id
|
220
|
+
# @param body [String] Comment contents
|
221
|
+
# @param comment_id [Integer] Comment id to reply to
|
222
|
+
# @return [Sawyer::Resource] Hash representing new comment
|
223
|
+
# @see https://developer.github.com/v3/pulls/comments/#create-a-comment
|
224
|
+
# @example
|
225
|
+
# @client.create_pull_request_comment_reply("octokit/octokit.rb", 163, "done.", 1903950)
|
226
|
+
def create_pull_request_comment_reply(repo, pull_id, body, comment_id, options = {})
|
227
|
+
options.merge!({
|
228
|
+
:body => body,
|
229
|
+
:in_reply_to => comment_id
|
230
|
+
})
|
231
|
+
post "#{Repository.path repo}/pulls/#{pull_id}/comments", options
|
232
|
+
end
|
233
|
+
alias :create_pull_reply :create_pull_request_comment_reply
|
234
|
+
alias :create_review_reply :create_pull_request_comment_reply
|
235
|
+
|
236
|
+
# Update pull request comment
|
237
|
+
#
|
238
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
239
|
+
# @param comment_id [Integer] Id of the comment to update
|
240
|
+
# @param body [String] Updated comment content
|
241
|
+
# @return [Sawyer::Resource] Hash representing the updated comment
|
242
|
+
# @see https://developer.github.com/v3/pulls/comments/#edit-a-comment
|
243
|
+
# @example
|
244
|
+
# @client.update_pull_request_comment("octokit/octokit.rb", 1903950, ":shipit:")
|
245
|
+
def update_pull_request_comment(repo, comment_id, body, options = {})
|
246
|
+
options.merge! :body => body
|
247
|
+
patch("#{Repository.path repo}/pulls/comments/#{comment_id}", options)
|
248
|
+
end
|
249
|
+
alias :update_pull_comment :update_pull_request_comment
|
250
|
+
alias :update_review_comment :update_pull_request_comment
|
251
|
+
|
252
|
+
# Delete pull request comment
|
253
|
+
#
|
254
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
255
|
+
# @param comment_id [Integer] Id of the comment to delete
|
256
|
+
# @return [Boolean] True if deleted, false otherwise
|
257
|
+
# @see https://developer.github.com/v3/pulls/comments/#delete-a-comment
|
258
|
+
# @example
|
259
|
+
# @client.delete_pull_request_comment("octokit/octokit.rb", 1902707)
|
260
|
+
def delete_pull_request_comment(repo, comment_id, options = {})
|
261
|
+
boolean_from_response(:delete, "#{Repository.path repo}/pulls/comments/#{comment_id}", options)
|
262
|
+
end
|
263
|
+
alias :delete_pull_comment :delete_pull_request_comment
|
264
|
+
alias :delete_review_comment :delete_pull_request_comment
|
265
|
+
|
266
|
+
# List files on a pull request
|
267
|
+
#
|
268
|
+
# @see https://developer.github.com/v3/pulls/#list-pull-requests-files
|
269
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
270
|
+
# @param number [Integer] Number of pull request
|
271
|
+
# @return [Array<Sawyer::Resource>] List of files
|
272
|
+
def pull_request_files(repo, number, options = {})
|
273
|
+
paginate "#{Repository.path repo}/pulls/#{number}/files", options
|
274
|
+
end
|
275
|
+
alias :pull_files :pull_request_files
|
276
|
+
|
277
|
+
# Merge a pull request
|
278
|
+
#
|
279
|
+
# @see https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button
|
280
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
281
|
+
# @param number [Integer] Number of pull request
|
282
|
+
# @param commit_message [String] Optional commit message for the merge commit
|
283
|
+
# @return [Array<Sawyer::Resource>] Merge commit info if successful
|
284
|
+
def merge_pull_request(repo, number, commit_message='', options = {})
|
285
|
+
put "#{Repository.path repo}/pulls/#{number}/merge", options.merge({:commit_message => commit_message})
|
286
|
+
end
|
287
|
+
|
288
|
+
# Check pull request merge status
|
289
|
+
#
|
290
|
+
# @see https://developer.github.com/v3/pulls/#get-if-a-pull-request-has-been-merged
|
291
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
292
|
+
# @param number [Integer] Number of pull request
|
293
|
+
# @return [Boolean] True if the pull request has been merged
|
294
|
+
def pull_merged?(repo, number, options = {})
|
295
|
+
boolean_from_response :get, "#{Repository.path repo}/pulls/#{number}/merge", options
|
296
|
+
end
|
297
|
+
alias :pull_request_merged? :pull_merged?
|
298
|
+
|
299
|
+
end
|
300
|
+
end
|
301
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for API rate limiting info
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/#rate-limiting
|
7
|
+
module RateLimit
|
8
|
+
|
9
|
+
# Get rate limit info from last response if available
|
10
|
+
# or make a new request to fetch rate limit
|
11
|
+
#
|
12
|
+
# @see https://developer.github.com/v3/rate_limit/#rate-limit
|
13
|
+
# @return [Octokit::RateLimit] Rate limit info
|
14
|
+
def rate_limit(options = {})
|
15
|
+
return rate_limit! if last_response.nil?
|
16
|
+
|
17
|
+
Octokit::RateLimit.from_response(last_response)
|
18
|
+
end
|
19
|
+
alias ratelimit rate_limit
|
20
|
+
|
21
|
+
# Get number of rate limted requests remaining
|
22
|
+
#
|
23
|
+
# @see https://developer.github.com/v3/rate_limit/#rate-limit
|
24
|
+
# @return [Integer] Number of requests remaining in this period
|
25
|
+
def rate_limit_remaining(options = {})
|
26
|
+
octokit_warn "Deprecated: Please use .rate_limit.remaining"
|
27
|
+
rate_limit.remaining
|
28
|
+
end
|
29
|
+
alias ratelimit_remaining rate_limit_remaining
|
30
|
+
|
31
|
+
# Refresh rate limit info by making a new request
|
32
|
+
#
|
33
|
+
# @see https://developer.github.com/v3/rate_limit/#rate-limit
|
34
|
+
# @return [Octokit::RateLimit] Rate limit info
|
35
|
+
def rate_limit!(options = {})
|
36
|
+
get "rate_limit"
|
37
|
+
Octokit::RateLimit.from_response(last_response)
|
38
|
+
end
|
39
|
+
alias ratelimit! rate_limit!
|
40
|
+
|
41
|
+
# Refresh rate limit info and get number of rate limted requests remaining
|
42
|
+
#
|
43
|
+
# @see https://developer.github.com/v3/rate_limit/#rate-limit
|
44
|
+
# @return [Integer] Number of requests remaining in this period
|
45
|
+
def rate_limit_remaining!(options = {})
|
46
|
+
octokit_warn "Deprecated: Please use .rate_limit!.remaining"
|
47
|
+
rate_limit!.remaining
|
48
|
+
end
|
49
|
+
alias ratelimit_remaining! rate_limit_remaining!
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
@@ -0,0 +1,158 @@
|
|
1
|
+
module Octokit
|
2
|
+
class Client
|
3
|
+
|
4
|
+
# Methods for the Reacions API
|
5
|
+
#
|
6
|
+
# @see https://developer.github.com/v3/reactions/
|
7
|
+
module Reactions
|
8
|
+
|
9
|
+
# List reactions for a commit comment
|
10
|
+
#
|
11
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
12
|
+
# @param id [Integer] The id of the commit comment
|
13
|
+
# @see https://developer.github.com/v3/reactions/#list-reactions-for-a-commit-comment
|
14
|
+
#
|
15
|
+
# @example
|
16
|
+
# @client.commit_comment_reactions("octokit/octokit.rb", 1)
|
17
|
+
#
|
18
|
+
# @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
|
19
|
+
def commit_comment_reactions(repo, id, options = {})
|
20
|
+
options = ensure_api_media_type(:reactions, options)
|
21
|
+
get "#{Repository.path repo}/comments/#{id}/reactions", options
|
22
|
+
end
|
23
|
+
|
24
|
+
# Create a reaction for a commit comment
|
25
|
+
#
|
26
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
27
|
+
# @param id [Integer] The id of the commit comment
|
28
|
+
# @param reaction [String] The Reaction
|
29
|
+
# @see https://developer.github.com/v3/reactions/#create-reaction-for-a-commit-comment
|
30
|
+
# @see https://developer.github.com/v3/reactions/#reaction-types
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# @client.create_commit_comment_reactions("octokit/octokit.rb", 1)
|
34
|
+
#
|
35
|
+
# @return [<Sawyer::Resource>] Hash representing the reaction
|
36
|
+
def create_commit_comment_reaction(repo, id, reaction, options = {})
|
37
|
+
options = ensure_api_media_type(:reactions, options.merge(:content => reaction))
|
38
|
+
post "#{Repository.path repo}/comments/#{id}/reactions", options
|
39
|
+
end
|
40
|
+
|
41
|
+
# List reactions for an issue
|
42
|
+
#
|
43
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
44
|
+
# @param number [Integer] The Issue number
|
45
|
+
# @see https://developer.github.com/v3/reactions/#list-reactions-for-an-issue
|
46
|
+
#
|
47
|
+
# @example
|
48
|
+
# @client.issue_reactions("octokit/octokit.rb", 1)
|
49
|
+
#
|
50
|
+
# @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
|
51
|
+
def issue_reactions(repo, number, options = {})
|
52
|
+
options = ensure_api_media_type(:reactions, options)
|
53
|
+
get "#{Repository.path repo}/issues/#{number}/reactions", options
|
54
|
+
end
|
55
|
+
|
56
|
+
# Create reaction for an issue
|
57
|
+
#
|
58
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
59
|
+
# @param number [Integer] The Issue number
|
60
|
+
# @param reaction [String] The Reaction
|
61
|
+
#
|
62
|
+
# @see https://developer.github.com/v3/reactions/#create-reaction-for-an-issue
|
63
|
+
# @see https://developer.github.com/v3/reactions/#reaction-types
|
64
|
+
#
|
65
|
+
# @example
|
66
|
+
# @client.create_issue_reaction("octokit/octokit.rb", 1)
|
67
|
+
#
|
68
|
+
# @return [<Sawyer::Resource>] Hash representing the reaction.
|
69
|
+
def create_issue_reaction(repo, number, reaction, options = {})
|
70
|
+
options = ensure_api_media_type(:reactions, options.merge(:content => reaction))
|
71
|
+
post "#{Repository.path repo}/issues/#{number}/reactions", options
|
72
|
+
end
|
73
|
+
|
74
|
+
# List reactions for an issue comment
|
75
|
+
#
|
76
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
77
|
+
# @param id [Integer] The Issue comment id
|
78
|
+
#
|
79
|
+
# @see https://developer.github.com/v3/reactions/#list-reactions-for-an-issue-comment
|
80
|
+
#
|
81
|
+
# @example
|
82
|
+
# @client.issue_comment_reactions("octokit/octokit.rb", 1)
|
83
|
+
#
|
84
|
+
# @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
|
85
|
+
def issue_comment_reactions(repo, id, options = {})
|
86
|
+
options = ensure_api_media_type(:reactions, options)
|
87
|
+
get "#{Repository.path repo}/issues/comments/#{id}/reactions", options
|
88
|
+
end
|
89
|
+
|
90
|
+
# Create reaction for an issue comment
|
91
|
+
#
|
92
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
93
|
+
# @param id [Integer] The Issue comment id
|
94
|
+
# @param reaction [String] The Reaction
|
95
|
+
#
|
96
|
+
# @see https://developer.github.com/v3/reactions/#create-reaction-for-an-issue-comment
|
97
|
+
# @see https://developer.github.com/v3/reactions/#reaction-types
|
98
|
+
#
|
99
|
+
# @example
|
100
|
+
# @client.create_issue_comment_reaction("octokit/octokit.rb", 1)
|
101
|
+
#
|
102
|
+
# @return [<Sawyer::Resource>] Hashes representing the reaction.
|
103
|
+
def create_issue_comment_reaction(repo, id, reaction, options = {})
|
104
|
+
options = ensure_api_media_type(:reactions, options.merge(:content => reaction))
|
105
|
+
post "#{Repository.path repo}/issues/comments/#{id}/reactions", options
|
106
|
+
end
|
107
|
+
|
108
|
+
# List reactions for a pull request review comment
|
109
|
+
#
|
110
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
111
|
+
# @param id [Integer] The Issue comment id
|
112
|
+
#
|
113
|
+
# @see https://developer.github.com/v3/reactions/#list-reactions-for-a-pull-request-review-comment
|
114
|
+
#
|
115
|
+
# @example
|
116
|
+
# @client.pull_request_review_comment_reactions("octokit/octokit.rb", 1)
|
117
|
+
#
|
118
|
+
# @return [Array<Sawyer::Resource>] Array of Hashes representing the reactions.
|
119
|
+
def pull_request_review_comment_reactions(repo, id, options = {})
|
120
|
+
options = ensure_api_media_type(:reactions, options)
|
121
|
+
get "#{Repository.path repo}/pulls/comments/#{id}/reactions", options
|
122
|
+
end
|
123
|
+
|
124
|
+
# Create reaction for a pull request review comment
|
125
|
+
#
|
126
|
+
# @param repo [Integer, String, Hash, Repository] A GitHub repository
|
127
|
+
# @param id [Integer] The Issue comment id
|
128
|
+
# @param reaction [String] The Reaction
|
129
|
+
#
|
130
|
+
# @see https://developer.github.com/v3/reactions/#create-reaction-for-a-pull-request-review-comment
|
131
|
+
# @see https://developer.github.com/v3/reactions/#reaction-types
|
132
|
+
#
|
133
|
+
# @example
|
134
|
+
# @client.create_pull_request_reiew_comment_reaction("octokit/octokit.rb", 1)
|
135
|
+
#
|
136
|
+
# @return [<Sawyer::Resource>] Hash representing the reaction.
|
137
|
+
def create_pull_request_review_comment_reaction(repo, id, reaction, options = {})
|
138
|
+
options = ensure_api_media_type(:reactions, options.merge(:content => reaction))
|
139
|
+
post "#{Repository.path repo}/pulls/comments/#{id}/reactions", options
|
140
|
+
end
|
141
|
+
|
142
|
+
# Delete a reaction
|
143
|
+
#
|
144
|
+
# @param id [Integer] Reaction id
|
145
|
+
#
|
146
|
+
# @see https://developer.github.com/v3/reactions/#delete-a-reaction
|
147
|
+
#
|
148
|
+
# @example
|
149
|
+
# @client.delete_reaction(1)
|
150
|
+
#
|
151
|
+
# @return [Boolean] Return true if reaction was deleted, false otherwise.
|
152
|
+
def delete_reaction(id, options = {})
|
153
|
+
options = ensure_api_media_type(:reactions, options)
|
154
|
+
boolean_from_response :delete, "reactions/#{id}", options
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|