github_api 0.4.2 → 0.4.3

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 (43) hide show
  1. data/README.md +2 -2
  2. data/features/authentication.feature +8 -0
  3. data/features/cassettes/errors/repos/create.yml +36 -0
  4. data/features/cassettes/gists/gist.yml +64 -0
  5. data/features/cassettes/gists/gist/first.yml +65 -0
  6. data/features/cassettes/gists/gists/public_all.yml +71 -0
  7. data/features/cassettes/gists/gists/user_all.yml +48 -0
  8. data/features/cassettes/gists/star.yml +34 -0
  9. data/features/cassettes/pagination/repos/per_page/1.yml +134 -0
  10. data/features/cassettes/pagination/repos/per_page/each_page.yml +395 -0
  11. data/features/cassettes/pagination/repos/per_page/first.yml +135 -0
  12. data/features/error_codes.feature +13 -0
  13. data/features/gists.feature +31 -0
  14. data/features/pagination.feature +10 -0
  15. data/features/repos.feature +12 -10
  16. data/features/step_definitions/github_api_steps.rb +20 -5
  17. data/features/support/env.rb +8 -0
  18. data/features/support/helpers.rb +7 -0
  19. data/lib/github_api.rb +6 -6
  20. data/lib/github_api/api.rb +19 -11
  21. data/lib/github_api/authorization.rb +3 -3
  22. data/lib/github_api/connection.rb +1 -1
  23. data/lib/github_api/core_ext/array.rb +1 -2
  24. data/lib/github_api/core_ext/hash.rb +16 -2
  25. data/lib/github_api/deprecation.rb +39 -0
  26. data/lib/github_api/gists.rb +27 -10
  27. data/lib/github_api/page_uri_processor.rb +6 -2
  28. data/lib/github_api/response/raise_error.rb +1 -1
  29. data/lib/github_api/result.rb +2 -1
  30. data/lib/github_api/version.rb +1 -1
  31. data/spec/fixtures/gists/gist.json +58 -0
  32. data/spec/fixtures/gists/gists.json +28 -0
  33. data/spec/github/api_spec.rb +15 -0
  34. data/spec/github/authorization_spec.rb +5 -0
  35. data/spec/github/client_spec.rb +4 -0
  36. data/spec/github/core_ext/hash_spec.rb +45 -18
  37. data/spec/github/deprecation_spec.rb +31 -0
  38. data/spec/github/gists_spec.rb +461 -3
  39. data/spec/github/repos/watching_spec.rb +12 -4
  40. data/spec/github/request_spec.rb +3 -0
  41. data/spec/github_spec.rb +34 -29
  42. data/spec/spec_helper.rb +1 -0
  43. metadata +22 -4
data/README.md CHANGED
@@ -241,8 +241,8 @@ res.links.last # Shows the URL of the last page of results.
241
241
  In order to iterate through the entire result set page by page, you can use convenience methods:
242
242
 
243
243
  ```ruby
244
- res.each_page do |page_set|
245
- page_set.each do |repo|
244
+ res.each_page do |page|
245
+ page.each do |repo|
246
246
  puts repo.name
247
247
  end
248
248
  end
@@ -0,0 +1,8 @@
1
+ Feature: Authentication
2
+ In order to perform destructive actions with GitHub service
3
+ As a deveoper
4
+ I want to be able to authenticate
5
+
6
+ Scenario: Basic Authentication
7
+
8
+ Scenario: OAuth
@@ -0,0 +1,36 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://api.github.com:443/user/repos
6
+ body: "{\"homepage\":\"https://github.com\",\"public\":true,\"has_issues\":true,\"has_wiki\":true,\"has_downloads\":true,\"name\":\"basic_auth\"}"
7
+ headers:
8
+ content-type:
9
+ - application/json
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 401
13
+ message: Unauthorized
14
+ headers:
15
+ server:
16
+ - nginx/1.0.4
17
+ date:
18
+ - Sat, 04 Feb 2012 13:32:31 GMT
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ connection:
22
+ - keep-alive
23
+ status:
24
+ - 401 Unauthorized
25
+ www-authenticate:
26
+ - Basic realm="GitHub"
27
+ x-ratelimit-limit:
28
+ - "5000"
29
+ etag:
30
+ - "\"99852aefab6a0988db8f62bf2fb96f49\""
31
+ x-ratelimit-remaining:
32
+ - "4997"
33
+ content-length:
34
+ - "37"
35
+ body: "{\"message\":\"Requires authentication\"}"
36
+ http_version: "1.1"
@@ -0,0 +1,64 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://api.github.com:443/gists/1738161
6
+ body:
7
+ headers:
8
+ accept-encoding:
9
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ server:
16
+ - nginx/1.0.4
17
+ date:
18
+ - Sat, 04 Feb 2012 14:31:54 GMT
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ transfer-encoding:
22
+ - chunked
23
+ connection:
24
+ - keep-alive
25
+ status:
26
+ - 200 OK
27
+ x-ratelimit-limit:
28
+ - "5000"
29
+ etag:
30
+ - "\"4d37bc0e6942fa961150e4b60cf0f653\""
31
+ x-ratelimit-remaining:
32
+ - "4994"
33
+ content-encoding:
34
+ - gzip
35
+ body: !binary |
36
+ H4sIAAAAAAAAA+1W7WvkRBj/V4YcQivbbJJNdrMrh3d6V1+QE7Qq6EqZJLPJ
37
+ 3GVn4mTSF8vCdQtaOT+IcHcIflEOBEUUP+kH/5rYgv+Fz2Sy3XTb7m3vs6GU
38
+ ZPb5zfN73p8DI6ZyOyvSdLsQqTFQn4N2O6a5NOE1KQIz5OO23ev4dtdWR0bL
39
+ 0JKJlFkOsjijTVEFzWcAEB5x8SA3Bp982jIikoeCZpJyBprK6Y/l0S/l0eNy
40
+ +sPJw2fl9NvTrw/Lw2d299+Hf5w+/v30yZcnvz49OX5aHj4qp1+9zlMuyunP
41
+ 5dGTcvpnOf2pnP5WHh0D7J+/vz89/qY8/K6cPiqPviinf8E5aNaW5cncslsL
42
+ dg3O25UVQUpDYyBFQYA4TQkQPzBup1mC71C4Ln+T7N0rxgERFZs7JOQRZfEW
43
+ AW/dxztYScv9jIB1kuzJdpZiyoBJyJkkTMIxHWdcSJRLLGmIuIjN+wWj0ryd
44
+ 50RI8+VXhmzIaiF1o4l3pVkpa/4yxynV1S+aOwpTnOdoJcboYMgQPLfUHfq1
45
+ vmSH0whFyjgCBr8vhbKRVyzW1mcwBa2OUFj9v6m/TI1bGxo3rOoZGutAUEmr
46
+ B9iBnXc/K3CagwzjG1h5d2i0kON5LX2XGRNZmbC2vgQrSKRgVgP0HomWQoK0
47
+ IIuY1+BsKSgWhLBF1BvqcA6baAtfwKEfQZHVtjY9u+An7VQ0JjLhEaIx44Lk
48
+ qHIdiqrMBIJzL8+8Xbm0CtKFsFSBWc3ROr6QwzkURqiqF+0Ca63+Ur0QE0Z2
49
+ tea1tyD3Y3IVA8rkh7gKQQupuruM0yre5TtEjFK+u8Wrqpwn7vmMXfDrGO+h
50
+ HaUe8RECKoropRbZTm+5Tb1N/SivrmKTCtE8YLWPEES1SCXUEoOO3CgbKfab
51
+ 2aHAZ6IX/evrylsovdqLChtiGSZoTbeyTS7GWN7dC0nVmRHZy0goSXSu0hVK
52
+ ++4eMIPKDTFjXCLo7gBGN+YqWzWzZuVqvrIQrGFTg88IU3VnwQTBYYKDFKp0
53
+ hl8l+Au96oMcGpZOg3dH73AWX9a16pICV59lqhJtFEod0c1LQ3p1Tzvf0LSa
54
+ 1Qqt7mhV1c5xqza1BdjqfW0BeLG1TWCE5fRzGGt2t+O0DIF365k62wEW9wWQ
55
+ mK0A7X7QjYjdjYKo73uh5RLi9wLfH3mh3e0TLyIdYtn9oNNeaWrpOaunM8Nj
56
+ NWqvhUsxiwscK9zbamJPJi0jgZWFi31YUg6usdu0idshfkBGvh1Zru26/VHk
57
+ +JYT4o7tdZR9Pc/GvhepBSABtWRbjf2i2ikikhJVbfBhtQzJJYbly+23DBxF
58
+ tP7B7QO3AualAizduZRQ3hYJjYswoWr1EWCbxGKbRmCo5VkdMhoR14lGXdv1
59
+ 3b4TYGz7/TDoWF0vAEDKY9hUBkbjjvqG84pzEhaCmLP7q+VQC7afp+XV6ObZ
60
+ yui4vklM/ACPMTUZkW3VW2Te2CNfcjbpGOKUw8tMW/N9w3YtM2MxcFc2el63
61
+ 17XBX0BoTCW0r22s9i3Hsp0NC/7cLdsdOJ2B1/kYIDAscr2FrhzECSywiRzP
62
+ 9uSrMr/eKFXMgQksfTrCRRbh55H6P9TXC3WV2w1/w/BY7uLJf1vSHjDuDAAA
63
+
64
+ http_version: "1.1"
@@ -0,0 +1,65 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://api.github.com:443/gists/1738161
6
+ body:
7
+ headers:
8
+ accept-encoding:
9
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ server:
16
+ - nginx/1.0.4
17
+ date:
18
+ - Sat, 04 Feb 2012 14:30:26 GMT
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ transfer-encoding:
22
+ - chunked
23
+ connection:
24
+ - keep-alive
25
+ status:
26
+ - 200 OK
27
+ x-ratelimit-limit:
28
+ - "5000"
29
+ etag:
30
+ - "\"9c9e3d5d788ed1511aed3c766cbbb85b\""
31
+ x-ratelimit-remaining:
32
+ - "4995"
33
+ content-encoding:
34
+ - gzip
35
+ body: !binary |
36
+ H4sIAAAAAAAAA+1W7YvjRBj/V4Ycwq500yRN2rRyeKd36wtygq4KXmWZZCbp
37
+ 3KUzMZnsi0vhtgu6cn4Q4e4Q/KIcCIooftIP/jVxF/wvfCaTbtPeXrfnZ0Mp
38
+ ycz85nme3/N6ZBRZYgyMkZRpPmi3ccrMmMlREZihGLdjlsu8bfc6vt21jZZB
39
+ aB5mLJVMcACV0x/Kk5/Lk0fl9PuzB0/L6TfnXx2Xx0/t7j8Pfj9/9Nv54y/O
40
+ fnlydvqkPH5YTr98XSQiK6c/lSePy+kf5fTHcvpreXIKsL//+u789Ovy+Nty
41
+ +rA8+byc/gnrIC4tgoSFxkBmBW0ZEUtobgyOjJtJOsK3GOiZv0kP7hTjgGbV
42
+ 5bdoKAjj8Q7NpXkP72F1Wh6mFJSV9EC20wQzDheHgkvKJSyzcSoyiXKJJQuR
43
+ yGLzXsGZNG/mOc2k+fIrQz7k9SF1o4n3pVkJa+7McUp0taN1R2GC8xytpTE6
44
+ GnIEzw11h36tL9kTjCCijKNg8PsyUzaKSouNzRlMQaslFFb/1/WXqXEbQ+Oa
45
+ VT1DYxMUVKfVA9qBnbc/LXCSwxkutrBid2i0kON5LX2XGVNZmbCxuQKbUaJg
46
+ VgP0HiUrIUFS0GXMa7C2EhRnlPJl1BtqcQ6baAv/A6EfQfTXtjaZXeJJk4rG
47
+ VI4EQSzmIqM5qqhDpIpMUHDO8oztitLKSc+4pXLMekRr/0IM55AYoUpGtA9a
48
+ a/GXygWfcLqvJW+8BbEf0+dpwLj8EFcuaCGVd5fptA67Yo9mUSL2d0SVlfPA
49
+ XYzYJV7H+ADtKfFIRAhUUYpeapHt9Fbb1NvWj2J1HZuUi+YOqzlC4NUikZBL
50
+ vEiSRtrI7LAZHQp8cfRZfn2deUupV7OosCGW4Qht6FK2LbIxlrcPQloVWkQP
51
+ UhpKShYyXaE0d3dAM8jcEHMuJIoqMLo2F9mqNWtmrtZXFhlv2NTQJ8JM3Vnw
52
+ jOJwhIMEsnSGX8f5S7XqgxwKlg6Dd6N3BI8vq1p1SgHVF5GqjjYSpfbo9qUu
53
+ fX5NWyxoWsx6iVZXtCpr57h1i9oSbP26tgR8trRNoIXl7DNoa3a34+jOyPFY
54
+ tbm1Oo3ujS0jwTwucKxwb6tu2TIyvL+7OBGoEaA5EsCJ2UDQ7gddQu0uCUjf
55
+ 90LLpdTvBb4feaHd7VOP0A617H7Qab+AVpNJyxiBTJEdGoO7Ry8wn7Sp26F+
56
+ QCPfJpZru24/Io5vOSHu2F5HadXzbOx7RA0AIzCd7qq2X1QzBaEJVdkGH1bL
57
+ kEJiGIvcfsvAhLB6w+2DbjAWjZmEdNzFan5wLNvZsuDn7tjuwOkMvM7HcH8B
58
+ XVVdu3K6UofydjZicRGOGKDABxJnSw7IaVhk1IwzvVvNZfq1bXlWh0YRdR0S
59
+ dW3Xd/tOgLHt98OgY3W94FVy/WKwc1zfpCa+j8eYmZzKtqoeMm+49iVnm40h
60
+ GnJ4mUlrvm/ZrmWmPAZFZ9u7jAAHV6kBgETEMHgNjIaxCup53V7XBlahWeR6
61
+ qFzbiZNPIFDkOLkiXufDq/IcDH3aw0VK8FVOhFp6H07fBUHQ0XdTKLS1MPiE
62
+ YXk5NWpRitL/Q2AxEtcIAU1xPppTfGOJ4MEiwVXsNdwLvWq1Ryf/AqmTDrDu
63
+ DAAA
64
+
65
+ http_version: "1.1"
@@ -0,0 +1,71 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://api.github.com:443/users/%7B%7D/gists
6
+ body:
7
+ headers:
8
+ accept-encoding:
9
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 404
13
+ message: Not Found
14
+ headers:
15
+ server:
16
+ - nginx/1.0.4
17
+ date:
18
+ - Sat, 04 Feb 2012 14:18:39 GMT
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ transfer-encoding:
22
+ - chunked
23
+ connection:
24
+ - keep-alive
25
+ status:
26
+ - 404 Not Found
27
+ x-ratelimit-limit:
28
+ - "5000"
29
+ etag:
30
+ - "\"e66a7a6c91e2c26803f3f49feb7a883f\""
31
+ x-ratelimit-remaining:
32
+ - "4998"
33
+ content-encoding:
34
+ - gzip
35
+ body: !binary |
36
+ H4sIAAAAAAAAA6tWyk0tLk5MT1WyUvLLL1Fwyy/NS1GqBQB8+Ys1FwAAAA==
37
+
38
+ http_version: "1.1"
39
+ - !ruby/struct:VCR::HTTPInteraction
40
+ request: !ruby/struct:VCR::Request
41
+ method: :get
42
+ uri: https://api.github.com:443/users/nil/gists
43
+ body:
44
+ headers:
45
+ accept-encoding:
46
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
47
+ response: !ruby/struct:VCR::Response
48
+ status: !ruby/struct:VCR::ResponseStatus
49
+ code: 200
50
+ message: OK
51
+ headers:
52
+ server:
53
+ - nginx/1.0.4
54
+ date:
55
+ - Sat, 04 Feb 2012 14:21:08 GMT
56
+ content-type:
57
+ - application/json; charset=utf-8
58
+ connection:
59
+ - keep-alive
60
+ status:
61
+ - 200 OK
62
+ x-ratelimit-limit:
63
+ - "5000"
64
+ etag:
65
+ - "\"d751713988987e9331980363e24189ce\""
66
+ x-ratelimit-remaining:
67
+ - "4997"
68
+ content-length:
69
+ - "2"
70
+ body: "[]"
71
+ http_version: "1.1"
@@ -0,0 +1,48 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://api.github.com:443/users/peter-murach/gists
6
+ body:
7
+ headers:
8
+ accept-encoding:
9
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ server:
16
+ - nginx/1.0.4
17
+ date:
18
+ - Sat, 04 Feb 2012 14:18:07 GMT
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ transfer-encoding:
22
+ - chunked
23
+ connection:
24
+ - keep-alive
25
+ status:
26
+ - 200 OK
27
+ x-ratelimit-limit:
28
+ - "5000"
29
+ etag:
30
+ - "\"0ea1f9dcbdf7ecbe9127a6a7c38519f9\""
31
+ x-ratelimit-remaining:
32
+ - "4999"
33
+ content-encoding:
34
+ - gzip
35
+ body: !binary |
36
+ H4sIAAAAAAAAA4VS246bMBD9lchS3whgMASQVtu+9Av61KqKBnsgVg1Yvmwv
37
+ q/x7h022m02lROLBNnPmzDlnvj2z6Azr2CEE67ssA6vTUYdD7FO5TNmoffAZ
38
+ L8uGtzVLmEIvnbZBLzOBPoUA8qDncfMETkNv0G/CshnN0oPZzDChtyCRcDb2
39
+ RkvWBRcxYYOmStY9M7kMA55b/g+jgvDbIhEF/BUya0DP1MvrP/RW7vJTo5WG
40
+ Sm63SpiBeYwwUukcjUmYg5/799JXrZfaqeJVeTbkA29qjm2zK3e8HRqhZD+s
41
+ F6lEjmXNe17WQ53dHuN4TMjpydxhfvObMphwDmQWqY1WQUC1h0B6i5zzLX15
42
+ +aUouqrtxO4rmUPZ7S0JPDPQlUK9Vnbuv4olSPTo1jBuLsJa5DOLAd12io5i
43
+ JyQ8QQB3JcajjA7T0Z3+vqzR6ZgNfSFaVVW1gHxoZAV5X7eYqx1XVdOK9lE9
44
+ /NvDQjQppvADJtDpjCED7zH4i4A+FJ/1RIl6OryyXZ63XOSpncfVlfMwe63I
45
+ untjEMAsI+1ax64Er3AhRMkLCvJktT+8Wf3xyujuvdEv5BfZOrwT5/H7Xwxs
46
+ RfCgAwAA
47
+
48
+ http_version: "1.1"
@@ -0,0 +1,34 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :put
5
+ uri: https://api.github.com:443/gists/1738161/star
6
+ body:
7
+ headers:
8
+ content-length:
9
+ - "0"
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 404
13
+ message: Not Found
14
+ headers:
15
+ server:
16
+ - nginx/1.0.4
17
+ date:
18
+ - Sat, 04 Feb 2012 14:31:55 GMT
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ connection:
22
+ - keep-alive
23
+ status:
24
+ - 404 Not Found
25
+ content-length:
26
+ - "23"
27
+ etag:
28
+ - "\"e66a7a6c91e2c26803f3f49feb7a883f\""
29
+ x-ratelimit-limit:
30
+ - "5000"
31
+ x-ratelimit-remaining:
32
+ - "4993"
33
+ body: "{\"message\":\"Not Found\"}"
34
+ http_version: "1.1"
@@ -0,0 +1,134 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://api.github.com:443/users/wycats/repos
6
+ body:
7
+ headers:
8
+ accept-encoding:
9
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ server:
16
+ - nginx/1.0.4
17
+ date:
18
+ - Sat, 04 Feb 2012 12:21:14 GMT
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ transfer-encoding:
22
+ - chunked
23
+ connection:
24
+ - keep-alive
25
+ status:
26
+ - 200 OK
27
+ x-ratelimit-limit:
28
+ - "5000"
29
+ etag:
30
+ - "\"adec8fcd501c77935ed602766569677c\""
31
+ link:
32
+ - <https://api.github.com/users/wycats/repos?page=2>; rel="next", <https://api.github.com/users/wycats/repos?page=4>; rel="last"
33
+ x-ratelimit-remaining:
34
+ - "4994"
35
+ content-encoding:
36
+ - gzip
37
+ body: !binary |
38
+ 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
133
+
134
+ http_version: "1.1"