github_api_v3 0.3.3 → 0.4.0

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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -6
  3. data/lib/github_api_v3/client/feeds.rb +1 -1
  4. data/lib/github_api_v3/client/gists.rb +10 -10
  5. data/lib/github_api_v3/client/issues.rb +8 -8
  6. data/lib/github_api_v3/client/markdown.rb +1 -1
  7. data/lib/github_api_v3/client/oauth.rb +101 -0
  8. data/lib/github_api_v3/client/orgs.rb +22 -22
  9. data/lib/github_api_v3/client/pull_requests.rb +14 -14
  10. data/lib/github_api_v3/client/repos.rb +23 -23
  11. data/lib/github_api_v3/client/stats.rb +5 -5
  12. data/lib/github_api_v3/client/users.rb +30 -20
  13. data/lib/github_api_v3/client.rb +73 -64
  14. data/lib/github_api_v3/error.rb +20 -2
  15. data/lib/github_api_v3/version.rb +1 -1
  16. data/lib/github_api_v3.rb +2 -2
  17. data/spec/cassettes/GitHub_Client_Gists/_create_gist/creates_a_gist.json +1 -1
  18. data/spec/cassettes/GitHub_Client_Gists/_create_gist_comment/creates_the_comment.json +1 -1
  19. data/spec/cassettes/GitHub_Client_Gists/_create_gist_comment/returns_comment_information_after_creation.json +1 -1
  20. data/spec/cassettes/GitHub_Client_Gists/_delete_gist/deletes_a_gist.json +1 -1
  21. data/spec/cassettes/GitHub_Client_Gists/_delete_gist_comment/deletes_the_comment.json +1 -1
  22. data/spec/cassettes/GitHub_Client_Gists/_delete_gist_comment/returns_true_or_false.json +1 -1
  23. data/spec/cassettes/GitHub_Client_Gists/_edit_gist/edits_a_gist.json +1 -1
  24. data/spec/cassettes/GitHub_Client_Gists/_edit_gist_comment/edits_the_comment.json +1 -1
  25. data/spec/cassettes/GitHub_Client_Gists/_edit_gist_comment/returns_comment_information_after_editing.json +1 -1
  26. data/spec/cassettes/GitHub_Client_Gists/_fork_gist/forks_a_gist.json +1 -1
  27. data/spec/cassettes/GitHub_Client_Gists/_fork_gist/returns_false_when_not_found.json +1 -1
  28. data/spec/cassettes/GitHub_Client_Gists/_gist/returns_a_404_when_not_found.json +1 -1
  29. data/spec/cassettes/GitHub_Client_Gists/_gist/returns_gist_information.json +1 -1
  30. data/spec/cassettes/GitHub_Client_Gists/_gist_comment/returns_a_404_when_not_found.json +1 -1
  31. data/spec/cassettes/GitHub_Client_Gists/_gist_comment/returns_a_comment.json +1 -1
  32. data/spec/cassettes/GitHub_Client_Gists/_gist_comments/returns_a_404_when_not_found.json +1 -1
  33. data/spec/cassettes/GitHub_Client_Gists/_gist_comments/returns_a_list_of_comments.json +1 -1
  34. data/spec/cassettes/GitHub_Client_Gists/_gist_starred_/returns_false_when_not_found.json +1 -1
  35. data/spec/cassettes/GitHub_Client_Gists/_gist_starred_/should_return_true_or_false.json +1 -1
  36. data/spec/cassettes/GitHub_Client_Gists/_gists/returns_an_array_of_gists.json +1 -1
  37. data/spec/cassettes/GitHub_Client_Gists/_gists/returns_an_array_of_gists_for_authenticated_user.json +1 -1
  38. data/spec/cassettes/GitHub_Client_Gists/_gists/returns_public_gists_for_unauthenticated_user.json +1 -1
  39. data/spec/cassettes/GitHub_Client_Gists/_star_gist/returns_false_when_not_found.json +1 -1
  40. data/spec/cassettes/GitHub_Client_Gists/_star_gist/stars_a_gist.json +1 -1
  41. data/spec/cassettes/GitHub_Client_Gists/_unstar_gist/returns_false_when_not_found.json +1 -1
  42. data/spec/cassettes/GitHub_Client_Gists/_unstar_gist/unstars_a_gist.json +1 -1
  43. data/spec/cassettes/GitHub_Client_Issues/_issues/returns_an_array_of_issues.json +1 -1
  44. data/spec/cassettes/GitHub_Client_Issues/_issues/returns_the_correct_information.json +1 -1
  45. data/spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_if_using_access_token_authentication.json +1 -0
  46. data/spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_if_using_no_authentication.json +1 -0
  47. data/spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_when_not_found.json +1 -0
  48. data/spec/cassettes/GitHub_Client_OAuth/_authorization/returns_authorization_information.json +1 -0
  49. data/spec/cassettes/GitHub_Client_OAuth/_authorization/returns_the_correct_information.json +1 -0
  50. data/spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_404_if_using_access_token_authentication.json +1 -0
  51. data/spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_404_if_using_no_authentication.json +1 -0
  52. data/spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_list_of_authorizations.json +1 -0
  53. data/spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_the_correct_array.json +1 -0
  54. data/spec/cassettes/GitHub_Client_OAuth/_create_authorization/creates_the_correct_authorization.json +1 -0
  55. data/spec/cassettes/GitHub_Client_OAuth/_create_authorization/returns_authorization_information_hash.json +1 -0
  56. data/spec/cassettes/GitHub_Client_OAuth/_delete_authorization/deletes_the_authorization.json +1 -0
  57. data/spec/cassettes/GitHub_Client_OAuth/_delete_authorization/returns_true.json +1 -0
  58. data/spec/cassettes/GitHub_Client_OAuth/_update_authorization/returns_authorization_information_hash.json +1 -0
  59. data/spec/cassettes/GitHub_Client_OAuth/_update_authorization/updates_the_authorization.json +1 -0
  60. data/spec/cassettes/GitHub_Client_Users/_follows_/returns_false_when_not_following.json +1 -1
  61. data/spec/cassettes/GitHub_Client_Users/_follows_/returns_true_when_following.json +1 -1
  62. data/spec/cassettes/GitHub_Client_Users/_rate_limit/returns_authenticated_rate_limit_information.json +1 -0
  63. data/spec/cassettes/GitHub_Client_Users/_rate_limit/returns_unauthenticated_rate_limit_information.json +1 -0
  64. data/spec/config.sample.yml +3 -1
  65. data/spec/github_api_v3/client/gists_spec.rb +25 -25
  66. data/spec/github_api_v3/client/oauth_spec.rb +87 -0
  67. data/spec/github_api_v3/client/users_spec.rb +16 -0
  68. data/spec/spec_helper.rb +21 -11
  69. metadata +38 -1
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+
3
+ describe GitHub::Client::OAuth do
4
+
5
+ describe '.authorizations', :vcr do
6
+ let(:response) { test_basic_client.authorizations }
7
+
8
+ it 'returns a list of authorizations' do
9
+ response.should be_instance_of Array
10
+ end
11
+
12
+ it 'returns the correct array' do
13
+ response[-1].app.name.should == "GitHub API"
14
+ end
15
+
16
+ it 'returns a 404 if using access token authentication' do
17
+ expect { test_client.authorizations }.to raise_error GitHub::NotFound
18
+ end
19
+
20
+ it 'returns a 404 if using no authentication' do
21
+ expect { GitHub.authorizations }.to raise_error GitHub::NotFound
22
+ end
23
+ end
24
+
25
+ describe '.authorization', :vcr do
26
+ let(:response) { test_basic_client.authorization(3410354) }
27
+
28
+ it 'returns authorization information' do
29
+ response.should be_instance_of Hash
30
+ end
31
+
32
+ it 'returns the correct information' do
33
+ response.id.should == 3410354
34
+ end
35
+
36
+ it 'returns a 404 when not found' do
37
+ expect { test_basic_client.authorization(341035423) }.to raise_error GitHub::NotFound
38
+ end
39
+
40
+ it 'returns a 404 if using access token authentication' do
41
+ expect { test_client.authorization(341035423) }.to raise_error GitHub::NotFound
42
+ end
43
+
44
+ it 'returns a 404 if using no authentication' do
45
+ expect { GitHub.authorization(341035423) }.to raise_error GitHub::NotFound
46
+ end
47
+ end
48
+
49
+ authorization_id = ""
50
+ describe '.create_authorization', :vcr do
51
+ let(:response) { test_basic_client.create_authorization(:note => "Test authorization.", :client_id => test_client_id, :client_secret => test_client_secret) }
52
+
53
+ it 'returns authorization information hash' do
54
+ response.should be_instance_of Hash
55
+ authorization_id = response.id
56
+ end
57
+
58
+ it 'creates the correct authorization' do
59
+ response.app.client_id.should == test_client_id
60
+ end
61
+ end
62
+
63
+ describe '.update_authorization', :vcr do
64
+ let(:response) { test_basic_client.update_authorization(authorization_id, :note => "Updated test authorization.") }
65
+
66
+ it 'returns authorization information hash' do
67
+ response.should be_instance_of Hash
68
+ end
69
+
70
+ it 'updates the authorization' do
71
+ response.note.should == "Updated test authorization."
72
+ end
73
+ end
74
+
75
+ describe '.delete authorization', :vcr do
76
+ let(:response) { test_basic_client.delete_authorization(authorization_id) }
77
+
78
+ it 'returns true' do
79
+ response.should be_true
80
+ end
81
+
82
+ it 'deletes the authorization' do
83
+ expect { test_basic_client.authorization(authorization_id) }.to raise_error GitHub::NotFound
84
+ end
85
+ end
86
+
87
+ end
@@ -179,4 +179,20 @@ describe GitHub::Client::Users do
179
179
  end
180
180
  end
181
181
 
182
+ describe '.rate_limit', :vcr do
183
+ let(:response) { GitHub.rate_limit }
184
+ let(:auth_response) { test_client.rate_limit }
185
+
186
+ it 'returns unauthenticated rate limit information' do
187
+ response.should be_instance_of Hash
188
+ response.rate.limit.should == 60
189
+ end
190
+
191
+ it 'returns authenticated rate limit information' do
192
+ auth_response.should be_instance_of Hash
193
+ auth_response.rate.limit.should == 5000
194
+ end
195
+
196
+ end
197
+
182
198
  end
data/spec/spec_helper.rb CHANGED
@@ -13,15 +13,13 @@ end
13
13
 
14
14
  VCR.configure do |c|
15
15
  c.configure_rspec_metadata!
16
- c.filter_sensitive_data("<TEST_ACCESS_TOKEN>") do
17
- CONFIG['test_access_token']
18
- end
19
- c.filter_sensitive_data("<TEST_LOGIN>") do
20
- CONFIG['test_login']
21
- end
22
- c.filter_sensitive_data("<TEST_PASSWORD>") do
23
- CONFIG['test_password']
24
- end
16
+
17
+ c.filter_sensitive_data("<TEST_ACCESS_TOKEN>") { CONFIG['test_access_token'] }
18
+ c.filter_sensitive_data("<TEST_LOGIN>") { CONFIG['test_login'] }
19
+ c.filter_sensitive_data("<TEST_PASSWORD>") { CONFIG['test_password'] }
20
+ c.filter_sensitive_data("<TEST_CLIENT_ID>") { CONFIG['test_client_id'] }
21
+ c.filter_sensitive_data("<TEST_CLIENT_SECRET") { CONFIG['test_client_secret'] }
22
+
25
23
  c.cassette_library_dir = 'spec/cassettes'
26
24
  c.default_cassette_options = {
27
25
  :serialize_with => :json,
@@ -43,6 +41,18 @@ def test_access_token
43
41
  CONFIG['test_access_token']
44
42
  end
45
43
 
46
- def test_client(login=CONFIG['test_login'], access_token=CONFIG['test_access_token'])
47
- GitHub::Client.new(login: login, access_token: access_token)
44
+ def test_client_id
45
+ CONFIG['test_client_id']
46
+ end
47
+
48
+ def test_client_secret
49
+ CONFIG['test_client_secret']
50
+ end
51
+
52
+ def test_basic_client
53
+ GitHub::Client.new(login: test_login, password: test_password)
54
+ end
55
+
56
+ def test_client
57
+ GitHub::Client.new(login: test_login, access_token: test_access_token)
48
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github_api_v3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Casey Scarborough
@@ -116,6 +116,7 @@ files:
116
116
  - lib/github_api_v3/client/gitignore.rb
117
117
  - lib/github_api_v3/client/issues.rb
118
118
  - lib/github_api_v3/client/markdown.rb
119
+ - lib/github_api_v3/client/oauth.rb
119
120
  - lib/github_api_v3/client/orgs.rb
120
121
  - lib/github_api_v3/client/pull_requests.rb
121
122
  - lib/github_api_v3/client/repos.rb
@@ -179,6 +180,21 @@ files:
179
180
  - spec/cassettes/GitHub_Client_Issues/_user_issues/returns_an_array_of_issues.json
180
181
  - spec/cassettes/GitHub_Client_Issues/_user_issues/returns_the_correct_information.json
181
182
  - spec/cassettes/GitHub_Client_Markdown/_markdown/returns_rendered_markdown.json
183
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_if_using_access_token_authentication.json
184
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_if_using_no_authentication.json
185
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_when_not_found.json
186
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_authorization_information.json
187
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_the_correct_information.json
188
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_404_if_using_access_token_authentication.json
189
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_404_if_using_no_authentication.json
190
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_list_of_authorizations.json
191
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_the_correct_array.json
192
+ - spec/cassettes/GitHub_Client_OAuth/_create_authorization/creates_the_correct_authorization.json
193
+ - spec/cassettes/GitHub_Client_OAuth/_create_authorization/returns_authorization_information_hash.json
194
+ - spec/cassettes/GitHub_Client_OAuth/_delete_authorization/deletes_the_authorization.json
195
+ - spec/cassettes/GitHub_Client_OAuth/_delete_authorization/returns_true.json
196
+ - spec/cassettes/GitHub_Client_OAuth/_update_authorization/returns_authorization_information_hash.json
197
+ - spec/cassettes/GitHub_Client_OAuth/_update_authorization/updates_the_authorization.json
182
198
  - spec/cassettes/GitHub_Client_Orgs/_add_team_member/adds_a_team_member.json
183
199
  - spec/cassettes/GitHub_Client_Orgs/_add_team_repo/adds_a_team_repo.json
184
200
  - spec/cassettes/GitHub_Client_Orgs/_create_team/creates_a_team.json
@@ -273,6 +289,8 @@ files:
273
289
  - spec/cassettes/GitHub_Client_Users/_notifications/returns_an_array_of_notifications.json
274
290
  - spec/cassettes/GitHub_Client_Users/_organizations/returns_an_authenticated_users_organizations.json
275
291
  - spec/cassettes/GitHub_Client_Users/_organizations/returns_an_unauthenticated_users_organizations.json
292
+ - spec/cassettes/GitHub_Client_Users/_rate_limit/returns_authenticated_rate_limit_information.json
293
+ - spec/cassettes/GitHub_Client_Users/_rate_limit/returns_unauthenticated_rate_limit_information.json
276
294
  - spec/cassettes/GitHub_Client_Users/_repo_notifications/returns_an_array_of_notifications.json
277
295
  - spec/cassettes/GitHub_Client_Users/_starring/returns_a_404_for_not_found.json
278
296
  - spec/cassettes/GitHub_Client_Users/_starring/returns_an_authenticated_users_repos.json
@@ -297,6 +315,7 @@ files:
297
315
  - spec/github_api_v3/client/gitignore_spec.rb
298
316
  - spec/github_api_v3/client/issues_spec.rb
299
317
  - spec/github_api_v3/client/markdown_spec.rb
318
+ - spec/github_api_v3/client/oauth_spec.rb
300
319
  - spec/github_api_v3/client/orgs_spec.rb
301
320
  - spec/github_api_v3/client/pull_requests_spec.rb
302
321
  - spec/github_api_v3/client/repos_spec.rb
@@ -384,6 +403,21 @@ test_files:
384
403
  - spec/cassettes/GitHub_Client_Issues/_user_issues/returns_an_array_of_issues.json
385
404
  - spec/cassettes/GitHub_Client_Issues/_user_issues/returns_the_correct_information.json
386
405
  - spec/cassettes/GitHub_Client_Markdown/_markdown/returns_rendered_markdown.json
406
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_if_using_access_token_authentication.json
407
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_if_using_no_authentication.json
408
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_a_404_when_not_found.json
409
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_authorization_information.json
410
+ - spec/cassettes/GitHub_Client_OAuth/_authorization/returns_the_correct_information.json
411
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_404_if_using_access_token_authentication.json
412
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_404_if_using_no_authentication.json
413
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_a_list_of_authorizations.json
414
+ - spec/cassettes/GitHub_Client_OAuth/_authorizations/returns_the_correct_array.json
415
+ - spec/cassettes/GitHub_Client_OAuth/_create_authorization/creates_the_correct_authorization.json
416
+ - spec/cassettes/GitHub_Client_OAuth/_create_authorization/returns_authorization_information_hash.json
417
+ - spec/cassettes/GitHub_Client_OAuth/_delete_authorization/deletes_the_authorization.json
418
+ - spec/cassettes/GitHub_Client_OAuth/_delete_authorization/returns_true.json
419
+ - spec/cassettes/GitHub_Client_OAuth/_update_authorization/returns_authorization_information_hash.json
420
+ - spec/cassettes/GitHub_Client_OAuth/_update_authorization/updates_the_authorization.json
387
421
  - spec/cassettes/GitHub_Client_Orgs/_add_team_member/adds_a_team_member.json
388
422
  - spec/cassettes/GitHub_Client_Orgs/_add_team_repo/adds_a_team_repo.json
389
423
  - spec/cassettes/GitHub_Client_Orgs/_create_team/creates_a_team.json
@@ -478,6 +512,8 @@ test_files:
478
512
  - spec/cassettes/GitHub_Client_Users/_notifications/returns_an_array_of_notifications.json
479
513
  - spec/cassettes/GitHub_Client_Users/_organizations/returns_an_authenticated_users_organizations.json
480
514
  - spec/cassettes/GitHub_Client_Users/_organizations/returns_an_unauthenticated_users_organizations.json
515
+ - spec/cassettes/GitHub_Client_Users/_rate_limit/returns_authenticated_rate_limit_information.json
516
+ - spec/cassettes/GitHub_Client_Users/_rate_limit/returns_unauthenticated_rate_limit_information.json
481
517
  - spec/cassettes/GitHub_Client_Users/_repo_notifications/returns_an_array_of_notifications.json
482
518
  - spec/cassettes/GitHub_Client_Users/_starring/returns_a_404_for_not_found.json
483
519
  - spec/cassettes/GitHub_Client_Users/_starring/returns_an_authenticated_users_repos.json
@@ -502,6 +538,7 @@ test_files:
502
538
  - spec/github_api_v3/client/gitignore_spec.rb
503
539
  - spec/github_api_v3/client/issues_spec.rb
504
540
  - spec/github_api_v3/client/markdown_spec.rb
541
+ - spec/github_api_v3/client/oauth_spec.rb
505
542
  - spec/github_api_v3/client/orgs_spec.rb
506
543
  - spec/github_api_v3/client/pull_requests_spec.rb
507
544
  - spec/github_api_v3/client/repos_spec.rb