github_api 0.4.6 → 0.4.7
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/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
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe Github::Repos::Forks
|
|
3
|
+
describe Github::Repos::Forks do
|
|
4
|
+
let(:github) { Github.new }
|
|
5
|
+
let(:user) { 'peter-murach' }
|
|
6
|
+
let(:repo) { 'github' }
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
after { github.user, github.repo, github.oauth_token = nil, nil, nil }
|
|
6
9
|
|
|
10
|
+
describe "forks" do
|
|
7
11
|
it { github.repos.should respond_to :forks }
|
|
8
12
|
it { github.repos.should respond_to :repo_forks }
|
|
9
13
|
it { github.repos.should respond_to :repository_forks }
|
|
@@ -15,7 +19,6 @@ describe Github::Repos::Forks, :type => :base do
|
|
|
15
19
|
end
|
|
16
20
|
|
|
17
21
|
it "should fail to get resource without username" do
|
|
18
|
-
github.user, github.repo = nil, nil
|
|
19
22
|
expect { github.repos.forks }.to raise_error(ArgumentError)
|
|
20
23
|
end
|
|
21
24
|
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
|
-
describe Github::Repos::Hooks
|
|
5
|
+
describe Github::Repos::Hooks do
|
|
6
|
+
let(:github) { Github.new }
|
|
7
|
+
let(:user) { 'peter-murach' }
|
|
8
|
+
let(:repo) { 'github' }
|
|
9
|
+
|
|
10
|
+
after { github.user, github.repo, github.oauth_token = nil, nil, nil }
|
|
4
11
|
|
|
5
12
|
it { described_class::VALID_HOOK_PARAM_NAMES.should_not be_nil }
|
|
6
13
|
it { described_class::VALID_HOOK_PARAM_VALUES.should_not be_nil }
|
|
@@ -143,13 +150,13 @@ describe Github::Repos::Hooks, :type => :base do
|
|
|
143
150
|
it "should fail to create resource if 'name' input is missing" do
|
|
144
151
|
expect {
|
|
145
152
|
github.repos.create_hook user, repo, inputs.except(:name)
|
|
146
|
-
}.to raise_error(
|
|
153
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
147
154
|
end
|
|
148
155
|
|
|
149
156
|
it "should failt to create resource if 'config' input is missing" do
|
|
150
157
|
expect {
|
|
151
158
|
github.repos.create_hook user, repo, inputs.except(:config)
|
|
152
|
-
}.to raise_error(
|
|
159
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
153
160
|
end
|
|
154
161
|
|
|
155
162
|
it "should create resource successfully" do
|
|
@@ -214,7 +221,7 @@ describe Github::Repos::Hooks, :type => :base do
|
|
|
214
221
|
it "should fail to edit resource without 'name' parameter" do
|
|
215
222
|
expect{
|
|
216
223
|
github.repos.edit_hook user, repo, inputs.except(:name)
|
|
217
|
-
}.to raise_error(
|
|
224
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
218
225
|
end
|
|
219
226
|
|
|
220
227
|
it "should fail to edit resource without 'hook_id'" do
|
|
@@ -226,12 +233,13 @@ describe Github::Repos::Hooks, :type => :base do
|
|
|
226
233
|
it "should fail to edit resource without 'config' parameter" do
|
|
227
234
|
expect {
|
|
228
235
|
github.repos.edit_hook user, repo, hook_id, inputs.except(:config)
|
|
229
|
-
}.to raise_error(
|
|
236
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
230
237
|
end
|
|
231
238
|
|
|
232
239
|
it "should edit the resource" do
|
|
233
240
|
github.repos.edit_hook user, repo, hook_id, inputs
|
|
234
|
-
a_patch("/repos/#{user}/#{repo}/hooks/#{hook_id}").
|
|
241
|
+
a_patch("/repos/#{user}/#{repo}/hooks/#{hook_id}").
|
|
242
|
+
with(inputs).should have_been_made
|
|
235
243
|
end
|
|
236
244
|
|
|
237
245
|
it "should return resource" do
|
|
@@ -243,7 +251,6 @@ describe Github::Repos::Hooks, :type => :base do
|
|
|
243
251
|
hook = github.repos.edit_hook user, repo, hook_id, inputs
|
|
244
252
|
hook.name.should == 'web'
|
|
245
253
|
end
|
|
246
|
-
|
|
247
254
|
end
|
|
248
255
|
|
|
249
256
|
context "failed to edit resource" do
|
|
@@ -330,7 +337,6 @@ describe Github::Repos::Hooks, :type => :base do
|
|
|
330
337
|
before do
|
|
331
338
|
stub_post("/repos/#{user}/#{repo}/hooks/#{hook_id}/test").
|
|
332
339
|
to_return(:body => '', :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
333
|
-
|
|
334
340
|
end
|
|
335
341
|
|
|
336
342
|
it "should fail to find resource" do
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe Github::Repos::Keys
|
|
3
|
+
describe Github::Repos::Keys do
|
|
4
|
+
let(:github) { Github.new }
|
|
5
|
+
let(:user) { 'peter-murach' }
|
|
6
|
+
let(:repo) { 'github' }
|
|
7
|
+
|
|
8
|
+
after { github.user, github.repo, github.oauth_token = nil, nil, nil }
|
|
4
9
|
|
|
5
10
|
it { described_class::VALID_KEY_PARAM_NAMES.should_not be_nil }
|
|
6
11
|
|
|
@@ -12,7 +17,6 @@ describe Github::Repos::Keys, :type => :base do
|
|
|
12
17
|
end
|
|
13
18
|
|
|
14
19
|
it "should fail to get resource without username" do
|
|
15
|
-
github.user, github.repo = nil, nil
|
|
16
20
|
expect { github.repos.keys }.to raise_error(ArgumentError)
|
|
17
21
|
end
|
|
18
22
|
|
|
@@ -45,7 +49,6 @@ describe Github::Repos::Keys, :type => :base do
|
|
|
45
49
|
}.to raise_error(Github::Error::NotFound)
|
|
46
50
|
end
|
|
47
51
|
end
|
|
48
|
-
|
|
49
52
|
end
|
|
50
53
|
|
|
51
54
|
describe "get_key" do
|
|
@@ -100,13 +103,13 @@ describe Github::Repos::Keys, :type => :base do
|
|
|
100
103
|
it "should fail to create resource if 'title' input is missing" do
|
|
101
104
|
expect {
|
|
102
105
|
github.repos.create_key(user, repo, :key => 'ssh-rsa AAA...')
|
|
103
|
-
}.to raise_error(
|
|
106
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
104
107
|
end
|
|
105
108
|
|
|
106
109
|
it "should fail to create resource if 'key' input is missing" do
|
|
107
110
|
expect {
|
|
108
111
|
github.repos.create_key(user, repo, :title => 'octocat@octomac')
|
|
109
|
-
}.to raise_error(
|
|
112
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
110
113
|
end
|
|
111
114
|
|
|
112
115
|
it "should create the resource" do
|
|
@@ -168,7 +171,6 @@ describe Github::Repos::Keys, :type => :base do
|
|
|
168
171
|
}.to raise_error(Github::Error::NotFound)
|
|
169
172
|
end
|
|
170
173
|
end
|
|
171
|
-
|
|
172
174
|
end
|
|
173
175
|
|
|
174
176
|
describe "delete_key" do
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe Github::Repos::PubSubHubbub do
|
|
4
|
-
|
|
5
4
|
let(:github) { Github.new }
|
|
6
5
|
let(:topic) { "https://github.com/peter-murach/github/events/push"}
|
|
7
6
|
let(:callback) { "github://campfire?subdomain=github&room=Commits&token=abc123" }
|
|
@@ -15,6 +14,8 @@ describe Github::Repos::PubSubHubbub do
|
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
|
|
17
|
+
after { github.user, github.repo, github.oauth_token = nil, nil, nil }
|
|
18
|
+
|
|
18
19
|
describe "subscribe" do
|
|
19
20
|
context "success" do
|
|
20
21
|
before do
|
|
@@ -23,10 +24,6 @@ describe Github::Repos::PubSubHubbub do
|
|
|
23
24
|
to_return(:body => '', :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
24
25
|
end
|
|
25
26
|
|
|
26
|
-
after do
|
|
27
|
-
github.oauth_token = nil
|
|
28
|
-
end
|
|
29
|
-
|
|
30
27
|
it "should subscribe to hub" do
|
|
31
28
|
github.repos.subscribe topic, callback
|
|
32
29
|
a_post("/hub?access_token=#{OAUTH_TOKEN}").with(hub_inputs).should have_been_made
|
|
@@ -46,7 +43,7 @@ describe Github::Repos::PubSubHubbub do
|
|
|
46
43
|
}.to raise_error(Github::Error::NotFound)
|
|
47
44
|
end
|
|
48
45
|
end
|
|
49
|
-
end
|
|
46
|
+
end # subscribe
|
|
50
47
|
|
|
51
48
|
describe "unsubscribe" do
|
|
52
49
|
context "success" do
|
|
@@ -56,10 +53,6 @@ describe Github::Repos::PubSubHubbub do
|
|
|
56
53
|
to_return(:body => '', :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
57
54
|
end
|
|
58
55
|
|
|
59
|
-
after do
|
|
60
|
-
github.oauth_token = nil
|
|
61
|
-
end
|
|
62
|
-
|
|
63
56
|
it "should subscribe to hub" do
|
|
64
57
|
github.repos.unsubscribe topic, callback
|
|
65
58
|
a_post("/hub?access_token=#{OAUTH_TOKEN}").with(hub_inputs).should have_been_made
|
|
@@ -79,5 +72,5 @@ describe Github::Repos::PubSubHubbub do
|
|
|
79
72
|
}.to raise_error(Github::Error::NotFound)
|
|
80
73
|
end
|
|
81
74
|
end
|
|
82
|
-
end
|
|
75
|
+
end # unsubscribe
|
|
83
76
|
end # Github::Repos::PubSubHubbub
|
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
|
-
describe Github::Repos::Watching
|
|
5
|
+
describe Github::Repos::Watching do
|
|
6
|
+
let(:github) { Github.new }
|
|
7
|
+
let(:user) { 'peter-murach' }
|
|
8
|
+
let(:repo) { 'github' }
|
|
9
|
+
|
|
10
|
+
after { github.user, github.repo, github.oauth_token = nil, nil, nil }
|
|
6
11
|
|
|
7
12
|
describe "watchers" do
|
|
8
13
|
before do
|
|
@@ -12,7 +17,6 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
12
17
|
end
|
|
13
18
|
|
|
14
19
|
it "should fail to get resource without username" do
|
|
15
|
-
github.user, github.repo = nil, nil
|
|
16
20
|
expect { github.repos.watchers }.to raise_error(ArgumentError)
|
|
17
21
|
end
|
|
18
22
|
|
|
@@ -56,19 +60,14 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
56
60
|
end
|
|
57
61
|
end
|
|
58
62
|
|
|
59
|
-
describe "
|
|
60
|
-
|
|
63
|
+
describe "#watched" do
|
|
61
64
|
context "if user unauthenticated" do
|
|
62
|
-
before
|
|
63
|
-
github.oauth_token = nil
|
|
64
|
-
WebMock.reset!
|
|
65
|
-
end
|
|
65
|
+
before { github.oauth_token = nil }
|
|
66
66
|
|
|
67
67
|
it "should fail to get resource without username " do
|
|
68
68
|
stub_get("/user/watched").
|
|
69
69
|
to_return(:body => fixture("repos/watched.json"), :status => 401, :headers => {})
|
|
70
70
|
expect {
|
|
71
|
-
github.user = nil
|
|
72
71
|
github.repos.watched
|
|
73
72
|
}.to raise_error(Github::Error::Unauthorized)
|
|
74
73
|
end
|
|
@@ -83,15 +82,13 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
83
82
|
|
|
84
83
|
context "if user authenticated" do
|
|
85
84
|
before do
|
|
86
|
-
github.user = nil
|
|
87
85
|
github.oauth_token = OAUTH_TOKEN
|
|
88
86
|
stub_get("/user/watched").
|
|
89
87
|
with(:query => {:access_token => OAUTH_TOKEN}).
|
|
90
88
|
to_return(:body => fixture("repos/watched.json"), :status => 200, :headers => {})
|
|
91
89
|
end
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
end
|
|
90
|
+
|
|
91
|
+
after { github.oauth_token = nil }
|
|
95
92
|
|
|
96
93
|
it "should get the resources" do
|
|
97
94
|
github.repos.watched
|
|
@@ -111,16 +108,12 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
111
108
|
watched.first.owner.login.should == 'octocat'
|
|
112
109
|
end
|
|
113
110
|
end
|
|
114
|
-
end
|
|
111
|
+
end # watched
|
|
115
112
|
|
|
116
113
|
describe "watching?" do
|
|
117
|
-
|
|
118
114
|
context "with username ane reponame passed" do
|
|
119
|
-
|
|
120
115
|
context "this repo is being watched by the user"
|
|
121
116
|
before do
|
|
122
|
-
github.oauth_token = nil
|
|
123
|
-
github.user = nil
|
|
124
117
|
stub_get("/user/watched/#{user}/#{repo}").
|
|
125
118
|
to_return(:body => "", :status => 404, :headers => {:user_agent => github.user_agent})
|
|
126
119
|
end
|
|
@@ -136,7 +129,6 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
136
129
|
watching = github.repos.watching? user, repo
|
|
137
130
|
watching.should be_true
|
|
138
131
|
end
|
|
139
|
-
|
|
140
132
|
end
|
|
141
133
|
|
|
142
134
|
context "without username and reponame passed" do
|
|
@@ -144,24 +136,19 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
144
136
|
expect { github.repos.watching?(nil, nil) }.to raise_error(ArgumentError)
|
|
145
137
|
end
|
|
146
138
|
end
|
|
147
|
-
end
|
|
139
|
+
end # watching?
|
|
148
140
|
|
|
149
141
|
describe "start_watching" do
|
|
150
|
-
|
|
151
142
|
context "user authenticated" do
|
|
152
|
-
|
|
153
143
|
context "with correct information" do
|
|
154
144
|
before do
|
|
155
|
-
github.user, github.repo = nil, nil
|
|
156
145
|
github.oauth_token = OAUTH_TOKEN
|
|
157
146
|
stub_put("/user/watched/#{user}/#{repo}").
|
|
158
147
|
with(:query => {:access_token => OAUTH_TOKEN}).
|
|
159
148
|
to_return(:body => "", :status => 204, :headers => {})
|
|
160
149
|
end
|
|
161
150
|
|
|
162
|
-
after
|
|
163
|
-
github.oauth_token = nil # ensure authentication is reset
|
|
164
|
-
end
|
|
151
|
+
after { github.oauth_token = nil }
|
|
165
152
|
|
|
166
153
|
it "should successfully watch a repo" do
|
|
167
154
|
github.repos.start_watching(user, repo)
|
|
@@ -170,10 +157,6 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
170
157
|
should have_been_made
|
|
171
158
|
end
|
|
172
159
|
end
|
|
173
|
-
|
|
174
|
-
context "without correct information" do
|
|
175
|
-
|
|
176
|
-
end
|
|
177
160
|
end
|
|
178
161
|
|
|
179
162
|
context "user unauthenticated" do
|
|
@@ -186,12 +169,10 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
186
169
|
}.to raise_error(Github::Error::Unauthorized)
|
|
187
170
|
end
|
|
188
171
|
end
|
|
189
|
-
end
|
|
172
|
+
end # start_watching
|
|
190
173
|
|
|
191
174
|
describe "stop_watching" do
|
|
192
|
-
|
|
193
175
|
context "user authenticated" do
|
|
194
|
-
|
|
195
176
|
context "with correct information" do
|
|
196
177
|
before do
|
|
197
178
|
github.user, github.repo = nil, nil
|
|
@@ -205,10 +186,6 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
205
186
|
a_delete("/user/watched/#{user}/#{repo}?access_token=#{OAUTH_TOKEN}").should have_been_made
|
|
206
187
|
end
|
|
207
188
|
end
|
|
208
|
-
|
|
209
|
-
context "without correct information" do
|
|
210
|
-
|
|
211
|
-
end
|
|
212
189
|
end
|
|
213
190
|
|
|
214
191
|
context "user unauthenticated" do
|
|
@@ -221,6 +198,6 @@ describe Github::Repos::Watching, :type => :base do
|
|
|
221
198
|
}.to raise_error(Github::Error::Unauthorized)
|
|
222
199
|
end
|
|
223
200
|
end
|
|
224
|
-
end
|
|
201
|
+
end # stop_watching
|
|
225
202
|
|
|
226
203
|
end # Github::Respos::Watching
|
data/spec/github/repos_spec.rb
CHANGED
|
@@ -1,25 +1,32 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
|
-
describe Github::Repos
|
|
5
|
+
describe Github::Repos do
|
|
6
|
+
let(:github) { Github.new }
|
|
7
|
+
let(:user) { 'peter-murach' }
|
|
8
|
+
let(:repo) { 'github' }
|
|
9
|
+
|
|
10
|
+
after { reset_authentication_for github }
|
|
4
11
|
|
|
5
12
|
describe "branches" do
|
|
6
13
|
context "resource found" do
|
|
7
14
|
before do
|
|
8
15
|
stub_get("/repos/#{user}/#{repo}/branches").
|
|
9
|
-
to_return(:body => fixture('repos/branches.json'),
|
|
16
|
+
to_return(:body => fixture('repos/branches.json'),
|
|
17
|
+
:status => 200,
|
|
18
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
|
10
19
|
end
|
|
11
20
|
|
|
12
21
|
it "should raise error when no user/repo parameters" do
|
|
13
|
-
github.user, github.repo = nil, nil
|
|
14
22
|
expect {
|
|
15
|
-
github.repos.branches
|
|
23
|
+
github.repos.branches nil, repo
|
|
16
24
|
}.to raise_error(ArgumentError, /\[user\] parameter cannot be nil/)
|
|
17
25
|
end
|
|
18
26
|
|
|
19
27
|
it "should raise error when no repository" do
|
|
20
|
-
github.user, github.repo = nil, nil
|
|
21
28
|
expect {
|
|
22
|
-
github.repos.branches user
|
|
29
|
+
github.repos.branches user, nil
|
|
23
30
|
}.to raise_error(ArgumentError, /\[repo\] parameter cannot be nil/)
|
|
24
31
|
end
|
|
25
32
|
|
|
@@ -40,8 +47,9 @@ describe Github::Repos, :type => :base do
|
|
|
40
47
|
end
|
|
41
48
|
|
|
42
49
|
it "should yield to a block" do
|
|
43
|
-
|
|
44
|
-
github.repos.branches(user, repo)
|
|
50
|
+
block = lambda { |el| repo }
|
|
51
|
+
github.repos.should_receive(:branches).with(user, repo).and_yield repo
|
|
52
|
+
github.repos.branches(user, repo, &block)
|
|
45
53
|
end
|
|
46
54
|
end
|
|
47
55
|
|
|
@@ -68,14 +76,12 @@ describe Github::Repos, :type => :base do
|
|
|
68
76
|
end
|
|
69
77
|
|
|
70
78
|
it "should raise error when no user/repo parameters" do
|
|
71
|
-
github.user, github.repo = nil, nil
|
|
72
79
|
expect {
|
|
73
80
|
github.repos.contributors
|
|
74
81
|
}.to raise_error(ArgumentError, /\[user\] parameter cannot be nil/)
|
|
75
82
|
end
|
|
76
83
|
|
|
77
84
|
it "should raise error when no repository" do
|
|
78
|
-
github.user, github.repo = nil, nil
|
|
79
85
|
expect {
|
|
80
86
|
github.repos.contributors user
|
|
81
87
|
}.to raise_error(ArgumentError, /\[repo\] parameter cannot be nil/)
|
|
@@ -123,20 +129,17 @@ describe Github::Repos, :type => :base do
|
|
|
123
129
|
|
|
124
130
|
context "resource created successfully for the authenticated user" do
|
|
125
131
|
before do
|
|
126
|
-
github.user = nil
|
|
127
132
|
github.oauth_token = OAUTH_TOKEN
|
|
128
133
|
stub_post("/user/repos?access_token=#{OAUTH_TOKEN}").with(inputs).
|
|
129
134
|
to_return(:body => fixture('repos/repo.json'), :status => 201,:headers => {:content_type => "application/json; charset=utf-8"} )
|
|
130
135
|
end
|
|
131
136
|
|
|
132
|
-
after
|
|
133
|
-
github.user, github.oauth_token = nil, nil
|
|
134
|
-
end
|
|
137
|
+
after { github.oauth_token = nil }
|
|
135
138
|
|
|
136
139
|
it "should faile to create resource if 'name' inputs is missing" do
|
|
137
140
|
expect {
|
|
138
141
|
github.repos.create_repo inputs.except(:name)
|
|
139
|
-
}.to raise_error(
|
|
142
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
140
143
|
end
|
|
141
144
|
|
|
142
145
|
it "should create resource" do
|
|
@@ -195,7 +198,14 @@ describe Github::Repos, :type => :base do
|
|
|
195
198
|
end
|
|
196
199
|
|
|
197
200
|
describe "edit_repo" do
|
|
198
|
-
let(:inputs)
|
|
201
|
+
let(:inputs) do
|
|
202
|
+
{ :name => 'web',
|
|
203
|
+
:description => "This is your first repo",
|
|
204
|
+
:homepage => "https://github.com",
|
|
205
|
+
:public => true,
|
|
206
|
+
:has_issues => true,
|
|
207
|
+
:has_wiki => true }
|
|
208
|
+
end
|
|
199
209
|
|
|
200
210
|
context "resource edited successfully" do
|
|
201
211
|
before do
|
|
@@ -204,14 +214,14 @@ describe Github::Repos, :type => :base do
|
|
|
204
214
|
end
|
|
205
215
|
|
|
206
216
|
it "should fail to edit without 'user/repo' parameters" do
|
|
207
|
-
github.user, github.repo = nil, nil
|
|
217
|
+
# github.user, github.repo = nil, nil
|
|
208
218
|
expect { github.repos.edit_repo }.to raise_error(ArgumentError)
|
|
209
219
|
end
|
|
210
220
|
|
|
211
221
|
it "should fail to edit resource without 'name' parameter" do
|
|
212
222
|
expect{
|
|
213
223
|
github.repos.edit_hook user, repo, inputs.except(:name)
|
|
214
|
-
}.to raise_error(
|
|
224
|
+
}.to raise_error(Github::Error::RequiredParams)
|
|
215
225
|
end
|
|
216
226
|
|
|
217
227
|
it "should edit the resource" do
|
|
@@ -228,14 +238,12 @@ describe Github::Repos, :type => :base do
|
|
|
228
238
|
repository = github.repos.edit_repo user, repo, inputs
|
|
229
239
|
repository.name.should == 'Hello-World'
|
|
230
240
|
end
|
|
231
|
-
|
|
232
241
|
end
|
|
233
242
|
|
|
234
243
|
context "failed to edit resource" do
|
|
235
244
|
before do
|
|
236
245
|
stub_patch("/repos/#{user}/#{repo}").with(inputs).
|
|
237
246
|
to_return(:body => fixture("repos/repo.json"), :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
238
|
-
|
|
239
247
|
end
|
|
240
248
|
|
|
241
249
|
it "should fail to find resource" do
|
|
@@ -244,7 +252,6 @@ describe Github::Repos, :type => :base do
|
|
|
244
252
|
}.to raise_error(Github::Error::NotFound)
|
|
245
253
|
end
|
|
246
254
|
end
|
|
247
|
-
|
|
248
255
|
end # edit_repo
|
|
249
256
|
|
|
250
257
|
describe "get_repo" do
|
|
@@ -295,7 +302,6 @@ describe Github::Repos, :type => :base do
|
|
|
295
302
|
github.repos.get_repo user, repo
|
|
296
303
|
}.to raise_error(Github::Error::NotFound)
|
|
297
304
|
end
|
|
298
|
-
|
|
299
305
|
end
|
|
300
306
|
end # get_repo
|
|
301
307
|
|
|
@@ -307,14 +313,14 @@ describe Github::Repos, :type => :base do
|
|
|
307
313
|
end
|
|
308
314
|
|
|
309
315
|
it "should raise error when no user/repo parameters" do
|
|
310
|
-
github.user, github.repo = nil, nil
|
|
316
|
+
# github.user, github.repo = nil, nil
|
|
311
317
|
expect {
|
|
312
318
|
github.repos.languages
|
|
313
319
|
}.to raise_error(ArgumentError, /\[user\] parameter cannot be nil/)
|
|
314
320
|
end
|
|
315
321
|
|
|
316
322
|
it "should raise error when no repository" do
|
|
317
|
-
github.user, github.repo = nil, nil
|
|
323
|
+
# github.user, github.repo = nil, nil
|
|
318
324
|
expect {
|
|
319
325
|
github.repos.languages user
|
|
320
326
|
}.to raise_error(ArgumentError, /\[repo\] parameter cannot be nil/)
|
|
@@ -346,7 +352,6 @@ describe Github::Repos, :type => :base do
|
|
|
346
352
|
before do
|
|
347
353
|
stub_get("/repos/#{user}/#{repo}/languages").
|
|
348
354
|
to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
349
|
-
|
|
350
355
|
end
|
|
351
356
|
|
|
352
357
|
it "should fail to get resource" do
|
|
@@ -360,7 +365,7 @@ describe Github::Repos, :type => :base do
|
|
|
360
365
|
describe "repos" do
|
|
361
366
|
context "resource found for authenticated user" do
|
|
362
367
|
before do
|
|
363
|
-
github.user = nil
|
|
368
|
+
# github.user = nil
|
|
364
369
|
github.oauth_token = OAUTH_TOKEN
|
|
365
370
|
stub_get("/user/repos?access_token=#{OAUTH_TOKEN}").
|
|
366
371
|
to_return(:body => fixture('repos/repos.json'), :status => 200,:headers => {:content_type => "application/json; charset=utf-8"} )
|
|
@@ -368,7 +373,7 @@ describe Github::Repos, :type => :base do
|
|
|
368
373
|
|
|
369
374
|
after do
|
|
370
375
|
github.oauth_token = nil
|
|
371
|
-
github.user, github.repo = nil, nil
|
|
376
|
+
# github.user, github.repo = nil, nil
|
|
372
377
|
end
|
|
373
378
|
|
|
374
379
|
it "fails if user is unauthenticated" do
|
|
@@ -404,7 +409,7 @@ describe Github::Repos, :type => :base do
|
|
|
404
409
|
let(:org) { '37signals' }
|
|
405
410
|
|
|
406
411
|
before do
|
|
407
|
-
github.user = nil
|
|
412
|
+
# github.user = nil
|
|
408
413
|
github.oauth_token = nil
|
|
409
414
|
stub_get("/orgs/#{org}/repos").
|
|
410
415
|
to_return(:body => fixture('repos/repos.json'), :status => 200,:headers => {:content_type => "application/json; charset=utf-8"} )
|
|
@@ -431,16 +436,13 @@ describe Github::Repos, :type => :base do
|
|
|
431
436
|
|
|
432
437
|
context "rosource not found for authenticated user" do
|
|
433
438
|
before do
|
|
434
|
-
github.user = nil
|
|
439
|
+
# github.user = nil
|
|
435
440
|
github.oauth_token = OAUTH_TOKEN
|
|
436
441
|
stub_get("/user/repos?access_token=#{OAUTH_TOKEN}").
|
|
437
442
|
to_return(:body => '', :status => 404,:headers => {:content_type => "application/json; charset=utf-8"} )
|
|
438
443
|
end
|
|
439
444
|
|
|
440
|
-
after
|
|
441
|
-
github.oauth_token = nil
|
|
442
|
-
github.user, github.repo = nil, nil
|
|
443
|
-
end
|
|
445
|
+
after { github.oauth_token = nil }
|
|
444
446
|
|
|
445
447
|
it "fail to find resources" do
|
|
446
448
|
expect { github.repos.repos }.to raise_error(Github::Error::NotFound)
|
|
@@ -456,14 +458,12 @@ describe Github::Repos, :type => :base do
|
|
|
456
458
|
end
|
|
457
459
|
|
|
458
460
|
it "should raise error when no user/repo parameters" do
|
|
459
|
-
github.user, github.repo = nil, nil
|
|
460
461
|
expect {
|
|
461
462
|
github.repos.tags
|
|
462
463
|
}.to raise_error(ArgumentError, /\[user\] parameter cannot be nil/)
|
|
463
464
|
end
|
|
464
465
|
|
|
465
466
|
it "should raise error when no repository" do
|
|
466
|
-
github.user, github.repo = nil, nil
|
|
467
467
|
expect {
|
|
468
468
|
github.repos.tags user
|
|
469
469
|
}.to raise_error(ArgumentError, /\[repo\] parameter cannot be nil/)
|
|
@@ -495,7 +495,6 @@ describe Github::Repos, :type => :base do
|
|
|
495
495
|
before do
|
|
496
496
|
stub_get("/repos/#{user}/#{repo}/tags").
|
|
497
497
|
to_return(:body => fixture('repos/branches.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
498
|
-
|
|
499
498
|
end
|
|
500
499
|
|
|
501
500
|
it "should fail to get resource" do
|
|
@@ -514,14 +513,12 @@ describe Github::Repos, :type => :base do
|
|
|
514
513
|
end
|
|
515
514
|
|
|
516
515
|
it "should raise error when no user/repo parameters" do
|
|
517
|
-
github.user, github.repo = nil, nil
|
|
518
516
|
expect {
|
|
519
517
|
github.repos.teams
|
|
520
518
|
}.to raise_error(ArgumentError, /\[user\] parameter cannot be nil/)
|
|
521
519
|
end
|
|
522
520
|
|
|
523
521
|
it "should raise error when no repository" do
|
|
524
|
-
github.user, github.repo = nil, nil
|
|
525
522
|
expect {
|
|
526
523
|
github.repos.teams user
|
|
527
524
|
}.to raise_error(ArgumentError, /\[repo\] parameter cannot be nil/)
|
|
@@ -553,7 +550,6 @@ describe Github::Repos, :type => :base do
|
|
|
553
550
|
before do
|
|
554
551
|
stub_get("/repos/#{user}/#{repo}/teams").
|
|
555
552
|
to_return(:body => fixture('repos/teams.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
556
|
-
|
|
557
553
|
end
|
|
558
554
|
|
|
559
555
|
it "should fail to get resource" do
|