github_api 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- data/features/cassettes/errors/repos/create.yml +33 -23
- data/features/cassettes/gists/comments/all.yml +116 -106
- data/features/cassettes/gists/comments/first.yml +41 -31
- data/features/cassettes/gists/gist.yml +61 -50
- data/features/cassettes/gists/gists/public_all.yml +31 -58
- data/features/cassettes/gists/gists/user_all.yml +44 -34
- data/features/cassettes/pagination/repos.yml +161 -287
- data/features/cassettes/pagination/repos/commits.yml +174 -299
- data/features/cassettes/pagination/repos/commits/next.yml +166 -161
- data/features/cassettes/pagination/repos/commits/sha.yml +127 -121
- data/features/cassettes/pagination/repos/commits/sha/next.yml +130 -250
- data/features/cassettes/pagination/repos/diff.yml +126 -154
- data/features/cassettes/pagination/repos/diff/next.yml +123 -246
- data/features/cassettes/pagination/repos/next.yml +162 -157
- data/features/cassettes/pagination/repos/per_page/each_page.yml +370 -352
- data/features/cassettes/pagination/repos/per_page/first.yml +127 -121
- data/features/cassettes/repos/branches.yml +38 -65
- data/features/cassettes/repos/tags.yml +127 -175
- data/features/support/vcr.rb +2 -2
- data/lib/github_api/authorization.rb +3 -3
- data/lib/github_api/error.rb +3 -0
- data/lib/github_api/error/client_error.rb +20 -0
- data/lib/github_api/error/invalid_options.rb +18 -0
- data/lib/github_api/error/required_params.rb +18 -0
- data/lib/github_api/error/service_error.rb +1 -1
- data/lib/github_api/error/validations.rb +18 -0
- data/lib/github_api/gists.rb +1 -5
- data/lib/github_api/gists/comments.rb +2 -8
- data/lib/github_api/git_data/blobs.rb +1 -2
- data/lib/github_api/git_data/commits.rb +1 -2
- data/lib/github_api/git_data/references.rb +2 -4
- data/lib/github_api/git_data/trees.rb +1 -1
- data/lib/github_api/issues.rb +1 -2
- data/lib/github_api/issues/comments.rb +2 -2
- data/lib/github_api/issues/labels.rb +2 -4
- data/lib/github_api/issues/milestones.rb +2 -4
- data/lib/github_api/orgs/teams.rb +3 -4
- data/lib/github_api/repos.rb +9 -3
- data/lib/github_api/repos/commits.rb +2 -2
- data/lib/github_api/repos/downloads.rb +1 -2
- data/lib/github_api/repos/hooks.rb +2 -8
- data/lib/github_api/repos/keys.rb +2 -3
- data/lib/github_api/validation.rb +5 -1
- data/lib/github_api/version.rb +1 -1
- data/spec/github/api_factory_spec.rb +2 -1
- data/spec/github/api_spec.rb +4 -2
- data/spec/github/authorization_spec.rb +19 -28
- data/spec/github/authorizations_spec.rb +2 -1
- data/spec/github/client_spec.rb +4 -1
- data/spec/github/deprecation_spec.rb +2 -1
- data/spec/github/error/client_error_spec.rb +28 -0
- data/spec/github/error/invalid_options_spec.rb +21 -0
- data/spec/github/error/required_params_spec.rb +21 -0
- data/spec/github/events_spec.rb +4 -4
- data/spec/github/filter_spec.rb +2 -2
- data/spec/github/gists/comments_spec.rb +8 -4
- data/spec/github/gists_spec.rb +19 -14
- data/spec/github/git_data/blobs_spec.rb +10 -4
- data/spec/github/git_data/commits_spec.rb +13 -6
- data/spec/github/git_data/references_spec.rb +13 -8
- data/spec/github/git_data/tags_spec.rb +8 -3
- data/spec/github/git_data/trees_spec.rb +9 -3
- data/spec/github/issues/comments_spec.rb +10 -3
- data/spec/github/issues/events_spec.rb +8 -3
- data/spec/github/issues/labels_spec.rb +13 -7
- data/spec/github/issues/milestones_spec.rb +10 -3
- data/spec/github/issues_spec.rb +3 -3
- data/spec/github/mime_type_spec.rb +64 -64
- data/spec/github/orgs/members_spec.rb +2 -11
- data/spec/github/orgs/teams_spec.rb +9 -9
- data/spec/github/orgs_spec.rb +22 -8
- data/spec/github/page_iterator_spec.rb +2 -1
- data/spec/github/page_links_spec.rb +2 -1
- data/spec/github/paged_request_spec.rb +2 -1
- data/spec/github/pull_requests/comments_spec.rb +9 -3
- data/spec/github/pull_requests_spec.rb +6 -2
- data/spec/github/repos/collaborators_spec.rb +12 -7
- data/spec/github/repos/commits_spec.rb +20 -14
- data/spec/github/repos/downloads_spec.rb +19 -8
- data/spec/github/repos/forks_spec.rb +6 -3
- data/spec/github/repos/hooks_spec.rb +14 -8
- data/spec/github/repos/keys_spec.rb +8 -6
- data/spec/github/repos/pub_sub_hubbub_spec.rb +4 -11
- data/spec/github/repos/watching_spec.rb +15 -38
- data/spec/github/repos_spec.rb +35 -39
- data/spec/github/request_spec.rb +4 -0
- data/spec/github/response/helpers_spec.rb +0 -2
- data/spec/github/result_spec.rb +2 -3
- data/spec/github/users/followers_spec.rb +6 -8
- data/spec/github/users_spec.rb +123 -123
- data/spec/github/validation_spec.rb +8 -7
- data/spec/github_spec.rb +6 -7
- data/spec/spec_helper.rb +2 -2
- metadata +36 -21
- data/features/cassettes/gists/star.yml +0 -34
- data/features/cassettes/pagination/repos/per_page/1.yml +0 -134
- data/features/cassettes/repos/teams.yml +0 -38
data/features/support/vcr.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'vcr'
|
2
2
|
|
3
|
-
VCR.
|
4
|
-
conf.
|
3
|
+
VCR.configure do |conf|
|
4
|
+
conf.hook_into :webmock
|
5
5
|
conf.cassette_library_dir = 'features/cassettes'
|
6
6
|
conf.default_cassette_options = { :record => :new_episodes }
|
7
7
|
conf.filter_sensitive_data('<***>') { ''}
|
@@ -17,7 +17,7 @@ module Github
|
|
17
17
|
# Strategy token
|
18
18
|
def auth_code
|
19
19
|
_verify_client
|
20
|
-
|
20
|
+
client.auth_code
|
21
21
|
end
|
22
22
|
|
23
23
|
# Sends authorization request to GitHub.
|
@@ -33,13 +33,13 @@ module Github
|
|
33
33
|
#
|
34
34
|
def authorize_url(params = {})
|
35
35
|
_verify_client
|
36
|
-
|
36
|
+
client.auth_code.authorize_url(params)
|
37
37
|
end
|
38
38
|
|
39
39
|
# Makes request to token endpoint and retrieves access token value
|
40
40
|
def get_token(authorization_code, params = {})
|
41
41
|
_verify_client
|
42
|
-
|
42
|
+
client.auth_code.get_token(authorization_code, params)
|
43
43
|
end
|
44
44
|
|
45
45
|
# Check whether authentication credentials are present
|
data/lib/github_api/error.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Github #:nodoc
|
4
|
+
# Raised when Github returns the HTTP status code 404
|
5
|
+
module Error
|
6
|
+
class ClientError < GithubError
|
7
|
+
attr_reader :problem, :summary, :resolution
|
8
|
+
|
9
|
+
def initialize(message)
|
10
|
+
super(message)
|
11
|
+
end
|
12
|
+
|
13
|
+
def generate_message(attributes)
|
14
|
+
"\nProblem:\n #{attributes[:problem]}"+
|
15
|
+
"\nSummary:\n #{attributes[:summary]}"+
|
16
|
+
"\nResolution:\n #{attributes[:resolution]}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end # Error
|
20
|
+
end # Github
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Github #:nodoc
|
4
|
+
# Raised when invalid options are passed to a request body
|
5
|
+
module Error
|
6
|
+
class InvalidOptions < ClientError
|
7
|
+
def initialize(invalid, valid)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => "Invalid option #{invalid.keys.join(', ')} provided for this request.",
|
11
|
+
:summary => "Github gem checks the request parameters passed to ensure that github api is not hit unnecessairly and to fail fast.",
|
12
|
+
:resolution => "Valid options are: #{valid.join(', ')}, make sure these are the ones you are using"
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Github
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Github #:nodoc
|
4
|
+
# Raised when invalid options are passed to a request body
|
5
|
+
module Error
|
6
|
+
class RequiredParams < ClientError
|
7
|
+
def initialize(provided, required)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => "Missing required parameters: #{provided.keys.join(', ')} provided for this request.",
|
11
|
+
:summary => "Github gem checks the request parameters passed to ensure that github api is not hit unnecessairly and to fail fast.",
|
12
|
+
:resolution => "Required parameters are: #{required.join(', ')}, make sure these are the ones you are using"
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Github
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Github #:nodoc
|
4
|
+
# Raised when passed parameters are missing or contain wrong values.
|
5
|
+
module Error
|
6
|
+
class Validations < ClientError
|
7
|
+
def initialize(errors)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => '',
|
11
|
+
:summary => '',
|
12
|
+
:resolution => ''
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Github
|
data/lib/github_api/gists.rb
CHANGED
@@ -105,11 +105,7 @@ module Github
|
|
105
105
|
#
|
106
106
|
def create_gist(params={})
|
107
107
|
_normalize_params_keys(params)
|
108
|
-
|
109
|
-
unless _validate_inputs(REQUIRED_GIST_INPUTS, params)
|
110
|
-
raise ArgumentError,
|
111
|
-
"Required parameters are: #{REQUIRED_GIST_INPUTS.join(', ')}"
|
112
|
-
end
|
108
|
+
_validate_inputs(REQUIRED_GIST_INPUTS, params)
|
113
109
|
|
114
110
|
post("/gists", params)
|
115
111
|
end
|
@@ -58,10 +58,7 @@ module Github
|
|
58
58
|
_normalize_params_keys(params)
|
59
59
|
# _merge_mime_type(:gist_comment, params)
|
60
60
|
_filter_params_keys(ALLOWED_GIST_COMMENT_INPUTS, params)
|
61
|
-
|
62
|
-
unless _validate_inputs(REQUIRED_GIST_COMMENT_INPUTS, params)
|
63
|
-
raise ArgumentError, "Required inputs are: :body"
|
64
|
-
end
|
61
|
+
_validate_inputs(REQUIRED_GIST_COMMENT_INPUTS, params)
|
65
62
|
|
66
63
|
post("/gists/#{gist_id}/comments", params)
|
67
64
|
end
|
@@ -78,10 +75,7 @@ module Github
|
|
78
75
|
_validate_presence_of(comment_id)
|
79
76
|
# _merge_mime_type(:gist_comment, params)
|
80
77
|
_filter_params_keys(ALLOWED_GIST_COMMENT_INPUTS, params)
|
81
|
-
|
82
|
-
unless _validate_inputs(REQUIRED_GIST_COMMENT_INPUTS, params)
|
83
|
-
raise ArgumentError, "Required inputs are: :body"
|
84
|
-
end
|
78
|
+
_validate_inputs(REQUIRED_GIST_COMMENT_INPUTS, params)
|
85
79
|
|
86
80
|
patch("/gists/comments/#{comment_id}", params)
|
87
81
|
end
|
@@ -42,8 +42,7 @@ module Github
|
|
42
42
|
|
43
43
|
_normalize_params_keys(params)
|
44
44
|
_filter_params_keys(VALID_BLOB_PARAM_NAMES, params)
|
45
|
-
|
46
|
-
raise ArgumentError, "Required params are: #{VALID_BLOB_PARAM_NAMES.join(', ')}" unless _validate_inputs(VALID_BLOB_PARAM_NAMES, params)
|
45
|
+
_validate_inputs(VALID_BLOB_PARAM_NAMES, params)
|
47
46
|
|
48
47
|
post("/repos/#{user}/#{repo}/git/blobs", params)
|
49
48
|
end
|
@@ -74,8 +74,7 @@ module Github
|
|
74
74
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
75
75
|
_normalize_params_keys(params)
|
76
76
|
_filter_params_keys(VALID_COMMIT_PARAM_NAMES, params)
|
77
|
-
|
78
|
-
raise ArgumentError, "Required params are: message, tree, parents" unless _validate_inputs(REQUIRED_COMMIT_PARAMS, params)
|
77
|
+
_validate_inputs(REQUIRED_COMMIT_PARAMS, params)
|
79
78
|
|
80
79
|
post("/repos/#{user}/#{repo}/git/commits", params)
|
81
80
|
end
|
@@ -83,8 +83,7 @@ module Github
|
|
83
83
|
_normalize_params_keys params
|
84
84
|
_filter_params_keys VALID_REF_PARAM_NAMES, params
|
85
85
|
_validate_reference params['ref']
|
86
|
-
|
87
|
-
raise ArgumentError, "Required params are: ref, sha" unless _validate_inputs(%w[ ref sha ], params)
|
86
|
+
_validate_inputs(%w[ ref sha ], params)
|
88
87
|
|
89
88
|
post("/repos/#{user}/#{repo}/git/refs", params)
|
90
89
|
end
|
@@ -109,8 +108,7 @@ module Github
|
|
109
108
|
_validate_reference ref
|
110
109
|
_normalize_params_keys(params)
|
111
110
|
_filter_params_keys(VALID_REF_PARAM_NAMES, params)
|
112
|
-
|
113
|
-
raise ArgumentError, "Required params are: sha" unless _validate_inputs(%w[ sha ], params)
|
111
|
+
_validate_inputs(%w[ sha ], params)
|
114
112
|
|
115
113
|
patch("/repos/#{user}/#{repo}/git/refs/#{ref}", params)
|
116
114
|
end
|
@@ -86,7 +86,7 @@ module Github
|
|
86
86
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
87
87
|
_normalize_params_keys(params)
|
88
88
|
|
89
|
-
|
89
|
+
_validate_inputs(%w[ tree ], params)
|
90
90
|
|
91
91
|
_filter_params_keys(VALID_TREE_PARAM_NAMES, params['tree'])
|
92
92
|
_validate_params_values(VALID_TREE_PARAM_VALUES, params['tree'])
|
data/lib/github_api/issues.rb
CHANGED
@@ -171,8 +171,7 @@ module Github
|
|
171
171
|
_normalize_params_keys(params)
|
172
172
|
# _merge_mime_type(:issue, params)
|
173
173
|
_filter_params_keys(VALID_ISSUE_PARAM_NAMES, params)
|
174
|
-
|
175
|
-
raise ArgumentError, "Required params are: :title" unless _validate_inputs(%w[ title ], params)
|
174
|
+
_validate_inputs(%w[ title ], params)
|
176
175
|
|
177
176
|
post("/repos/#{user}/#{repo}/issues", params)
|
178
177
|
end
|
@@ -70,7 +70,7 @@ module Github
|
|
70
70
|
_normalize_params_keys(params)
|
71
71
|
# _merge_mime_type(:issue_comment, params)
|
72
72
|
_filter_params_keys(VALID_ISSUE_COMMENT_PARAM_NAME, params)
|
73
|
-
|
73
|
+
_validate_inputs(%w[ body ], params)
|
74
74
|
|
75
75
|
post("/repos/#{user}/#{repo}/issues/#{issue_id}/comments", params)
|
76
76
|
end
|
@@ -94,7 +94,7 @@ module Github
|
|
94
94
|
_normalize_params_keys(params)
|
95
95
|
# _merge_mime_type(:issue_comment, params)
|
96
96
|
_filter_params_keys(VALID_ISSUE_COMMENT_PARAM_NAME, params)
|
97
|
-
|
97
|
+
_validate_inputs(%w[ body ], params)
|
98
98
|
|
99
99
|
patch("/repos/#{user}/#{repo}/issues/comments/#{comment_id}")
|
100
100
|
end
|
@@ -56,8 +56,7 @@ module Github
|
|
56
56
|
|
57
57
|
_normalize_params_keys(params)
|
58
58
|
_filter_params_keys(VALID_LABEL_INPUTS, params)
|
59
|
-
|
60
|
-
raise ArgumentError, "Required params are: :name, :color" unless _validate_inputs(VALID_LABEL_INPUTS, params)
|
59
|
+
_validate_inputs(VALID_LABEL_INPUTS, params)
|
61
60
|
|
62
61
|
post("/repos/#{user}/#{repo}/labels", params)
|
63
62
|
end
|
@@ -79,8 +78,7 @@ module Github
|
|
79
78
|
|
80
79
|
_normalize_params_keys(params)
|
81
80
|
_filter_params_keys(VALID_LABEL_INPUTS, params)
|
82
|
-
|
83
|
-
raise ArgumentError, "Required params are: :name, :color" unless _validate_inputs(VALID_LABEL_INPUTS, params)
|
81
|
+
_validate_inputs(VALID_LABEL_INPUTS, params)
|
84
82
|
|
85
83
|
patch("/repos/#{user}/#{repo}/labels/#{label_id}", params)
|
86
84
|
end
|
@@ -85,8 +85,7 @@ module Github
|
|
85
85
|
|
86
86
|
_normalize_params_keys(params)
|
87
87
|
_filter_params_keys(VALID_MILESTONE_INPUTS, params)
|
88
|
-
|
89
|
-
raise ArgumentError, "Required params are: :title" unless _validate_inputs(%w[ title ], params)
|
88
|
+
_validate_inputs(%w[ title ], params)
|
90
89
|
|
91
90
|
post("/repos/#{user}/#{repo}/milestones", params)
|
92
91
|
end
|
@@ -114,8 +113,7 @@ module Github
|
|
114
113
|
|
115
114
|
_normalize_params_keys(params)
|
116
115
|
_filter_params_keys(VALID_MILESTONE_INPUTS, params)
|
117
|
-
|
118
|
-
raise ArgumentError, "Required params are: :title" unless _validate_inputs(%w[ title ], params)
|
116
|
+
_validate_inputs(%w[ title ], params)
|
119
117
|
|
120
118
|
patch("/repos/#{user}/#{repo}/milestones/#{milestone_id}", params)
|
121
119
|
end
|
@@ -67,8 +67,7 @@ module Github
|
|
67
67
|
_normalize_params_keys(params)
|
68
68
|
_filter_params_keys(VALID_TEAM_PARAM_NAMES, params)
|
69
69
|
_validate_params_values(VALID_TEAM_PARAM_VALUES, params)
|
70
|
-
|
71
|
-
raise ArgumentError, "Required params are: :name" unless _validate_inputs(%w[ name ], params)
|
70
|
+
_validate_inputs(%w[ name ], params)
|
72
71
|
|
73
72
|
post("/orgs/#{org_name}/teams", params)
|
74
73
|
end
|
@@ -92,10 +91,10 @@ module Github
|
|
92
91
|
def edit_team(team_name, params={})
|
93
92
|
_validate_presence_of team_name
|
94
93
|
_normalize_params_keys(params)
|
94
|
+
|
95
95
|
_filter_params_keys(VALID_TEAM_PARAM_NAMES, params)
|
96
96
|
_validate_params_values(VALID_TEAM_PARAM_VALUES, params)
|
97
|
-
|
98
|
-
raise ArgumentError, "Required params are: :name" unless _validate_inputs(%w[ name ], params)
|
97
|
+
_validate_inputs(%w[ name ], params)
|
99
98
|
|
100
99
|
patch("/teams/#{team_name}", params)
|
101
100
|
end
|
data/lib/github_api/repos.rb
CHANGED
@@ -59,7 +59,7 @@ module Github
|
|
59
59
|
# @repos = Github::Repos.new
|
60
60
|
# @repos.branches 'user-name', 'repo-name'
|
61
61
|
#
|
62
|
-
def branches(user_name
|
62
|
+
def branches(user_name, repo_name, params={})
|
63
63
|
_update_user_repo_params(user_name, repo_name)
|
64
64
|
_validate_user_repo_params(user, repo) unless (user? && repo?)
|
65
65
|
_normalize_params_keys(params)
|
@@ -103,7 +103,11 @@ module Github
|
|
103
103
|
_normalize_params_keys(params)
|
104
104
|
_filter_params_keys(VALID_REPO_OPTIONS + %w[ org ], params)
|
105
105
|
|
106
|
-
|
106
|
+
# if !_validate_inputs(%w[ name ], params)
|
107
|
+
# raise ArgumentError, "Required params are: :name"
|
108
|
+
# end
|
109
|
+
|
110
|
+
_validate_inputs(%w[ name ], params)
|
107
111
|
|
108
112
|
# Requires authenticated user
|
109
113
|
if (org = params.delete("org"))
|
@@ -161,7 +165,9 @@ module Github
|
|
161
165
|
_normalize_params_keys(params)
|
162
166
|
_filter_params_keys(VALID_REPO_OPTIONS, params)
|
163
167
|
|
164
|
-
|
168
|
+
unless _validate_inputs(%w[ name ], params)
|
169
|
+
raise ArgumentError, "Required params are: #{%w[ :name ] }"
|
170
|
+
end
|
165
171
|
|
166
172
|
patch("/repos/#{user}/#{repo}", DEFAULT_REPO_OPTIONS.merge(params))
|
167
173
|
end
|
@@ -38,7 +38,7 @@ module Github
|
|
38
38
|
_normalize_params_keys(params)
|
39
39
|
_filter_params_keys(REQUIRED_COMMENT_PARAMS, params)
|
40
40
|
|
41
|
-
|
41
|
+
_validate_inputs(REQUIRED_COMMENT_PARAMS, params)
|
42
42
|
|
43
43
|
post("/repos/#{user}/#{repo}/commits/#{sha}/comments", params)
|
44
44
|
end
|
@@ -170,7 +170,7 @@ module Github
|
|
170
170
|
_validate_presence_of comment_id
|
171
171
|
|
172
172
|
_normalize_params_keys(params)
|
173
|
-
|
173
|
+
_validate_inputs(%w[ body ], params)
|
174
174
|
|
175
175
|
patch("/repos/#{user}/#{repo}/comments/#{comment_id}", params)
|
176
176
|
end
|
@@ -100,8 +100,7 @@ module Github
|
|
100
100
|
|
101
101
|
_normalize_params_keys(params)
|
102
102
|
_filter_params_keys(VALID_DOWNLOAD_PARAM_NAMES, params)
|
103
|
-
|
104
|
-
raise ArgumentError, "Required parameters are: #{REQUIRED_PARAMS.join(', ')}" unless _validate_inputs(REQUIRED_PARAMS, params)
|
103
|
+
_validate_inputs(REQUIRED_PARAMS, params)
|
105
104
|
|
106
105
|
post("/repos/#{user}/#{repo}/downloads", params)
|
107
106
|
end
|
@@ -97,10 +97,7 @@ module Github
|
|
97
97
|
|
98
98
|
_normalize_params_keys(params)
|
99
99
|
_filter_params_keys(VALID_HOOK_PARAM_NAMES, params, :recursive => false)
|
100
|
-
|
101
|
-
unless _validate_inputs(REQUIRED_PARAMS, params)
|
102
|
-
raise ArgumentError, "Required parameters are: name, config"
|
103
|
-
end
|
100
|
+
_validate_inputs(REQUIRED_PARAMS, params)
|
104
101
|
|
105
102
|
post("/repos/#{user}/#{repo}/hooks", params)
|
106
103
|
end
|
@@ -133,10 +130,7 @@ module Github
|
|
133
130
|
|
134
131
|
_normalize_params_keys(params)
|
135
132
|
_filter_params_keys(VALID_HOOK_PARAM_NAMES, params, :recursive => false)
|
136
|
-
|
137
|
-
unless _validate_inputs(REQUIRED_PARAMS, params)
|
138
|
-
raise ArgumentError, "Required parameters are: name, config"
|
139
|
-
end
|
133
|
+
_validate_inputs(REQUIRED_PARAMS, params)
|
140
134
|
|
141
135
|
patch("/repos/#{user}/#{repo}/hooks/#{hook_id}", params)
|
142
136
|
end
|
@@ -50,13 +50,12 @@ module Github
|
|
50
50
|
# "title" => "octocat@octomac",
|
51
51
|
# "key" => "ssh-rsa AAA..."
|
52
52
|
#
|
53
|
-
def create_key(user_name
|
53
|
+
def create_key(user_name, repo_name, params={})
|
54
54
|
_update_user_repo_params(user_name, repo_name)
|
55
55
|
_validate_user_repo_params(user, repo) unless user? && repo?
|
56
56
|
_normalize_params_keys(params)
|
57
57
|
_filter_params_keys(VALID_KEY_PARAM_NAMES, params)
|
58
|
-
|
59
|
-
raise ArgumentError, "Required params are: #{VALID_KEY_PARAM_NAMES.join(', ')}" unless _validate_inputs(VALID_KEY_PARAM_NAMES, params)
|
58
|
+
_validate_inputs(VALID_KEY_PARAM_NAMES, params)
|
60
59
|
|
61
60
|
post("/repos/#{user}/#{repo}/keys", params)
|
62
61
|
end
|
@@ -12,9 +12,13 @@ module Github
|
|
12
12
|
# Ensures that esential input parameters are present before request is made
|
13
13
|
#
|
14
14
|
def _validate_inputs(required, provided)
|
15
|
-
required.all? do |key|
|
15
|
+
result = required.all? do |key|
|
16
16
|
provided.has_deep_key? key
|
17
17
|
end
|
18
|
+
if !result
|
19
|
+
raise Github::Error::RequiredParams.new(provided, required)
|
20
|
+
end
|
21
|
+
result
|
18
22
|
end
|
19
23
|
|
20
24
|
# Ensures that esential arguments are present before request is made
|