github_api 0.4.4 → 0.4.5
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.
- data/features/error_codes.feature +1 -1
- data/lib/github_api/error.rb +25 -32
- data/lib/github_api/error/bad_request.rb +12 -0
- data/lib/github_api/error/forbidden.rb +12 -0
- data/lib/github_api/error/internal_server_error.rb +12 -0
- data/lib/github_api/error/not_found.rb +12 -0
- data/lib/github_api/error/service_error.rb +19 -0
- data/lib/github_api/error/service_unavailable.rb +12 -0
- data/lib/github_api/error/unauthorized.rb +12 -0
- data/lib/github_api/error/unprocessable_entity.rb +12 -0
- data/lib/github_api/gists.rb +1 -1
- data/lib/github_api/orgs/members.rb +2 -2
- data/lib/github_api/orgs/teams.rb +2 -2
- data/lib/github_api/pull_requests.rb +14 -7
- data/lib/github_api/pull_requests/comments.rb +19 -14
- data/lib/github_api/repos/collaborators.rb +1 -1
- data/lib/github_api/repos/watching.rb +1 -1
- data/lib/github_api/response/raise_error.rb +8 -13
- data/lib/github_api/users/followers.rb +1 -1
- data/lib/github_api/version.rb +1 -1
- data/spec/fixtures/pull_requests/comment.json +17 -0
- data/spec/fixtures/pull_requests/comments.json +19 -0
- data/spec/fixtures/pull_requests/commits.json +27 -0
- data/spec/fixtures/pull_requests/files.json +13 -0
- data/spec/fixtures/pull_requests/merge_failure.json +5 -0
- data/spec/fixtures/pull_requests/merge_success.json +5 -0
- data/spec/fixtures/pull_requests/pull_request.json +123 -0
- data/spec/fixtures/pull_requests/pull_requests.json +31 -0
- data/spec/github/authorizations_spec.rb +5 -5
- data/spec/github/events_spec.rb +8 -8
- data/spec/github/gists/comments_spec.rb +5 -5
- data/spec/github/gists_spec.rb +7 -7
- data/spec/github/git_data/blobs_spec.rb +2 -2
- data/spec/github/git_data/commits_spec.rb +2 -2
- data/spec/github/git_data/references_spec.rb +4 -4
- data/spec/github/git_data/tags_spec.rb +2 -2
- data/spec/github/git_data/trees_spec.rb +2 -2
- data/spec/github/git_data_spec.rb +0 -1
- data/spec/github/issues/comments_spec.rb +5 -5
- data/spec/github/issues/events_spec.rb +2 -2
- data/spec/github/issues/labels_spec.rb +10 -10
- data/spec/github/issues/milestones_spec.rb +5 -5
- data/spec/github/issues_spec.rb +5 -5
- data/spec/github/orgs/members_spec.rb +5 -5
- data/spec/github/orgs/teams_spec.rb +11 -11
- data/spec/github/orgs_spec.rb +3 -3
- data/spec/github/pull_requests/comments_spec.rb +265 -0
- data/spec/github/pull_requests_spec.rb +414 -0
- data/spec/github/repos/collaborators_spec.rb +3 -3
- data/spec/github/repos/commits_spec.rb +8 -8
- data/spec/github/repos/downloads_spec.rb +5 -5
- data/spec/github/repos/forks_spec.rb +2 -2
- data/spec/github/repos/hooks_spec.rb +6 -6
- data/spec/github/repos/keys_spec.rb +5 -5
- data/spec/github/repos/pub_sub_hubbub_spec.rb +2 -2
- data/spec/github/repos/watching_spec.rb +6 -6
- data/spec/github/repos_spec.rb +11 -11
- data/spec/github/users/emails_spec.rb +5 -0
- data/spec/github/users/followers_spec.rb +5 -0
- data/spec/github/users/keys_spec.rb +5 -0
- data/spec/github/users_spec.rb +2 -2
- metadata +23 -2
@@ -10,4 +10,4 @@ Feature: Handles HTTP error codes
|
|
10
10
|
And I pass the following request options:
|
11
11
|
| name |
|
12
12
|
| basic_auth |
|
13
|
-
Then request should fail with "Github::
|
13
|
+
Then request should fail with "Github::Error::Unauthorized" within a cassette named "errors/repos/create"
|
data/lib/github_api/error.rb
CHANGED
@@ -1,38 +1,31 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module Github
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
module Error
|
5
|
+
class GithubError < StandardError
|
6
|
+
attr_reader :response_message, :response_headers
|
7
|
+
|
8
|
+
def initialize(message)
|
9
|
+
super message
|
10
|
+
@response_message = message
|
11
|
+
end
|
12
|
+
|
13
|
+
# def inspect
|
14
|
+
# %(#<#{self.class}>)
|
15
|
+
# end
|
14
16
|
end
|
15
17
|
end # Error
|
16
|
-
|
17
|
-
# Raised when Github returns the HTTP status code 400
|
18
|
-
class BadRequest < Error; end
|
19
|
-
|
20
|
-
# Raised when Github returns the HTTP status code 401
|
21
|
-
class Unauthorised < Error; end
|
22
|
-
|
23
|
-
# Raised when Github returns the HTTP status code 403
|
24
|
-
class Forbidden < Error; end
|
25
|
-
|
26
|
-
# Raised when Github returns the HTTP status code 404
|
27
|
-
class ResourceNotFound < Error; end
|
28
|
-
|
29
|
-
# Raised when Github returns the HTTP status code 422
|
30
|
-
class UnprocessableEntity < Error; end
|
31
|
-
|
32
|
-
# Raised when Github returns the HTTP status code 500
|
33
|
-
class InternalServerError < Error; end
|
34
|
-
|
35
|
-
# Raised when Github returns the HTTP status code 503
|
36
|
-
class ServiceUnavailable < Error; end
|
37
|
-
|
38
18
|
end # Github
|
19
|
+
|
20
|
+
%w[
|
21
|
+
service_error
|
22
|
+
not_found
|
23
|
+
forbidden
|
24
|
+
bad_request
|
25
|
+
unauthorized
|
26
|
+
service_unavailable
|
27
|
+
internal_server_error
|
28
|
+
unprocessable_entity
|
29
|
+
].each do |error|
|
30
|
+
require "github_api/error/#{error}"
|
31
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Github #:nodoc
|
4
|
+
# Raised when Github returns the HTTP status code 404
|
5
|
+
module Error
|
6
|
+
class ServiceError < GithubError
|
7
|
+
attr_accessor :http_headers
|
8
|
+
|
9
|
+
def initialize(env)
|
10
|
+
super(generate_message(env))
|
11
|
+
@http_headers = env[:response_headers]
|
12
|
+
end
|
13
|
+
|
14
|
+
def generate_message(env)
|
15
|
+
"#{env[:method].to_s.upcase} #{env[:url].to_s}: #{env[:status]} #{env[:body]}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end # Error
|
19
|
+
end # Github
|
data/lib/github_api/gists.rb
CHANGED
@@ -37,7 +37,7 @@ module Github
|
|
37
37
|
_normalize_params_keys(params)
|
38
38
|
get("/orgs/#{org_name}/members/#{member_name}", params)
|
39
39
|
true
|
40
|
-
rescue Github::
|
40
|
+
rescue Github::Error::NotFound
|
41
41
|
false
|
42
42
|
end
|
43
43
|
alias :is_member? :member?
|
@@ -84,7 +84,7 @@ module Github
|
|
84
84
|
_normalize_params_keys(params)
|
85
85
|
get("/orgs/#{org_name}/public_members/#{member_name}", params)
|
86
86
|
true
|
87
|
-
rescue Github::
|
87
|
+
rescue Github::Error::NotFound
|
88
88
|
false
|
89
89
|
end
|
90
90
|
|
@@ -142,7 +142,7 @@ module Github
|
|
142
142
|
_normalize_params_keys(params)
|
143
143
|
get("/teams/#{team_name}/members/#{member_name}", params)
|
144
144
|
true
|
145
|
-
rescue Github::
|
145
|
+
rescue Github::Error::NotFound
|
146
146
|
false
|
147
147
|
end
|
148
148
|
|
@@ -204,7 +204,7 @@ module Github
|
|
204
204
|
_normalize_params_keys(params)
|
205
205
|
get("/teams/#{team_name}/repos/#{user_name}/#{repo_name}", params)
|
206
206
|
true
|
207
|
-
rescue Github::
|
207
|
+
rescue Github::Error::NotFound
|
208
208
|
false
|
209
209
|
end
|
210
210
|
alias :team_repository? :team_repo?
|
@@ -40,7 +40,7 @@ module Github
|
|
40
40
|
# @pull_reqs = Github::PullRequests.new
|
41
41
|
# @pull_reqs.pull_requests 'user-name', 'repo-name'
|
42
42
|
#
|
43
|
-
def pull_requests(user_name
|
43
|
+
def pull_requests(user_name, repo_name, params={})
|
44
44
|
_update_user_repo_params(user_name, repo_name)
|
45
45
|
_validate_user_repo_params(user, repo) unless (user? && repo?)
|
46
46
|
|
@@ -53,6 +53,8 @@ module Github
|
|
53
53
|
return response unless block_given?
|
54
54
|
response.each { |el| yield el }
|
55
55
|
end
|
56
|
+
alias :pulls :pull_requests
|
57
|
+
alias :requests :pull_requests
|
56
58
|
|
57
59
|
# Get a single pull request
|
58
60
|
#
|
@@ -73,6 +75,7 @@ module Github
|
|
73
75
|
|
74
76
|
get("/repos/#{user}/#{repo}/pulls/#{request_id}", params)
|
75
77
|
end
|
78
|
+
alias :get_pull_request :pull_request
|
76
79
|
|
77
80
|
# Create a pull request
|
78
81
|
#
|
@@ -103,7 +106,7 @@ module Github
|
|
103
106
|
# "head" => "octocat:new-feature",
|
104
107
|
# "base" => "master"
|
105
108
|
#
|
106
|
-
def create_request(user_name
|
109
|
+
def create_request(user_name, repo_name, params={})
|
107
110
|
_update_user_repo_params(user_name, repo_name)
|
108
111
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
109
112
|
|
@@ -113,6 +116,7 @@ module Github
|
|
113
116
|
|
114
117
|
post("/repos/#{user}/#{repo}/pulls", params)
|
115
118
|
end
|
119
|
+
alias :create_pull_request :create_request
|
116
120
|
|
117
121
|
# Update a pull request
|
118
122
|
#
|
@@ -140,14 +144,15 @@ module Github
|
|
140
144
|
|
141
145
|
patch("/repos/#{user}/#{repo}/pulls/#{request_id}", params)
|
142
146
|
end
|
147
|
+
alias :update_pull_request :update_request
|
143
148
|
|
144
149
|
# List commits on a pull request
|
145
150
|
#
|
146
151
|
# = Examples
|
147
152
|
# @github = Github.new
|
148
|
-
# @github.pull_requests.
|
153
|
+
# @github.pull_requests.commits 'user-name', 'repo-name', 'request-id'
|
149
154
|
#
|
150
|
-
def
|
155
|
+
def commits(user_name, repo_name, request_id, params={})
|
151
156
|
_update_user_repo_params(user_name, repo_name)
|
152
157
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
153
158
|
_validate_presence_of request_id
|
@@ -159,6 +164,7 @@ module Github
|
|
159
164
|
return response unless block_given?
|
160
165
|
response.each { |el| yield el }
|
161
166
|
end
|
167
|
+
alias :request_commits :commits
|
162
168
|
|
163
169
|
# List pull requests files
|
164
170
|
#
|
@@ -166,7 +172,7 @@ module Github
|
|
166
172
|
# @github = Github.new
|
167
173
|
# @github.pull_requests.request_files 'user-name', 'repo-name', 'request-id'
|
168
174
|
#
|
169
|
-
def
|
175
|
+
def files(user_name, repo_name, request_id, params={})
|
170
176
|
_update_user_repo_params(user_name, repo_name)
|
171
177
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
172
178
|
_validate_presence_of request_id
|
@@ -178,6 +184,7 @@ module Github
|
|
178
184
|
return response unless block_given?
|
179
185
|
response.each { |el| yield el }
|
180
186
|
end
|
187
|
+
alias :request_files :files
|
181
188
|
|
182
189
|
# Check if pull request has been merged
|
183
190
|
#
|
@@ -195,7 +202,7 @@ module Github
|
|
195
202
|
|
196
203
|
get("/repos/#{user}/#{repo}/pulls/#{request_id}/merge", params)
|
197
204
|
true
|
198
|
-
rescue Github::
|
205
|
+
rescue Github::Error::NotFound
|
199
206
|
false
|
200
207
|
end
|
201
208
|
|
@@ -206,7 +213,7 @@ module Github
|
|
206
213
|
#
|
207
214
|
# = Examples
|
208
215
|
# @github = Github.new
|
209
|
-
# @github.pull_requests.
|
216
|
+
# @github.pull_requests.merge 'user-name', 'repo-name', 'request-id'
|
210
217
|
#
|
211
218
|
def merge(user_name, repo_name, request_id, params={})
|
212
219
|
_update_user_repo_params(user_name, repo_name)
|
@@ -18,9 +18,9 @@ module Github
|
|
18
18
|
#
|
19
19
|
# = Examples
|
20
20
|
# @github = Github.new
|
21
|
-
# @github.pull_requests.
|
21
|
+
# @github.pull_requests.comments 'user-name', 'repo-name', 'request-id'
|
22
22
|
#
|
23
|
-
def
|
23
|
+
def comments(user_name, repo_name, request_id, params={})
|
24
24
|
_update_user_repo_params(user_name, repo_name)
|
25
25
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
26
26
|
_validate_presence_of request_id
|
@@ -32,13 +32,14 @@ module Github
|
|
32
32
|
return response unless block_given?
|
33
33
|
response.each { |el| yield el }
|
34
34
|
end
|
35
|
+
alias :request_comments :comments
|
35
36
|
|
36
37
|
# Get a single comment for pull requests
|
37
38
|
# = Examples
|
38
39
|
# @github = Github.new
|
39
|
-
# @github.pull_requests.
|
40
|
+
# @github.pull_requests.comment 'user-name', 'repo-name', 'comment-id'
|
40
41
|
#
|
41
|
-
def
|
42
|
+
def comment(user_name, repo_name, comment_id, params={})
|
42
43
|
_update_user_repo_params(user_name, repo_name)
|
43
44
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
44
45
|
_validate_presence_of comment_id
|
@@ -48,6 +49,8 @@ module Github
|
|
48
49
|
|
49
50
|
get("/repos/#{user}/#{repo}/pulls/comments/#{comment_id}", params)
|
50
51
|
end
|
52
|
+
alias :request_comment :comment
|
53
|
+
alias :get_comment :comment
|
51
54
|
|
52
55
|
# Create a pull request comment
|
53
56
|
#
|
@@ -59,7 +62,8 @@ module Github
|
|
59
62
|
#
|
60
63
|
# = Examples
|
61
64
|
# @github = Github.new
|
62
|
-
# @github.pull_requests.
|
65
|
+
# @github.pull_requests.create_comment 'user-name','repo-name','request-id',
|
66
|
+
# "body" => "Nice change",
|
63
67
|
# "commit_id" => "6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
64
68
|
# "path" => "file1.txt",
|
65
69
|
# "position" => 4
|
@@ -72,10 +76,11 @@ module Github
|
|
72
76
|
#
|
73
77
|
# = Examples
|
74
78
|
# @github = Github.new
|
75
|
-
# @github.pull_requests.
|
76
|
-
#
|
79
|
+
# @github.pull_requests.create_comment 'user-name','repo-name','request-id',
|
80
|
+
# "body" => "Nice change",
|
81
|
+
# "in_reply_to" => 4
|
77
82
|
#
|
78
|
-
def
|
83
|
+
def create_comment(user_name, repo_name, request_id, params={})
|
79
84
|
_update_user_repo_params(user_name, repo_name)
|
80
85
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
81
86
|
_validate_presence_of request_id
|
@@ -83,7 +88,7 @@ module Github
|
|
83
88
|
_normalize_params_keys(params)
|
84
89
|
_merge_mime_type(:pull_comment, params)
|
85
90
|
_filter_params_keys(VALID_REQUEST_COM_PARAM_NAMES, params)
|
86
|
-
_validate_reply_to(params)
|
91
|
+
# _validate_reply_to(params)
|
87
92
|
|
88
93
|
post("/repos/#{user}/#{repo}/pulls/#{request_id}/comments", params)
|
89
94
|
end
|
@@ -95,9 +100,10 @@ module Github
|
|
95
100
|
#
|
96
101
|
# = Examples
|
97
102
|
# @github = Github.new
|
98
|
-
# @github.pull_requests.
|
103
|
+
# @github.pull_requests.edit_comment 'user-name', 'repo-name','comment-id',
|
104
|
+
# "body" => "Nice change"
|
99
105
|
#
|
100
|
-
def
|
106
|
+
def edit_comment(user_name, repo_name, comment_id, params={})
|
101
107
|
_update_user_repo_params(user_name, repo_name)
|
102
108
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
103
109
|
_validate_presence_of comment_id
|
@@ -113,10 +119,9 @@ module Github
|
|
113
119
|
#
|
114
120
|
# = Examples
|
115
121
|
# @github = Github.new
|
116
|
-
# @github.pull_requests.
|
117
|
-
# 'comment-id'
|
122
|
+
# @github.pull_requests.delete_comment 'user-name', 'repo-name','comment-id'
|
118
123
|
#
|
119
|
-
def
|
124
|
+
def delete_comment(user_name, repo_name, comment_id, params={})
|
120
125
|
_update_user_repo_params(user_name, repo_name)
|
121
126
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
122
127
|
_validate_presence_of comment_id
|