github_api 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,258 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://<BASIC_AUTH>@api.github.com/emojis?access_token=<TOKEN>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
12
+ Accept-Charset:
13
+ - utf-8
14
+ User-Agent:
15
+ - Github Ruby Gem 0.6.4
16
+ Content-Type:
17
+ - application/json
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx/1.0.13
27
+ Date:
28
+ - Fri, 17 Aug 2012 17:26:26 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ Status:
36
+ - 200 OK
37
+ Etag:
38
+ - "\"f7bd6e9f09fed3d06881cc298a65b750\""
39
+ X-Ratelimit-Limit:
40
+ - "5000"
41
+ Cache-Control:
42
+ - max-age=0, private, must-revalidate
43
+ X-Ratelimit-Remaining:
44
+ - "4999"
45
+ X-Content-Type-Options:
46
+ - nosniff
47
+ Content-Encoding:
48
+ - gzip
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |
52
+ H4sIAAAAAAAAA7Wd27LjNpJF/8WvPb6U7XLZ/TKfwuBNEksUweblqE5NzL/P
53
+ ToDUTkrHPQ/YHRWuiPLDSghIgEBe/+eHob3PYzm20w///OGyLOP8z59/Ln/9
54
+ /c+f2p/Ka3kru5+Gdvm5nOd2mX86d8tlrX6qw+3n7lae2/nnrg7D/HN7C1+7
55
+ nx+on8bh/N9vn3/4rx+ArtuiG97KRiHhgKOUU1tOp7XP/wUbiOT60vXN1A5F
56
+ PYV57oZzvowXJKVV+B35AoxC5ohlKu5Yt6JeJ8EUHXlu7Gvft8syld1QnKYw
57
+ LIIf8ox0enVv26UYw1IuIV/Q7Ghu7cM69u21m+d8CfWDRf493MphLuo+LJdW
58
+ IOPIo5xymsK96MO9nYqpO18EK/OCpLQbjgqoXP6UbSCS+24UzJJR/BqP+SOt
59
+ w+iIfaivn34RUBOI5Es7VflYo5A5tkPdKU6FyHFakD/Qm/vl5VJf2qbA0Vlf
60
+ 88kXj3P61Z6WtEGKqN/5gvonImVpThWjPGne5/xR40Cqr5+fuF9+U6k0SGTP
61
+ t65vi7oUnEkPFOlfy/pahKIvh6WdhvyZOfIop7VTFV+jDnKaoupN7LwovuV/
62
+ R6bsqKrxK1Jf790sOHifiZQ1lLe2qMpGcbyTRX4YBMMHhMRJoVmAkHhpy7f3
63
+ ogl9X07F3J0FavWCpLRTN1/y9dYoZNqpdC+nZk7HXLocXkIQnKx/iz7M37Tg
64
+ iirY8Zi3hCJ9rvFD+mKOJ7zgu3bkUU6N9e/mLghW/4HydLt55q97unWS2w5v
65
+ bR9GAXknkT0GnHh9cQmKg9bBKKHp5nLcDtn8ufE0ylhv1dRia+fzdxLZVblc
66
+ llVwhdtAJJ8Er8aTezPW7/icKM7iDeQ0O11qZZeJT7/428T90i1tcYpPnfwV
67
+ 9DT+gg72jHpqy1u+gAeK9Gu4Ct6zRnF6twqsFtV6JvF9Ffx6QEhM95x5DFdc
68
+ oMoZ17VuFnyPPsS6melXxee1MozT8XVewk3wVK0TiOS7fdby9S5iSL2FdVjM
69
+ bFN1tl+7WfBpfmVS3qTYO4A47TkLNLw9Ow03K5fgCIkY98tbm2DB53dKIKcZ
70
+ l7bt60vZCQZ9f7CcTpdDrZiQOnLIjU9xmFWlT/sHz828nbVV2QuuhNOOIt3s
71
+ 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
255
+
256
+ http_version:
257
+ recorded_at: Fri, 17 Aug 2012 17:26:26 GMT
258
+ recorded_with: VCR 2.2.0
@@ -1,51 +1,54 @@
1
- ---
2
- http_interactions:
3
- - request:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
4
  method: get
5
- uri: https://<BASIC_AUTH>@api.github.com/repos/wycats/thor/git/tags/ffbc56c0c2?access_token=<TOKEN>
6
- body:
5
+ uri: https://<BASIC_AUTH>@api.github.com/repos/wycats/thor/git/tags/54cbeb8591609aa949212c8988a08741008c9ade?access_token=<TOKEN>
6
+ body:
7
7
  encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - application/vnd.github.v3.raw+json,application/vnd.github.beta.raw+json;q=0.5,application/json;q=0.1
12
- Accept-Charset:
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
12
+ Accept-Charset:
13
13
  - utf-8
14
- User-Agent:
15
- - Github Ruby Gem 0.6.1
16
- Content-Type:
17
- - application/x-www-form-urlencoded
18
- Accept-Encoding:
14
+ User-Agent:
15
+ - Github Ruby Gem 0.6.4
16
+ Content-Type:
17
+ - application/json
18
+ Accept-Encoding:
19
19
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
20
+ response:
21
+ status:
22
22
  code: 404
23
23
  message: Not Found
24
- headers:
25
- Server:
24
+ headers:
25
+ Server:
26
26
  - nginx/1.0.13
27
- Date:
28
- - Wed, 11 Jul 2012 21:35:36 GMT
29
- Content-Type:
27
+ Date:
28
+ - Fri, 17 Aug 2012 18:00:54 GMT
29
+ Content-Type:
30
30
  - application/json; charset=utf-8
31
- Transfer-Encoding:
31
+ Transfer-Encoding:
32
32
  - chunked
33
- Connection:
33
+ Connection:
34
34
  - keep-alive
35
- Status:
35
+ Status:
36
36
  - 404 Not Found
37
- X-Ratelimit-Limit:
38
- - '5000'
39
- Cache-Control:
40
- - ''
41
- X-Ratelimit-Remaining:
42
- - '4999'
43
- Content-Encoding:
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ Cache-Control:
40
+ - ""
41
+ X-Ratelimit-Remaining:
42
+ - "4995"
43
+ X-Ratelimit-Limit:
44
+ - "5000"
45
+ Content-Encoding:
44
46
  - gzip
45
- body:
47
+ body:
46
48
  encoding: ASCII-8BIT
47
- string: !binary |-
49
+ string: !binary |
48
50
  H4sIAAAAAAAAA6tWyk0tLk5MT1WyUvLLL1Fwyy/NS1GqBQB8+Ys1FwAAAA==
49
- http_version: !!null
50
- recorded_at: Wed, 11 Jul 2012 21:35:36 GMT
51
+
52
+ http_version:
53
+ recorded_at: Fri, 17 Aug 2012 18:00:54 GMT
51
54
  recorded_with: VCR 2.2.0
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://<BASIC_AUTH>@api.github.com/repos/peter-murach/github/assignees/peter-murach?access_token=<TOKEN>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
12
+ Accept-Charset:
13
+ - utf-8
14
+ User-Agent:
15
+ - Github Ruby Gem 0.6.4
16
+ Content-Type:
17
+ - application/json
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 204
23
+ message: No Content
24
+ headers:
25
+ Server:
26
+ - nginx/1.0.13
27
+ Date:
28
+ - Fri, 17 Aug 2012 15:53:52 GMT
29
+ Connection:
30
+ - keep-alive
31
+ Status:
32
+ - 204 No Content
33
+ X-Ratelimit-Remaining:
34
+ - "4996"
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Ratelimit-Limit:
38
+ - "5000"
39
+ Cache-Control:
40
+ - ""
41
+ body:
42
+ encoding: US-ASCII
43
+ string: ""
44
+ http_version:
45
+ recorded_at: Fri, 17 Aug 2012 15:53:52 GMT
46
+ recorded_with: VCR 2.2.0
@@ -0,0 +1,105 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://<BASIC_AUTH>@api.github.com/repos/wycats/github/assignees?access_token=<TOKEN>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
12
+ Accept-Charset:
13
+ - utf-8
14
+ User-Agent:
15
+ - Github Ruby Gem 0.6.4
16
+ Content-Type:
17
+ - application/json
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Server:
26
+ - nginx/1.0.13
27
+ Date:
28
+ - Fri, 17 Aug 2012 15:39:33 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ Status:
36
+ - 404 Not Found
37
+ X-Ratelimit-Remaining:
38
+ - "4998"
39
+ X-Ratelimit-Limit:
40
+ - "5000"
41
+ Cache-Control:
42
+ - ""
43
+ X-Content-Type-Options:
44
+ - nosniff
45
+ Content-Encoding:
46
+ - gzip
47
+ body:
48
+ encoding: ASCII-8BIT
49
+ string: !binary |
50
+ H4sIAAAAAAAAA6tWyk0tLk5MT1WyUvLLL1Fwyy/NS1GqBQB8+Ys1FwAAAA==
51
+
52
+ http_version:
53
+ recorded_at: Fri, 17 Aug 2012 15:39:33 GMT
54
+ - request:
55
+ method: get
56
+ uri: https://<BASIC_AUTH>@api.github.com/repos/peter-murach/github/assignees/wycats?access_token=<TOKEN>
57
+ body:
58
+ encoding: US-ASCII
59
+ string: ""
60
+ headers:
61
+ Accept:
62
+ - application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
63
+ Accept-Charset:
64
+ - utf-8
65
+ User-Agent:
66
+ - Github Ruby Gem 0.6.4
67
+ Content-Type:
68
+ - application/json
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ response:
72
+ status:
73
+ code: 404
74
+ message: Not Found
75
+ headers:
76
+ Server:
77
+ - nginx/1.0.13
78
+ Date:
79
+ - Fri, 17 Aug 2012 15:48:59 GMT
80
+ Content-Type:
81
+ - application/json; charset=utf-8
82
+ Transfer-Encoding:
83
+ - chunked
84
+ Connection:
85
+ - keep-alive
86
+ Status:
87
+ - 404 Not Found
88
+ X-Ratelimit-Limit:
89
+ - "5000"
90
+ Cache-Control:
91
+ - ""
92
+ X-Content-Type-Options:
93
+ - nosniff
94
+ X-Ratelimit-Remaining:
95
+ - "4997"
96
+ Content-Encoding:
97
+ - gzip
98
+ body:
99
+ encoding: ASCII-8BIT
100
+ string: !binary |
101
+ H4sIAAAAAAAAA6tWyk0tLk5MT1WyUvLLL1Fwyy/NS1GqBQB8+Ys1FwAAAA==
102
+
103
+ http_version:
104
+ recorded_at: Fri, 17 Aug 2012 15:48:59 GMT
105
+ recorded_with: VCR 2.2.0
@@ -0,0 +1,64 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://<BASIC_AUTH>@api.github.com/repos/peter-murach/github/assignees?access_token=<TOKEN>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - application/jsonapplication/vnd.github+json;q=0.7application/vnd.github.v3.raw+json;q=0.5application/vnd.github.beta.raw+json;q=0.1
12
+ Accept-Charset:
13
+ - utf-8
14
+ User-Agent:
15
+ - Github Ruby Gem 0.6.4
16
+ Content-Type:
17
+ - application/json
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx/1.0.13
27
+ Date:
28
+ - Fri, 17 Aug 2012 15:27:01 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ Status:
36
+ - 200 OK
37
+ Last-Modified:
38
+ - Wed, 15 Aug 2012 10:37:36 GMT
39
+ X-Ratelimit-Limit:
40
+ - "5000"
41
+ X-Ratelimit-Remaining:
42
+ - "4999"
43
+ Vary:
44
+ - Accept, Authorization, Cookie
45
+ X-Content-Type-Options:
46
+ - nosniff
47
+ Etag:
48
+ - "\"403ae5e19651c30babab5ad588c763fd\""
49
+ Cache-Control:
50
+ - private, s-maxage=60, max-age=60
51
+ Content-Encoding:
52
+ - gzip
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ string: !binary |
56
+ H4sIAAAAAAAAA4WPyw6CMBRE/6WJO2kBCwKJcedPGGMu9FoaeTR9uDH+u/WB
57
+ QTfuJjczc+bur6QbpRpIRTQ6NFHvDTQtWRJvunBsndO2Ygy0olK51te0GXvm
58
+ LRrLfhLSwAUcmKMSIXmqU16KLMs5xKeiySCu8xJjsU5EVpS8DIi3/ZtksfEG
59
+ 6VT2xL2M7F/lVmw+e1NeUKRwhh4UHdAxsBadnT2xSHeqB4k2iIk211HCY6oH
60
+ GYY+HuKcr5L0drgD23Et5DIBAAA=
61
+
62
+ http_version:
63
+ recorded_at: Fri, 17 Aug 2012 15:27:01 GMT
64
+ recorded_with: VCR 2.2.0
@@ -0,0 +1,12 @@
1
+ Feature: Emojis API
2
+
3
+ Background:
4
+ Given I have "Github::Emojis" instance
5
+
6
+ Scenario: List
7
+
8
+ Given I want to list resources
9
+ When I make request within a cassette named "emojis/list"
10
+ Then the response status should be 200
11
+ And the response type should be JSON
12
+ And the response should not be empty
@@ -10,7 +10,7 @@ Feature: Tags API
10
10
  # Scenario: Lists all tags on a repository
11
11
  # Given I want to get resource with the following params:
12
12
  # | user | repo | sha |
13
- # | wycats | thor | ffbc56c0c2 |
13
+ # | wycats | thor | 54cbeb8591609aa949212c8988a08741008c9ade |
14
14
  # When I make request within a cassette named "git_data/tags/get"
15
15
  # Then the response status should be 200
16
16
  # And the response type should be JSON
@@ -0,0 +1,30 @@
1
+ Feature: Contents API
2
+
3
+ Background:
4
+ Given I have "Github::Repos::Assignees" instance
5
+
6
+ Scenario: List
7
+
8
+ Given I want to list resources with the following params:
9
+ | user | repo |
10
+ | peter-murach | github |
11
+ When I make request within a cassette named "repos/assignees/list"
12
+ Then the response status should be 200
13
+ And the response type should be JSON
14
+ And the response should not be empty
15
+
16
+ Scenario: Check assignee does not belong to repository
17
+
18
+ Given I want to check resource with the following params:
19
+ | user | repo | assignee |
20
+ | peter-murach | github | wycats |
21
+ When I make request within a cassette named "repos/assignees/ckeck_not"
22
+ Then the response should be false
23
+
24
+ Scenario: Check assignee belongs to repository
25
+
26
+ Given I want to check resource with the following params:
27
+ | user | repo | assignee |
28
+ | peter-murach | github | peter-murach |
29
+ When I make request within a cassette named "repos/assignees/ckeck"
30
+ Then the response should be true
@@ -22,6 +22,20 @@ Then /^the response status should be (.*)$/ do |expected_response|
22
22
  @response.status.should eql expected_response.to_i
23
23
  end
24
24
 
25
+ Then /^the response should be (.*)$/ do |expected_response|
26
+ expected_response = case expected_response
27
+ when /false/
28
+ false
29
+ when /true/
30
+ true
31
+ when /\d+/
32
+ expected_response.to_i
33
+ else
34
+ expected_response
35
+ end
36
+ @response.should eql expected_response
37
+ end
38
+
25
39
  Then /^the response type should be (.*)$/ do |type|
26
40
  case type.downcase
27
41
  when 'json'
data/lib/github_api.rb CHANGED
@@ -74,6 +74,7 @@ module Github
74
74
  :PullRequests => 'pull_requests',
75
75
  :Users => 'users',
76
76
  :Events => 'events',
77
+ :Emojis => 'emojis',
77
78
  :Search => 'search',
78
79
  :Markdown => 'markdown',
79
80
  :CoreExt => 'core_ext',
@@ -9,6 +9,10 @@ module Github
9
9
  @events ||= ApiFactory.new 'Events', options
10
10
  end
11
11
 
12
+ def emojis(options = {})
13
+ @emojis ||= ApiFactory.new 'Emojis', options
14
+ end
15
+
12
16
  def gists(options = {})
13
17
  @gists ||= ApiFactory.new 'Gists', options
14
18
  end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ module Github
4
+ module Descendants
5
+ def descendants
6
+ ObjectSpace.each_object(::Class).select { |klass| klass < self }
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+
3
+ module Github
4
+ class Emojis < API
5
+
6
+
7
+ # lists all the emojis.
8
+ #
9
+ # = Examples
10
+ #
11
+ # Github.emojis.list
12
+ #
13
+ def list(params={})
14
+ normalize! params
15
+
16
+ get_request("/emojis", params)
17
+ end
18
+
19
+ end # Emojis
20
+ end # Github
@@ -1,8 +1,12 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require 'github_api/descendants'
4
+
3
5
  module Github
4
6
  module Error
5
7
  class GithubError < StandardError
8
+ extend Descendants
9
+
6
10
  attr_reader :response_message, :response_headers
7
11
 
8
12
  # Initialize a new Github error object.
@@ -51,6 +51,12 @@ module Github
51
51
  define_method(:http_status_code) { code }
52
52
  end
53
53
 
54
+ def self.errors
55
+ @errors ||= Hash[
56
+ descendants.map { |klass| [klass.new({}).http_status_code, klass] }
57
+ ]
58
+ end
59
+
54
60
  end
55
61
  end # Error
56
62
  end # Github
@@ -6,6 +6,7 @@ module Github
6
6
 
7
7
  # Load all the modules after initializing Repos to avoid superclass mismatch
8
8
  autoload_all 'github_api/repos',
9
+ :Assignees => 'assignees',
9
10
  :Collaborators => 'collaborators',
10
11
  :Commits => 'commits',
11
12
  :Contents => 'contents',
@@ -42,6 +43,11 @@ module Github
42
43
  super(options)
43
44
  end
44
45
 
46
+ # Access to Repos::Collaborators API
47
+ def assignees
48
+ @assignees ||= ApiFactory.new 'Repos::Assignees'
49
+ end
50
+
45
51
  # Access to Repos::Collaborators API
46
52
  def collaborators
47
53
  @collaborators ||= ApiFactory.new 'Repos::Collaborators'
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+
3
+ module Github
4
+ class Repos::Assignees < API
5
+
6
+ # lists all the available assignees (owner + collaborators)
7
+ # to which issues may be assigned.
8
+ #
9
+ # = Examples
10
+ #
11
+ # Github.repos.assignees.list 'user', 'repo'
12
+ # Github.repos.assignees.list 'user', 'repo' { |assignee| ... }
13
+ #
14
+ def list(user_name, repo_name, params={})
15
+ normalize! params
16
+
17
+ response = get_request("/repos/#{user_name}/#{repo_name}/assignees", params)
18
+ return response unless block_given?
19
+ response.each { |el| yield el }
20
+ end
21
+
22
+ # Check to see if a particular user is an assignee for a repository.
23
+ #
24
+ # = Examples
25
+ #
26
+ # Github.repos.assignees.check 'user', 'repo', 'assignee'
27
+ #
28
+ def check(user_name, repo_name, assignee, params={})
29
+ _validate_presence_of assignee
30
+ normalize! params
31
+
32
+ get_request("/repos/#{user_name}/#{repo_name}/assignees/#{assignee}",params)
33
+ true
34
+ rescue Github::Error::NotFound
35
+ false
36
+ end
37
+
38
+ end # Repos::Assignees
39
+ end # Github
@@ -7,26 +7,11 @@ module Github
7
7
  class Response::RaiseError < Faraday::Response::Middleware
8
8
 
9
9
  def on_complete(env)
10
- case env[:status].to_i
11
- when 400
12
- raise Github::Error::BadRequest.new(env)
13
- when 401
14
- raise Github::Error::Unauthorized.new(env)
15
- when 403
16
- raise Github::Error::Forbidden.new(env)
17
- when 404
18
- raise Github::Error::NotFound.new(env)
19
- when 406
20
- raise Github::Error::NotAcceptable.new(env)
21
- when 422
22
- raise Github::Error::UnprocessableEntity.new(env)
23
- when 500
24
- raise Github::Error::InternalServerError.new(env)
25
- when 503
26
- raise Github::Error::ServiceUnavailable.new(env)
27
- when 400...600
28
- raise Github::Error::ServiceError.new(env)
29
- end
10
+ status_code = env[:status].to_i
11
+ service_error = Github::Error::ServiceError
12
+ error_class = service_error.errors[status_code]
13
+ error_class = service_error if !error_class and (400...600).include? status_code
14
+ raise error_class.new(env) if error_class
30
15
  end
31
16
 
32
17
  end # Response::RaiseError
@@ -4,7 +4,7 @@ module Github
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 6
7
- PATCH = 4
7
+ PATCH = 5
8
8
  BUILD = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.');
@@ -0,0 +1,9 @@
1
+ [
2
+ {
3
+ "login": "octocat",
4
+ "id": 1,
5
+ "avatar_url": "https://github.com/images/error/octocat_happy.gif",
6
+ "gravatar_id": "somehexcode",
7
+ "url": "https://api.github.com/users/octocat"
8
+ }
9
+ ]
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+
3
+ describe Github::Repos::Assignees do
4
+ let(:github) { Github::Repos::Assignees.new }
5
+ let(:user) { 'peter-murach' }
6
+ let(:repo) { 'github' }
7
+ let(:assignee) { 'octocat' }
8
+
9
+ after { github.user, github.repo, github.oauth_token = nil, nil, nil }
10
+
11
+ describe '#list' do
12
+ context 'resources found' do
13
+ before do
14
+ stub_get("/repos/#{user}/#{repo}/assignees").
15
+ to_return(:body => fixture('repos/assignees.json'),
16
+ :status => 200,
17
+ :headers => {:content_type => "application/json; charset=utf-8"})
18
+ end
19
+
20
+ it 'should get the resources' do
21
+ github.list user, repo
22
+ a_get("/repos/#{user}/#{repo}/assignees").should have_been_made
23
+ end
24
+
25
+ it "should return array of resources" do
26
+ assignees = github.list user, repo
27
+ assignees.should be_an Array
28
+ assignees.should have(1).items
29
+ end
30
+
31
+ it "should be a mash type" do
32
+ assignees = github.list user, repo
33
+ assignees.first.should be_a Hashie::Mash
34
+ end
35
+
36
+ it "should get collaborator information" do
37
+ assignees = github.list user, repo
38
+ assignees.first.login.should == 'octocat'
39
+ end
40
+
41
+ it "should yield to a block" do
42
+ github.should_receive(:list).with(user, repo).and_yield('web')
43
+ github.list(user, repo) { |param| 'web' }
44
+ end
45
+ end
46
+
47
+ context "resource not found" do
48
+ before do
49
+ stub_get("/repos/#{user}/#{repo}/assignees").
50
+ to_return(:body => "", :status => [404, "Not Found"],
51
+ :headers => {:content_type => "application/json; charset=utf-8"})
52
+ end
53
+
54
+ it "should return 404 with a message 'Not Found'" do
55
+ expect {
56
+ github.list user, repo
57
+ }.to raise_error(Github::Error::NotFound)
58
+ end
59
+ end
60
+ end # list
61
+
62
+ describe '#check' do
63
+ context "resource found " do
64
+ before do
65
+ stub_get("/repos/#{user}/#{repo}/assignees/#{assignee}").
66
+ to_return(:body => '', :status => 204,
67
+ :headers => {:content_type => "application/json; charset=utf-8"})
68
+ end
69
+
70
+ it "should fail to get resource without collaborator name" do
71
+ expect {
72
+ github.check user, repo, nil
73
+ }.to raise_error(ArgumentError)
74
+ end
75
+
76
+ it "should get the resource" do
77
+ github.check user, repo, assignee
78
+ a_get("/repos/#{user}/#{repo}/assignees/#{assignee}").should have_been_made
79
+ end
80
+
81
+ it "should find assignee" do
82
+ github.should_receive(:check).with(user, repo, assignee) { true }
83
+ github.check user, repo, assignee
84
+ end
85
+ end
86
+
87
+ context "resource not found" do
88
+ before do
89
+ stub_get("/repos/#{user}/#{repo}/assignees/#{assignee}").
90
+ to_return(:body => '', :status => 404,
91
+ :headers => {:content_type => "application/json; charset=utf-8"})
92
+ end
93
+
94
+ it "should fail to retrieve resource" do
95
+ github.should_receive(:check).with(user, repo, assignee) { false }
96
+ github.check user, repo, assignee
97
+ end
98
+ end
99
+ end # check
100
+
101
+ end # Github::Repos::Assignees
@@ -54,7 +54,8 @@ describe Github::Repos::Collaborators do
54
54
  context "resource not found" do
55
55
  before do
56
56
  stub_get("/repos/#{user}/#{repo}/collaborators").
57
- to_return(:body => "", :status => [404, "Not Found"], :headers => {:content_type => "application/json; charset=utf-8"})
57
+ to_return(:body => "", :status => [404, "Not Found"],
58
+ :headers => {:content_type => "application/json; charset=utf-8"})
58
59
  end
59
60
 
60
61
  it "should return 404 with a message 'Not Found'" do
@@ -65,12 +66,12 @@ describe Github::Repos::Collaborators do
65
66
  end
66
67
  end # collaborators
67
68
 
68
-
69
69
  describe "collaborator?" do
70
70
  context "resource found " do
71
71
  before do
72
72
  stub_get("/repos/#{user}/#{repo}/collaborators/#{collaborator}").
73
- to_return(:body => '', :status => 204, :headers => {:content_type => "application/json; charset=utf-8"})
73
+ to_return(:body => '', :status => 204,
74
+ :headers => {:content_type => "application/json; charset=utf-8"})
74
75
  end
75
76
 
76
77
  it "should fail to get resource without collaborator name" do
@@ -95,7 +96,8 @@ describe Github::Repos::Collaborators do
95
96
  context "resource not found" do
96
97
  before do
97
98
  stub_get("/repos/#{user}/#{repo}/collaborators/#{collaborator}").
98
- to_return(:body => '', :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
99
+ to_return(:body => '', :status => 404,
100
+ :headers => {:content_type => "application/json; charset=utf-8"})
99
101
  end
100
102
 
101
103
  it "should fail to retrieve resource" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-28 00:00:00.000000000Z
12
+ date: 2012-08-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hashie
16
- requirement: &2153193940 !ruby/object:Gem::Requirement
16
+ requirement: &2156483160 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153193940
24
+ version_requirements: *2156483160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: faraday
27
- requirement: &2153193440 !ruby/object:Gem::Requirement
27
+ requirement: &2156482660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.8.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2153193440
35
+ version_requirements: *2156482660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_json
38
- requirement: &2153192940 !ruby/object:Gem::Requirement
38
+ requirement: &2156498560 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '1.3'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2153192940
46
+ version_requirements: *2156498560
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: oauth2
49
- requirement: &2153192560 !ruby/object:Gem::Requirement
49
+ requirement: &2156498180 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2153192560
57
+ version_requirements: *2156498180
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: nokogiri
60
- requirement: &2153192000 !ruby/object:Gem::Requirement
60
+ requirement: &2156497640 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.5.2
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2153192000
68
+ version_requirements: *2156497640
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &2153191480 !ruby/object:Gem::Requirement
71
+ requirement: &2156497140 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2153191480
79
+ version_requirements: *2156497140
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: cucumber
82
- requirement: &2153190980 !ruby/object:Gem::Requirement
82
+ requirement: &2156496680 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2153190980
90
+ version_requirements: *2156496680
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: webmock
93
- requirement: &2153190380 !ruby/object:Gem::Requirement
93
+ requirement: &2156496220 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 1.8.0
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2153190380
101
+ version_requirements: *2156496220
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: vcr
104
- requirement: &2153189800 !ruby/object:Gem::Requirement
104
+ requirement: &2156495760 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 2.2.0
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *2153189800
112
+ version_requirements: *2156495760
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: simplecov
115
- requirement: &2153189220 !ruby/object:Gem::Requirement
115
+ requirement: &2156495300 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 0.6.1
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *2153189220
123
+ version_requirements: *2156495300
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: guard
126
- requirement: &2153188820 !ruby/object:Gem::Requirement
126
+ requirement: &2156494920 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *2153188820
134
+ version_requirements: *2156494920
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: guard-rspec
137
- requirement: &2153188240 !ruby/object:Gem::Requirement
137
+ requirement: &2156494460 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *2153188240
145
+ version_requirements: *2156494460
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: guard-cucumber
148
- requirement: &2153187680 !ruby/object:Gem::Requirement
148
+ requirement: &2156494040 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *2153187680
156
+ version_requirements: *2156494040
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: rake
159
- requirement: &2153187220 !ruby/object:Gem::Requirement
159
+ requirement: &2156493620 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *2153187220
167
+ version_requirements: *2156493620
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: bundler
170
- requirement: &2153186740 !ruby/object:Gem::Requirement
170
+ requirement: &2156493200 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,7 +175,7 @@ dependencies:
175
175
  version: '0'
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *2153186740
178
+ version_requirements: *2156493200
179
179
  description: ! ' Ruby wrapper that supports all of the GitHub API v3 methods(nearly
180
180
  200). It''s build in a modular way, that is, you can either instantiate the whole
181
181
  api wrapper Github.new or use parts of it e.i. Github::Repos.new if working solely
@@ -186,6 +186,7 @@ extensions: []
186
186
  extra_rdoc_files: []
187
187
  files:
188
188
  - Rakefile
189
+ - features/cassettes/emojis/list.yml
189
190
  - features/cassettes/errors/repos/create.yml
190
191
  - features/cassettes/events/issue.yml
191
192
  - features/cassettes/events/network.yml
@@ -235,6 +236,9 @@ files:
235
236
  - features/cassettes/pagination/repos/per_page/first.yml
236
237
  - features/cassettes/pull_requests/get.yml
237
238
  - features/cassettes/pull_requests/list.yml
239
+ - features/cassettes/repos/assignees/ckeck.yml
240
+ - features/cassettes/repos/assignees/ckeck_not.yml
241
+ - features/cassettes/repos/assignees/list.yml
238
242
  - features/cassettes/repos/branch.yml
239
243
  - features/cassettes/repos/branches.yml
240
244
  - features/cassettes/repos/contents/archive.yml
@@ -255,6 +259,7 @@ files:
255
259
  - features/cassettes/users/emails/delete.yml
256
260
  - features/cassettes/users/get/oauth.yml
257
261
  - features/cassettes/users/get/user.yml
262
+ - features/emojis.feature
258
263
  - features/error_codes.feature
259
264
  - features/events.feature
260
265
  - features/gists/comments.feature
@@ -269,6 +274,7 @@ files:
269
274
  - features/pagination.feature
270
275
  - features/pull_requests.feature
271
276
  - features/README.rdoc
277
+ - features/repos/assignees.feature
272
278
  - features/repos/contents.feature
273
279
  - features/repos.feature
274
280
  - features/search.feature
@@ -296,6 +302,8 @@ files:
296
302
  - lib/github_api/core_ext/hash.rb
297
303
  - lib/github_api/core_ext/ordered_hash.rb
298
304
  - lib/github_api/deprecation.rb
305
+ - lib/github_api/descendants.rb
306
+ - lib/github_api/emojis.rb
299
307
  - lib/github_api/error/bad_request.rb
300
308
  - lib/github_api/error/client_error.rb
301
309
  - lib/github_api/error/forbidden.rb
@@ -340,6 +348,7 @@ files:
340
348
  - lib/github_api/pull_requests/comments.rb
341
349
  - lib/github_api/pull_requests.rb
342
350
  - lib/github_api/rate_limit.rb
351
+ - lib/github_api/repos/assignees.rb
343
352
  - lib/github_api/repos/collaborators.rb
344
353
  - lib/github_api/repos/commits.rb
345
354
  - lib/github_api/repos/contents.rb
@@ -415,6 +424,7 @@ files:
415
424
  - spec/fixtures/pull_requests/merge_success.json
416
425
  - spec/fixtures/pull_requests/pull_request.json
417
426
  - spec/fixtures/pull_requests/pull_requests.json
427
+ - spec/fixtures/repos/assignees.json
418
428
  - spec/fixtures/repos/branch.json
419
429
  - spec/fixtures/repos/branches.json
420
430
  - spec/fixtures/repos/collaborators.json
@@ -490,6 +500,7 @@ files:
490
500
  - spec/github/parameter_filter_spec.rb
491
501
  - spec/github/pull_requests/comments_spec.rb
492
502
  - spec/github/pull_requests_spec.rb
503
+ - spec/github/repos/assignees_spec.rb
493
504
  - spec/github/repos/collaborators_spec.rb
494
505
  - spec/github/repos/commits_spec.rb
495
506
  - spec/github/repos/contents_spec.rb
@@ -528,7 +539,7 @@ files:
528
539
  homepage: https://github.com/peter-murach/github
529
540
  licenses: []
530
541
  post_install_message: ! "\n--------------------------------------------------------------------------------\nThank
531
- you for installing github_api-0.6.4.\n\n*NOTE*: Version 0.5.0 introduces breaking
542
+ you for installing github_api-0.6.5.\n\n*NOTE*: Version 0.5.0 introduces breaking
532
543
  changes to the way github api is queried.\nThe interface has been rewritten to be
533
544
  more consistent with REST verbs that\ninteract with GitHub hypermedia resources.
534
545
  Thus, to list resources 'list' or 'all'\nverbs are used, to retrieve individual