github_api 0.8.6 → 0.8.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.
@@ -19,8 +19,8 @@ Feature: Pull Requests API
19
19
  Scenario: Get
20
20
 
21
21
  Given I want to get resource with the following params:
22
- | user | repo | request_id |
23
- | peter-murach | github | 36 |
22
+ | user | repo | number |
23
+ | peter-murach | github | 36 |
24
24
  When I make request within a cassette named "pull_requests/get"
25
25
  Then the response status should be 200
26
26
  And the response type should be JSON
@@ -30,8 +30,8 @@ module Github
30
30
  #
31
31
  # = Examples
32
32
  # github = Github.new
33
- # github.events.repository 'user-name', 'repo-name'
34
- # github.events.repository 'user-name', 'repo-name' { |event| ... }
33
+ # github.activity.events.repository 'user-name', 'repo-name'
34
+ # github.activity.events.repository 'user-name', 'repo-name' { |event| ... }
35
35
  #
36
36
  def repository(user_name, repo_name, params={})
37
37
  set :user => user_name, :repo => repo_name
@@ -51,8 +51,8 @@ module Github
51
51
  #
52
52
  # = Examples
53
53
  # github = Github.new
54
- # github.events.issue 'user-name', 'repo-name'
55
- # github.events.issue 'user-name', 'repo-name' { |event| ... }
54
+ # github.activity.events.issue 'user-name', 'repo-name'
55
+ # github.activity.events.issue 'user-name', 'repo-name' { |event| ... }
56
56
  #
57
57
  def issue(user_name, repo_name, params={})
58
58
  set :user => user_name, :repo => repo_name
@@ -71,8 +71,8 @@ module Github
71
71
  #
72
72
  # = Examples
73
73
  # github = Github.new
74
- # github.events.network 'user-name', 'repo-name'
75
- # github.events.network 'user-name', 'repo-name' { |event| ... }
74
+ # github.activity.events.network 'user-name', 'repo-name'
75
+ # github.activity.events.network 'user-name', 'repo-name' { |event| ... }
76
76
  #
77
77
  def network(user_name, repo_name, params={})
78
78
  set :user => user_name, :repo => repo_name
@@ -92,8 +92,8 @@ module Github
92
92
  #
93
93
  # = Examples
94
94
  # github = Github.new
95
- # github.events.org 'org-name'
96
- # github.events.org 'org-name' { |event| ... }
95
+ # github.activity.events.org 'org-name'
96
+ # github.activity.events.org 'org-name' { |event| ... }
97
97
  #
98
98
  def org(org_name, params={})
99
99
  assert_presence_of org_name
@@ -116,15 +116,15 @@ module Github
116
116
  #
117
117
  # = Examples
118
118
  # github = Github.new
119
- # github.events.received 'user-name'
120
- # github.events.received 'user-name' { |event| ... }
119
+ # github.activity.events.received 'user-name'
120
+ # github.activity.events.received 'user-name' { |event| ... }
121
121
  #
122
122
  # List all public events that a user has received
123
123
  #
124
124
  # = Examples
125
125
  # github = Github.new
126
- # github.events.received 'user-name', :public => true
127
- # github.events.received 'user-name', :public => true { |event| ... }
126
+ # github.activity.events.received 'user-name', :public => true
127
+ # github.activity.events.received 'user-name', :public => true { |event| ... }
128
128
  #
129
129
  def received(user_name, params={})
130
130
  assert_presence_of user_name
@@ -149,15 +149,15 @@ module Github
149
149
  #
150
150
  # = Examples
151
151
  # github = Github.new
152
- # github.events.performed 'user-name'
153
- # github.events.performed 'user-name' { |event| ... }
152
+ # github.activity.events.performed 'user-name'
153
+ # github.activity.events.performed 'user-name' { |event| ... }
154
154
  #
155
155
  # List all public events that a user has performed
156
156
  #
157
157
  # = Examples
158
158
  # github = Github.new
159
- # github.events.performed 'user-name', :public => true
160
- # github.events.performed 'user-name', :public => true { |event| ... }
159
+ # github.activity.events.performed 'user-name', :public => true
160
+ # github.activity.events.performed 'user-name', :public => true { |event| ... }
161
161
  #
162
162
  def performed(user_name, params={})
163
163
  assert_presence_of user_name
@@ -182,8 +182,8 @@ module Github
182
182
  #
183
183
  # = Examples
184
184
  # github = Github.new
185
- # github.events.user_org 'user-name', 'org-name'
186
- # github.events.user_org 'user-name', 'org-name' { |event| ... }
185
+ # github.activity.events.user_org 'user-name', 'org-name'
186
+ # github.activity.events.user_org 'user-name', 'org-name' { |event| ... }
187
187
  #
188
188
  def user_org(user_name, org_name, params={})
189
189
  assert_presence_of user_name, org_name
@@ -11,7 +11,8 @@ module Github
11
11
  {
12
12
  :site => options.fetch(:site) { Github.site },
13
13
  :authorize_url => 'login/oauth/authorize',
14
- :token_url => 'login/oauth/access_token'
14
+ :token_url => 'login/oauth/access_token',
15
+ :ssl => { :verify => false }
15
16
  }
16
17
  )
17
18
  end
@@ -34,7 +34,6 @@ module Github
34
34
  USER_AGENT => user_agent,
35
35
  CONTENT_TYPE => 'application/json'
36
36
  },
37
- :ssl => { :verify => false },
38
37
  :url => options.fetch(:endpoint) { Github.endpoint }
39
38
  }.merge(options)
40
39
  end
@@ -62,18 +62,17 @@ module Github
62
62
  #
63
63
  # = Examples
64
64
  # github = Github.new
65
- # github.pull_requests.get 'user-name', 'repo-name', 'request-id'
65
+ # github.pull_requests.get 'user-name', 'repo-name', 'number'
66
66
  #
67
- # @pull_reqs = Github::PullRequests.new
68
- # @pull_reqs.get 'user-name', 'repo-name', 'request-id'
67
+ # pull_reqs = Github::PullRequests.new
68
+ # pull_reqs.get 'user-name', 'repo-name', 'number'
69
69
  #
70
- def get(user_name, repo_name, request_id, params={})
70
+ def get(user_name, repo_name, number, params={})
71
71
  set :user => user_name, :repo => repo_name
72
- assert_presence_of user, repo, request_id
72
+ assert_presence_of user, repo, number
73
73
  normalize! params
74
- # _merge_mime_type(:pull_request, params)
75
74
 
76
- get_request("/repos/#{user}/#{repo}/pulls/#{request_id}", params)
75
+ get_request("/repos/#{user}/#{repo}/pulls/#{number}", params)
77
76
  end
78
77
  alias :find :get
79
78
 
@@ -101,7 +100,7 @@ module Github
101
100
  #
102
101
  # alternatively
103
102
  #
104
- # @github.pull_requests.create 'user-name', 'repo-name',
103
+ # github.pull_requests.create 'user-name', 'repo-name',
105
104
  # "issue" => "5",
106
105
  # "head" => "octocat:new-feature",
107
106
  # "base" => "master"
@@ -111,7 +110,6 @@ module Github
111
110
  assert_presence_of user, repo
112
111
 
113
112
  normalize! params
114
- # _merge_mime_type(:pull_request, params)
115
113
  filter! VALID_REQUEST_PARAM_NAMES, params
116
114
 
117
115
  post_request("/repos/#{user}/#{repo}/pulls", params)
@@ -126,37 +124,33 @@ module Github
126
124
  #
127
125
  # = Examples
128
126
  # github = Github.new :oauth_token => '...'
129
- # github.pull_requests.update 'user-name', 'repo-name', 'request-id'
127
+ # github.pull_requests.update 'user-name', 'repo-name', 'number'
130
128
  # "title" => "Amazing new title",
131
129
  # "body" => "Update body",
132
130
  # "state" => "open",
133
131
  #
134
- def update(user_name, repo_name, request_id, params={})
132
+ def update(user_name, repo_name, number, params={})
135
133
  set :user => user_name, :repo => repo_name
136
- assert_presence_of user, repo, request_id
137
-
134
+ assert_presence_of user, repo, number
138
135
  normalize! params
139
136
  filter! VALID_REQUEST_PARAM_NAMES, params
140
- # _merge_mime_type(:pull_request, params)
141
137
  assert_valid_values(VALID_REQUEST_PARAM_VALUES, params)
142
138
 
143
- patch_request("/repos/#{user}/#{repo}/pulls/#{request_id}", params)
139
+ patch_request("/repos/#{user}/#{repo}/pulls/#{number}", params)
144
140
  end
145
141
 
146
142
  # List commits on a pull request
147
143
  #
148
144
  # = Examples
149
145
  # github = Github.new
150
- # github.pull_requests.commits 'user-name', 'repo-name', 'request-id'
146
+ # github.pull_requests.commits 'user-name', 'repo-name', 'number'
151
147
  #
152
- def commits(user_name, repo_name, request_id, params={})
148
+ def commits(user_name, repo_name, number, params={})
153
149
  set :user => user_name, :repo => repo_name
154
- assert_presence_of user, repo, request_id
155
-
150
+ assert_presence_of user, repo, number
156
151
  normalize! params
157
- # _merge_mime_type(:pull_request, params)
158
152
 
159
- response = get_request("/repos/#{user}/#{repo}/pulls/#{request_id}/commits", params)
153
+ response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/commits", params)
160
154
  return response unless block_given?
161
155
  response.each { |el| yield el }
162
156
  end
@@ -165,15 +159,14 @@ module Github
165
159
  #
166
160
  # = Examples
167
161
  # github = Github.new
168
- # github.pull_requests.files 'user-name', 'repo-name', 'request-id'
162
+ # github.pull_requests.files 'user-name', 'repo-name', 'number'
169
163
  #
170
- def files(user_name, repo_name, request_id, params={})
164
+ def files(user_name, repo_name, number, params={})
171
165
  set :user => user_name, :repo => repo_name
172
- assert_presence_of user, repo, request_id
166
+ assert_presence_of user, repo, number
173
167
  normalize! params
174
- # _merge_mime_type(:pull_request, params)
175
168
 
176
- response = get_request("/repos/#{user}/#{repo}/pulls/#{request_id}/files", params)
169
+ response = get_request("/repos/#{user}/#{repo}/pulls/#{number}/files", params)
177
170
  return response unless block_given?
178
171
  response.each { |el| yield el }
179
172
  end
@@ -182,16 +175,14 @@ module Github
182
175
  #
183
176
  # = Examples
184
177
  # github = Github.new
185
- # github.pull_requests.merged? 'user-name', 'repo-name', 'request-id'
178
+ # github.pull_requests.merged? 'user-name', 'repo-name', 'number'
186
179
  #
187
- def merged?(user_name, repo_name, request_id, params={})
180
+ def merged?(user_name, repo_name, number, params={})
188
181
  set :user => user_name, :repo => repo_name
189
- assert_presence_of user, repo, request_id
190
-
182
+ assert_presence_of user, repo, number
191
183
  normalize! params
192
- # _merge_mime_type(:pull_request, params)
193
184
 
194
- get_request("/repos/#{user}/#{repo}/pulls/#{request_id}/merge", params)
185
+ get_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", params)
195
186
  true
196
187
  rescue Github::Error::NotFound
197
188
  false
@@ -200,21 +191,21 @@ module Github
200
191
  # Merge a pull request(Merge Button)
201
192
  #
202
193
  # = Inputs
203
- # <tt>:commit_message</tt> - Optional string - The message that will be used for the merge commit
194
+ # <tt>:commit_message</tt> - Optional string -
195
+ # The message that will be used for the merge commit
204
196
  #
205
197
  # = Examples
206
198
  # github = Github.new
207
- # github.pull_requests.merge 'user-name', 'repo-name', 'request-id'
199
+ # github.pull_requests.merge 'user-name', 'repo-name', 'number'
208
200
  #
209
- def merge(user_name, repo_name, request_id, params={})
201
+ def merge(user_name, repo_name, number, params={})
210
202
  set :user => user_name, :repo => repo_name
211
- assert_presence_of user, repo, request_id
203
+ assert_presence_of user, repo, number
212
204
 
213
205
  normalize! params
214
- # _merge_mime_type(:pull_request, params)
215
206
  filter! VALID_REQUEST_PARAM_NAMES, params
216
207
 
217
- put_request("/repos/#{user}/#{repo}/pulls/#{request_id}/merge", params)
208
+ put_request("/repos/#{user}/#{repo}/pulls/#{number}/merge", params)
218
209
  end
219
210
 
220
211
  end # PullRequests
@@ -3,6 +3,14 @@
3
3
  module Github
4
4
  class Repos::Commits < API
5
5
 
6
+ VALID_COMMITS_OPTIONS = %w[
7
+ sha
8
+ path
9
+ author
10
+ since
11
+ until
12
+ ].freeze
13
+
6
14
  # List commits on a repository
7
15
  #
8
16
  # = Parameters
@@ -19,7 +27,7 @@ module Github
19
27
  set :user => user_name, :repo => repo_name
20
28
  assert_presence_of user, repo
21
29
  normalize! params
22
- filter! %w[sha path author], params
30
+ filter! VALID_COMMITS_OPTIONS, params
23
31
 
24
32
  response = get_request("/repos/#{user}/#{repo}/commits", params)
25
33
  return response unless block_given?
@@ -4,7 +4,7 @@ module Github
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 8
7
- PATCH = 6
7
+ PATCH = 7
8
8
  BUILD = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.');
@@ -0,0 +1,74 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Github::PullRequests::Comments, '#list' do
6
+ let(:repo) { 'github' }
7
+ let(:user) { 'peter-murach' }
8
+ let(:number) { 1 }
9
+
10
+ before {
11
+ stub_get(request_path).to_return(:body => body, :status => status,
12
+ :headers => {:content_type => "application/json; charset=utf-8"})
13
+ }
14
+
15
+ after { reset_authentication_for(subject) }
16
+
17
+ context 'on a pull request' do
18
+ let(:request_path) { "/repos/#{user}/#{repo}/pulls/#{number}/comments" }
19
+ let(:body) { fixture('pull_requests/comments.json') }
20
+ let(:status) { 200 }
21
+
22
+ it { should respond_to :all }
23
+
24
+ it "throws error if comment id not provided" do
25
+ expect { subject.list user, nil }.to raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should get the resources" do
29
+ subject.list user, repo, :request_id => number
30
+ a_get(request_path).should have_been_made
31
+ end
32
+
33
+ it_should_behave_like 'an array of resources' do
34
+ let(:requestable) { subject.list user, repo, :request_id => number }
35
+ end
36
+
37
+ it "should get pull request comment information" do
38
+ comments = subject.list user, repo, :request_id => number
39
+ comments.first.id.should == number
40
+ end
41
+
42
+ it "should yield to a block" do
43
+ yielded = []
44
+ result = subject.list(user, repo, :request_id => number) {|obj| yielded << obj }
45
+ yielded.should == result
46
+ end
47
+ end
48
+
49
+ context 'in a repository' do
50
+ let(:request_path) { "/repos/#{user}/#{repo}/pulls/comments" }
51
+ let(:body) { fixture('pull_requests/comments.json') }
52
+ let(:status) { 200 }
53
+
54
+ it "should get the resources" do
55
+ subject.list user, repo
56
+ a_get(request_path).should have_been_made
57
+ end
58
+
59
+ it "should get pull request comment information" do
60
+ comments = subject.list user, repo
61
+ comments.first.id.should == number
62
+ end
63
+
64
+ it "should yield to a block" do
65
+ yielded = []
66
+ result = subject.list(user, repo) { |obj| yielded << obj }
67
+ yielded.should == result
68
+ end
69
+
70
+ it_should_behave_like 'request failure' do
71
+ let(:requestable) { subject.list user, repo }
72
+ end
73
+ end
74
+ end # list
@@ -11,102 +11,6 @@ describe Github::PullRequests::Comments do
11
11
 
12
12
  after { reset_authentication_for github }
13
13
 
14
- describe "#list" do
15
- it { github.pull_requests.comments.should respond_to :all }
16
-
17
- context 'on a pull request' do
18
- before do
19
- stub_get("/repos/#{user}/#{repo}/pulls/#{pull_request_id}/comments").
20
- to_return(:body => fixture('pull_requests/comments.json'),
21
- :status => 200,
22
- :headers => {:content_type => "application/json; charset=utf-8"})
23
- end
24
-
25
- it "throws error if comment id not provided" do
26
- expect {
27
- github.pull_requests.comments.list user, nil
28
- }.to raise_error(ArgumentError)
29
- end
30
-
31
- it "should get the resources" do
32
- github.pull_requests.comments.list user, repo, :request_id => pull_request_id
33
- a_get("/repos/#{user}/#{repo}/pulls/#{pull_request_id}/comments").
34
- should have_been_made
35
- end
36
-
37
- it "should return array of resources" do
38
- comments = github.pull_requests.comments.list user, repo, :request_id => pull_request_id
39
- comments.should be_an Array
40
- comments.should have(1).items
41
- end
42
-
43
- it "should be a mash type" do
44
- comments = github.pull_requests.comments.list user, repo, :request_id => pull_request_id
45
- comments.first.should be_a Hashie::Mash
46
- end
47
-
48
- it "should get pull request comment information" do
49
- comments = github.pull_requests.comments.list user, repo, :request_id => pull_request_id
50
- comments.first.id.should == pull_request_id
51
- end
52
-
53
- it "should yield to a block" do
54
- yielded = []
55
- result = github.pull_requests.comments.list(user, repo, :request_id => pull_request_id) { |obj| yielded << obj }
56
- yielded.should == result
57
- end
58
- end
59
-
60
- context 'in a repository' do
61
- before do
62
- stub_get("/repos/#{user}/#{repo}/pulls/comments").
63
- to_return(:body => fixture('pull_requests/comments.json'),
64
- :status => 200,
65
- :headers => {:content_type => "application/json; charset=utf-8"})
66
- end
67
-
68
- it "should get the resources" do
69
- github.pull_requests.comments.list user, repo
70
- a_get("/repos/#{user}/#{repo}/pulls/comments").should have_been_made
71
- end
72
-
73
- it "should return array of resources" do
74
- comments = github.pull_requests.comments.list user, repo
75
- comments.should be_an Array
76
- comments.should have(1).items
77
- end
78
-
79
- it "should be a mash type" do
80
- comments = github.pull_requests.comments.list user, repo
81
- comments.first.should be_a Hashie::Mash
82
- end
83
-
84
- it "should get pull request comment information" do
85
- comments = github.pull_requests.comments.list user, repo
86
- comments.first.id.should == pull_request_id
87
- end
88
-
89
- it "should yield to a block" do
90
- yielded = []
91
- result = github.pull_requests.comments.list(user, repo) { |obj| yielded << obj }
92
- yielded.should == result
93
- end
94
- end
95
-
96
- context 'resource not found' do
97
- before do
98
- stub_get("/repos/#{user}/#{repo}/pulls/#{pull_request_id}/comments").
99
- to_return(:body => "", :status => [404, "Not Found"])
100
- end
101
-
102
- it "should return 404 with a message 'Not Found'" do
103
- expect {
104
- github.pull_requests.comments.list user, repo, :request_id => pull_request_id
105
- }.to raise_error(Github::Error::NotFound)
106
- end
107
- end
108
- end # list
109
-
110
14
  describe "#get" do
111
15
  it { github.pull_requests.comments.should respond_to :find }
112
16