github_api 0.4.11 → 0.5.0.rc1
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/README.md +76 -72
- data/features/cassettes/gists/starred.yml +48 -0
- data/features/cassettes/pagination/repos/commits/list.yml +193 -0
- data/features/cassettes/pagination/repos/commits/next.yml +183 -0
- data/features/cassettes/pagination/repos/diff/next.yml +45 -0
- data/features/cassettes/pagination/repos/list.yml +176 -0
- data/features/cassettes/pagination/repos/list/next.yml +222 -0
- data/features/cassettes/pagination/repos/per_page/each_page.yml +45 -0
- data/features/cassettes/repos/list.yml +92 -0
- data/features/error_codes.feature +1 -1
- data/features/gists.feature +12 -3
- data/features/gists/comments.feature +3 -3
- data/features/github_api.feature +13 -2
- data/features/pagination.feature +40 -39
- data/features/repos.feature +2 -2
- data/features/step_definitions/common_steps.rb +12 -0
- data/features/step_definitions/github_api_steps.rb +12 -1
- data/lib/github_api.rb +1 -1
- data/lib/github_api/api.rb +4 -2
- data/lib/github_api/api_factory.rb +11 -5
- data/lib/github_api/authorizations.rb +23 -32
- data/lib/github_api/client.rb +1 -0
- data/lib/github_api/events.rb +38 -38
- data/lib/github_api/filter.rb +1 -1
- data/lib/github_api/gists.rb +47 -42
- data/lib/github_api/gists/comments.rb +77 -84
- data/lib/github_api/git_data.rb +25 -6
- data/lib/github_api/git_data/blobs.rb +48 -45
- data/lib/github_api/git_data/commits.rb +76 -73
- data/lib/github_api/git_data/references.rb +137 -118
- data/lib/github_api/git_data/tags.rb +74 -70
- data/lib/github_api/git_data/trees.rb +88 -85
- data/lib/github_api/issues.rb +43 -31
- data/lib/github_api/issues/comments.rb +116 -119
- data/lib/github_api/issues/events.rb +20 -19
- data/lib/github_api/issues/labels.rb +200 -197
- data/lib/github_api/issues/milestones.rb +137 -134
- data/lib/github_api/orgs.rb +27 -23
- data/lib/github_api/orgs/members.rb +105 -108
- data/lib/github_api/orgs/teams.rb +236 -237
- data/lib/github_api/paged_request.rb +1 -1
- data/lib/github_api/pull_requests.rb +40 -42
- data/lib/github_api/pull_requests/comments.rb +140 -143
- data/lib/github_api/repos.rb +101 -67
- data/lib/github_api/repos/collaborators.rb +64 -68
- data/lib/github_api/repos/commits.rb +50 -39
- data/lib/github_api/repos/downloads.rb +107 -110
- data/lib/github_api/repos/forks.rb +38 -39
- data/lib/github_api/repos/hooks.rb +161 -167
- data/lib/github_api/repos/keys.rb +86 -86
- data/lib/github_api/repos/pub_sub_hubbub.rb +99 -87
- data/lib/github_api/repos/watching.rb +80 -82
- data/lib/github_api/request.rb +5 -9
- data/lib/github_api/users.rb +26 -16
- data/lib/github_api/users/emails.rb +47 -47
- data/lib/github_api/users/followers.rb +85 -86
- data/lib/github_api/users/keys.rb +73 -75
- data/lib/github_api/validations.rb +25 -0
- data/lib/github_api/validations/format.rb +23 -0
- data/lib/github_api/validations/presence.rb +25 -0
- data/lib/github_api/validations/required.rb +21 -0
- data/lib/github_api/validations/token.rb +41 -0
- data/lib/github_api/version.rb +3 -3
- data/spec/fixtures/repos/commit_comparison.json +112 -0
- data/spec/github/api_factory_spec.rb +17 -1
- data/spec/github/authorizations_spec.rb +36 -34
- data/spec/github/gists/comments_spec.rb +39 -45
- data/spec/github/gists_spec.rb +50 -53
- data/spec/github/git_data/blobs_spec.rb +27 -20
- data/spec/github/git_data/commits_spec.rb +20 -19
- data/spec/github/git_data/references_spec.rb +83 -46
- data/spec/github/git_data/tags_spec.rb +16 -15
- data/spec/github/git_data/trees_spec.rb +20 -19
- data/spec/github/git_data_spec.rb +10 -1
- data/spec/github/issues/comments_spec.rb +78 -68
- data/spec/github/issues/events_spec.rb +42 -34
- data/spec/github/issues/labels_spec.rb +89 -101
- data/spec/github/issues/milestones_spec.rb +76 -54
- data/spec/github/issues_spec.rb +53 -57
- data/spec/github/orgs/members_spec.rb +64 -49
- data/spec/github/orgs/teams_spec.rb +112 -101
- data/spec/github/orgs_spec.rb +41 -31
- data/spec/github/paged_request_spec.rb +6 -5
- data/spec/github/pull_requests/comments_spec.rb +39 -44
- data/spec/github/pull_requests_spec.rb +32 -48
- data/spec/github/repos/collaborators_spec.rb +40 -29
- data/spec/github/repos/commits_spec.rb +108 -64
- data/spec/github/repos/downloads_spec.rb +46 -45
- data/spec/github/repos/forks_spec.rb +23 -24
- data/spec/github/repos/hooks_spec.rb +69 -71
- data/spec/github/repos/keys_spec.rb +39 -34
- data/spec/github/repos/pub_sub_hubbub_spec.rb +4 -4
- data/spec/github/repos/watching_spec.rb +31 -33
- data/spec/github/repos_spec.rb +74 -83
- data/spec/github/request_spec.rb +31 -2
- data/spec/github/users/emails_spec.rb +19 -17
- data/spec/github/users/followers_spec.rb +30 -28
- data/spec/github/users/keys_spec.rb +37 -33
- data/spec/github/users_spec.rb +124 -125
- data/spec/github/validations/format_spec.rb +42 -0
- data/spec/github/validations/presence_spec.rb +18 -0
- data/spec/github/validations/required_spec.rb +28 -0
- data/spec/github/validations/token_spec.rb +19 -0
- data/spec/github/validations_spec.rb +23 -0
- metadata +33 -10
- data/features/cassettes/pagination/repos.yml +0 -177
- data/features/cassettes/pagination/repos/next.yml +0 -177
- data/lib/github_api/validation.rb +0 -53
- data/spec/github/validation_spec.rb +0 -62
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Github
|
|
4
|
+
module Validations
|
|
5
|
+
module Format
|
|
6
|
+
|
|
7
|
+
# Ensures that value for a given key is of the correct form whether
|
|
8
|
+
# matching regular expression or set of predefined values.
|
|
9
|
+
#
|
|
10
|
+
def _validate_params_values(permitted, params)
|
|
11
|
+
params.each do |k, v|
|
|
12
|
+
next unless permitted.keys.include?(k)
|
|
13
|
+
if permitted[k].is_a?(Array) && !permitted[k].include?(params[k])
|
|
14
|
+
raise ArgumentError, "Wrong value for #{k}, allowed: #{permitted[k].join(', ')}"
|
|
15
|
+
elsif permitted[k].is_a?(Regexp) && !(permitted[k] =~ params[k])
|
|
16
|
+
raise ArgumentError, "String does not match the parameter value."
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end # Format
|
|
22
|
+
end # Validations
|
|
23
|
+
end # Github
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Github
|
|
4
|
+
module Validations
|
|
5
|
+
module Presence
|
|
6
|
+
|
|
7
|
+
# Ensures that esential arguments are present before request is made
|
|
8
|
+
#
|
|
9
|
+
def _validate_presence_of(*params)
|
|
10
|
+
params.each do |param|
|
|
11
|
+
raise ArgumentError, "parameter cannot be nil" if param.nil?
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# Check if user or repository parameters are passed
|
|
17
|
+
#
|
|
18
|
+
def _validate_user_repo_params(user_name, repo_name)
|
|
19
|
+
raise ArgumentError, "[user] parameter cannot be nil" if user_name.nil?
|
|
20
|
+
raise ArgumentError, "[repo] parameter cannot be nil" if repo_name.nil?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end # Presence
|
|
24
|
+
end # Validations
|
|
25
|
+
end # Github
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Github
|
|
4
|
+
module Validations
|
|
5
|
+
module Required
|
|
6
|
+
|
|
7
|
+
# Ensures that esential input parameters are present before request is made.
|
|
8
|
+
#
|
|
9
|
+
def _validate_inputs(required, provided)
|
|
10
|
+
result = required.all? do |key|
|
|
11
|
+
provided.has_deep_key? key
|
|
12
|
+
end
|
|
13
|
+
if !result
|
|
14
|
+
raise Github::Error::RequiredParams.new(provided, required)
|
|
15
|
+
end
|
|
16
|
+
result
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end # Required
|
|
20
|
+
end # Validations
|
|
21
|
+
end # Github
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module Github
|
|
4
|
+
module Validations
|
|
5
|
+
module Token
|
|
6
|
+
|
|
7
|
+
TOKEN_REQUIRED = [
|
|
8
|
+
'get /user',
|
|
9
|
+
'get /user/emails',
|
|
10
|
+
'get /user/followers',
|
|
11
|
+
'get /user/following',
|
|
12
|
+
'get /user/keys',
|
|
13
|
+
'get /user/repos',
|
|
14
|
+
'patch /user',
|
|
15
|
+
'post /user/emails',
|
|
16
|
+
'post /user/keys',
|
|
17
|
+
'post /user/repos'
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
TOKEN_REQUIRED_REGEXP = [
|
|
21
|
+
/repos\/.*\/.*\/comments/,
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
# Ensures that required authentication token is present before
|
|
25
|
+
# request is sent.
|
|
26
|
+
#
|
|
27
|
+
def validates_token_for(method, path)
|
|
28
|
+
return true unless TOKEN_REQUIRED.grep("#{method} #{path}").empty?
|
|
29
|
+
|
|
30
|
+
token_required = false
|
|
31
|
+
TOKEN_REQUIRED_REGEXP.each do |regex|
|
|
32
|
+
if "#{method} #{path}" =~ regex
|
|
33
|
+
token_required = true
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
return token_required
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end # Token
|
|
40
|
+
end # Validations
|
|
41
|
+
end # Github
|
data/lib/github_api/version.rb
CHANGED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/compare/master...topic",
|
|
3
|
+
"html_url": "https://github.com/octocat/Hello-World/compare/master...topic",
|
|
4
|
+
"permalink_url": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17",
|
|
5
|
+
"diff_url": "https://github.com/octocat/Hello-World/compare/master...topic.diff",
|
|
6
|
+
"patch_url": "https://github.com/octocat/Hello-World/compare/master...topic.patch",
|
|
7
|
+
"base_commit": {
|
|
8
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
9
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
10
|
+
"commit": {
|
|
11
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
12
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
13
|
+
"author": {
|
|
14
|
+
"name": "Monalisa Octocat",
|
|
15
|
+
"email": "support@github.com",
|
|
16
|
+
"date": "2011-04-14T16:00:49Z"
|
|
17
|
+
},
|
|
18
|
+
"committer": {
|
|
19
|
+
"name": "Monalisa Octocat",
|
|
20
|
+
"email": "support@github.com",
|
|
21
|
+
"date": "2011-04-14T16:00:49Z"
|
|
22
|
+
},
|
|
23
|
+
"message": "Fix all the bugs",
|
|
24
|
+
"tree": {
|
|
25
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
26
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"author": {
|
|
30
|
+
"login": "octocat",
|
|
31
|
+
"id": 1,
|
|
32
|
+
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
|
|
33
|
+
"gravatar_id": "somehexcode",
|
|
34
|
+
"url": "https://api.github.com/users/octocat"
|
|
35
|
+
},
|
|
36
|
+
"committer": {
|
|
37
|
+
"login": "octocat",
|
|
38
|
+
"id": 1,
|
|
39
|
+
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
|
|
40
|
+
"gravatar_id": "somehexcode",
|
|
41
|
+
"url": "https://api.github.com/users/octocat"
|
|
42
|
+
},
|
|
43
|
+
"parents": [
|
|
44
|
+
{
|
|
45
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
46
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"status": "behind",
|
|
51
|
+
"ahead_by": 1,
|
|
52
|
+
"behind_by": 2,
|
|
53
|
+
"total_commits": 1,
|
|
54
|
+
"commits": [
|
|
55
|
+
{
|
|
56
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
57
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
58
|
+
"commit": {
|
|
59
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
60
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
61
|
+
"author": {
|
|
62
|
+
"name": "Monalisa Octocat",
|
|
63
|
+
"email": "support@github.com",
|
|
64
|
+
"date": "2011-04-14T16:00:49Z"
|
|
65
|
+
},
|
|
66
|
+
"committer": {
|
|
67
|
+
"name": "Monalisa Octocat",
|
|
68
|
+
"email": "support@github.com",
|
|
69
|
+
"date": "2011-04-14T16:00:49Z"
|
|
70
|
+
},
|
|
71
|
+
"message": "Fix all the bugs",
|
|
72
|
+
"tree": {
|
|
73
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
74
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"author": {
|
|
78
|
+
"login": "octocat",
|
|
79
|
+
"id": 1,
|
|
80
|
+
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
|
|
81
|
+
"gravatar_id": "somehexcode",
|
|
82
|
+
"url": "https://api.github.com/users/octocat"
|
|
83
|
+
},
|
|
84
|
+
"committer": {
|
|
85
|
+
"login": "octocat",
|
|
86
|
+
"id": 1,
|
|
87
|
+
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
|
|
88
|
+
"gravatar_id": "somehexcode",
|
|
89
|
+
"url": "https://api.github.com/users/octocat"
|
|
90
|
+
},
|
|
91
|
+
"parents": [
|
|
92
|
+
{
|
|
93
|
+
"url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
94
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"files": [
|
|
100
|
+
{
|
|
101
|
+
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
|
102
|
+
"filename": "file1.txt",
|
|
103
|
+
"status": "added",
|
|
104
|
+
"additions": 103,
|
|
105
|
+
"deletions": 21,
|
|
106
|
+
"changes": 124,
|
|
107
|
+
"blob_url": "https://github.com/octocate/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
|
|
108
|
+
"raw_url": "https://github.com/octocate/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
|
|
109
|
+
"patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
|
-
describe Github::ApiFactory
|
|
5
|
+
describe Github::ApiFactory do
|
|
6
|
+
|
|
6
7
|
context '#new' do
|
|
7
8
|
it 'throws error if klass type is ommitted' do
|
|
8
9
|
expect { described_class.new nil }.to raise_error(ArgumentError)
|
|
@@ -12,4 +13,19 @@ describe Github::ApiFactory, :type => :base do
|
|
|
12
13
|
described_class.new('Repos').should be_a Github::Repos
|
|
13
14
|
end
|
|
14
15
|
end
|
|
16
|
+
|
|
17
|
+
context '#create_instance' do
|
|
18
|
+
it 'sets api client' do
|
|
19
|
+
instance = Github::Issues::Labels.new
|
|
20
|
+
Github.should_receive(:api_client=).twice().and_return instance
|
|
21
|
+
described_class.create_instance('Issues::Labels', {})
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context '#convert_to_constant' do
|
|
26
|
+
it 'knows how to convert nested classes' do
|
|
27
|
+
described_class.convert_to_constant('Issues::Labels').
|
|
28
|
+
should == Github::Issues::Labels
|
|
29
|
+
end
|
|
30
|
+
end
|
|
15
31
|
end # Github::ApiFactory
|
|
@@ -15,6 +15,8 @@ describe Github::Authorizations do
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
describe "authorizations" do
|
|
18
|
+
it { github.authorizations.should respond_to :all }
|
|
19
|
+
|
|
18
20
|
context "resource found" do
|
|
19
21
|
before do
|
|
20
22
|
stub_get("/authorizations", "https://#{basic_auth}@api.github.com").
|
|
@@ -24,33 +26,33 @@ describe Github::Authorizations do
|
|
|
24
26
|
|
|
25
27
|
it "should fail to get resource without basic authentication" do
|
|
26
28
|
reset_authentication_for github
|
|
27
|
-
expect { github.oauth.
|
|
29
|
+
expect { github.oauth.list }.to raise_error(ArgumentError)
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
it "should get the resources" do
|
|
31
|
-
github.oauth.
|
|
33
|
+
github.oauth.list
|
|
32
34
|
a_get("/authorizations", "https://#{basic_auth}@api.github.com").should have_been_made
|
|
33
35
|
end
|
|
34
36
|
|
|
35
37
|
it "should return array of resources" do
|
|
36
|
-
authorizations = github.oauth.
|
|
38
|
+
authorizations = github.oauth.list
|
|
37
39
|
authorizations.should be_an Array
|
|
38
40
|
authorizations.should have(1).items
|
|
39
41
|
end
|
|
40
42
|
|
|
41
43
|
it "should be a mash type" do
|
|
42
|
-
authorizations = github.oauth.
|
|
44
|
+
authorizations = github.oauth.list
|
|
43
45
|
authorizations.first.should be_a Hashie::Mash
|
|
44
46
|
end
|
|
45
47
|
|
|
46
48
|
it "should get authorization information" do
|
|
47
|
-
authorizations = github.oauth.
|
|
49
|
+
authorizations = github.oauth.list
|
|
48
50
|
authorizations.first.token.should == 'abc123'
|
|
49
51
|
end
|
|
50
52
|
|
|
51
53
|
it "should yield to a block" do
|
|
52
|
-
github.oauth.should_receive(:
|
|
53
|
-
github.oauth.
|
|
54
|
+
github.oauth.should_receive(:list).and_yield('web')
|
|
55
|
+
github.oauth.list { |param| 'web' }
|
|
54
56
|
end
|
|
55
57
|
end
|
|
56
58
|
|
|
@@ -61,12 +63,12 @@ describe Github::Authorizations do
|
|
|
61
63
|
end
|
|
62
64
|
|
|
63
65
|
it "should return 404 with a message 'Not Found'" do
|
|
64
|
-
expect { github.oauth.
|
|
66
|
+
expect { github.oauth.list }.to raise_error(Github::Error::NotFound)
|
|
65
67
|
end
|
|
66
68
|
end
|
|
67
69
|
end # authorizations
|
|
68
70
|
|
|
69
|
-
describe "
|
|
71
|
+
describe "#get" do
|
|
70
72
|
let(:authorization_id) { 1 }
|
|
71
73
|
|
|
72
74
|
context "resource found" do
|
|
@@ -76,22 +78,22 @@ describe Github::Authorizations do
|
|
|
76
78
|
end
|
|
77
79
|
|
|
78
80
|
it "should fail to get resource without authorization id" do
|
|
79
|
-
expect { github.oauth.
|
|
81
|
+
expect { github.oauth.get nil }.to raise_error(ArgumentError)
|
|
80
82
|
end
|
|
81
83
|
|
|
82
84
|
it "should get the resource" do
|
|
83
|
-
github.oauth.
|
|
85
|
+
github.oauth.get authorization_id
|
|
84
86
|
a_get("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").should have_been_made
|
|
85
87
|
end
|
|
86
88
|
|
|
87
89
|
it "should get authorization information" do
|
|
88
|
-
authorization = github.oauth.
|
|
90
|
+
authorization = github.oauth.get authorization_id
|
|
89
91
|
authorization.id.should == authorization_id
|
|
90
92
|
authorization.token.should == 'abc123'
|
|
91
93
|
end
|
|
92
94
|
|
|
93
95
|
it "should return mash" do
|
|
94
|
-
authorization = github.oauth.
|
|
96
|
+
authorization = github.oauth.get authorization_id
|
|
95
97
|
authorization.should be_a Hashie::Mash
|
|
96
98
|
end
|
|
97
99
|
end
|
|
@@ -104,20 +106,20 @@ describe Github::Authorizations do
|
|
|
104
106
|
|
|
105
107
|
it "should fail to retrive resource" do
|
|
106
108
|
expect {
|
|
107
|
-
github.oauth.
|
|
109
|
+
github.oauth.get authorization_id
|
|
108
110
|
}.to raise_error(Github::Error::NotFound)
|
|
109
111
|
end
|
|
110
112
|
end
|
|
111
|
-
end #
|
|
113
|
+
end # list
|
|
112
114
|
|
|
113
|
-
describe "
|
|
115
|
+
describe "#create" do
|
|
114
116
|
let(:inputs) { { :scopes => ['repo'] } }
|
|
115
117
|
|
|
116
118
|
context "resouce created" do
|
|
117
119
|
|
|
118
120
|
it "should fail to get resource without basic authentication" do
|
|
119
121
|
reset_authentication_for github
|
|
120
|
-
expect { github.oauth.
|
|
122
|
+
expect { github.oauth.create }.to raise_error(ArgumentError)
|
|
121
123
|
end
|
|
122
124
|
|
|
123
125
|
before do
|
|
@@ -126,17 +128,17 @@ describe Github::Authorizations do
|
|
|
126
128
|
end
|
|
127
129
|
|
|
128
130
|
it "should create resource successfully" do
|
|
129
|
-
github.oauth.
|
|
131
|
+
github.oauth.create inputs
|
|
130
132
|
a_post("/authorizations", "https://#{basic_auth}@api.github.com").with(inputs).should have_been_made
|
|
131
133
|
end
|
|
132
134
|
|
|
133
135
|
it "should return the resource" do
|
|
134
|
-
authorization = github.oauth.
|
|
136
|
+
authorization = github.oauth.create inputs
|
|
135
137
|
authorization.should be_a Hashie::Mash
|
|
136
138
|
end
|
|
137
139
|
|
|
138
140
|
it "should get the authorization information" do
|
|
139
|
-
authorization = github.oauth.
|
|
141
|
+
authorization = github.oauth.create inputs
|
|
140
142
|
authorization.token.should == 'abc123'
|
|
141
143
|
end
|
|
142
144
|
end
|
|
@@ -150,13 +152,13 @@ describe Github::Authorizations do
|
|
|
150
152
|
|
|
151
153
|
it "should fail to retrieve resource" do
|
|
152
154
|
expect {
|
|
153
|
-
github.oauth.
|
|
155
|
+
github.oauth.create inputs
|
|
154
156
|
}.to raise_error(Github::Error::NotFound)
|
|
155
157
|
end
|
|
156
158
|
end
|
|
157
|
-
end #
|
|
159
|
+
end # create
|
|
158
160
|
|
|
159
|
-
describe "
|
|
161
|
+
describe "#update" do
|
|
160
162
|
let(:authorization_id) { 1 }
|
|
161
163
|
let(:inputs) { { :add_scopes => ['repo'] } }
|
|
162
164
|
|
|
@@ -164,7 +166,7 @@ describe Github::Authorizations do
|
|
|
164
166
|
|
|
165
167
|
it "should fail to get resource without basic authentication" do
|
|
166
168
|
reset_authentication_for github
|
|
167
|
-
expect { github.oauth.
|
|
169
|
+
expect { github.oauth.update }.to raise_error(ArgumentError)
|
|
168
170
|
end
|
|
169
171
|
|
|
170
172
|
before do
|
|
@@ -173,17 +175,17 @@ describe Github::Authorizations do
|
|
|
173
175
|
end
|
|
174
176
|
|
|
175
177
|
it "should update resource successfully" do
|
|
176
|
-
github.oauth.
|
|
178
|
+
github.oauth.update authorization_id, inputs
|
|
177
179
|
a_patch("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").with(inputs).should have_been_made
|
|
178
180
|
end
|
|
179
181
|
|
|
180
182
|
it "should return the resource" do
|
|
181
|
-
authorization = github.oauth.
|
|
183
|
+
authorization = github.oauth.update authorization_id, inputs
|
|
182
184
|
authorization.should be_a Hashie::Mash
|
|
183
185
|
end
|
|
184
186
|
|
|
185
187
|
it "should get the authorization information" do
|
|
186
|
-
authorization = github.oauth.
|
|
188
|
+
authorization = github.oauth.update authorization_id, inputs
|
|
187
189
|
authorization.token.should == 'abc123'
|
|
188
190
|
end
|
|
189
191
|
end
|
|
@@ -197,13 +199,13 @@ describe Github::Authorizations do
|
|
|
197
199
|
|
|
198
200
|
it "should fail to retrieve resource" do
|
|
199
201
|
expect {
|
|
200
|
-
github.oauth.
|
|
202
|
+
github.oauth.update authorization_id, inputs
|
|
201
203
|
}.to raise_error(Github::Error::NotFound)
|
|
202
204
|
end
|
|
203
205
|
end
|
|
204
|
-
end #
|
|
206
|
+
end # update
|
|
205
207
|
|
|
206
|
-
describe "
|
|
208
|
+
describe "#delete" do
|
|
207
209
|
let(:authorization_id) { 1 }
|
|
208
210
|
let(:inputs) { { :add_scopes => ['repo'] } }
|
|
209
211
|
|
|
@@ -211,7 +213,7 @@ describe Github::Authorizations do
|
|
|
211
213
|
|
|
212
214
|
it "should fail to get resource without basic authentication" do
|
|
213
215
|
reset_authentication_for github
|
|
214
|
-
expect { github.oauth.
|
|
216
|
+
expect { github.oauth.delete nil }.to raise_error(ArgumentError)
|
|
215
217
|
end
|
|
216
218
|
|
|
217
219
|
before do
|
|
@@ -220,7 +222,7 @@ describe Github::Authorizations do
|
|
|
220
222
|
end
|
|
221
223
|
|
|
222
224
|
it "should delete resource successfully" do
|
|
223
|
-
github.oauth.
|
|
225
|
+
github.oauth.delete authorization_id
|
|
224
226
|
a_delete("/authorizations/#{authorization_id}", "https://#{basic_auth}@api.github.com").should have_been_made
|
|
225
227
|
end
|
|
226
228
|
end
|
|
@@ -234,10 +236,10 @@ describe Github::Authorizations do
|
|
|
234
236
|
|
|
235
237
|
it "should fail to retrieve resource" do
|
|
236
238
|
expect {
|
|
237
|
-
github.oauth.
|
|
239
|
+
github.oauth.delete authorization_id
|
|
238
240
|
}.to raise_error(Github::Error::NotFound)
|
|
239
241
|
end
|
|
240
242
|
end
|
|
241
|
-
end #
|
|
243
|
+
end # delete
|
|
242
244
|
|
|
243
245
|
end # Github::Authorizations
|