octokit 2.6.3 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c93fb54eadaba45488569de4fc7160ba8194bf9a
4
- data.tar.gz: 992710f4fe8a85fbcc7e7e394fe58a8cb7cf4346
3
+ metadata.gz: 44e64ada68666da82947ca24101ba7211dc42719
4
+ data.tar.gz: 03696bbca61e9dbea82b41b972046997cc865d9e
5
5
  SHA512:
6
- metadata.gz: 58d8dd778c6424ec1555e6ea289f9686af318666d13a8d879f2493cd66d740e16329fb02e6ca6bb2083673c21ca42a5d0c869c01bd783bf58a1cd9e02ce65cc5
7
- data.tar.gz: 2804410d31065bba88f8ece234e34e41eb3da6ab5935f7312196502bf4304b0e8cf22006e8f2494a448d5f66f7096006c86466d197fce7d0a9dbe7c4f25076ba
6
+ metadata.gz: b0ad9385e3c93bc1caa5c0c5b08554f44ac4577dcc578898e1522a1aaf8d0e7a99dfa380a43015c091bfffcfc6c63f4ca73a44a4de2775c0e17a620753ff16b6
7
+ data.tar.gz: 3f6f16e93823cb57be96d2999c7a04b33d9cb078a73570276ec7eba6da944db0a46d96c6590e6e22a61601143bfdabcef5644a783ad4bdbb7ada318b4a973f9c
@@ -5,9 +5,9 @@
5
5
  1. [Fork the repository.][fork]
6
6
  2. [Create a topic branch.][branch]
7
7
  3. Add specs for your unimplemented feature or bug fix.
8
- 4. Run `bundle exec rspec-queue spec`. If your specs pass, return to step 3.
8
+ 4. Run `script/test`. If your specs pass, return to step 3.
9
9
  5. Implement your feature or bug fix.
10
- 6. Run `bundle exec rspec-queue spec`. If your specs fail, return to step 5.
10
+ 6. Run `script/test`. If your specs fail, return to step 5.
11
11
  7. Run `open coverage/index.html`. If your changes are not completely covered
12
12
  by your tests, return to step 3.
13
13
  8. Add documentation for your feature or bug fix.
@@ -13,6 +13,7 @@ require 'octokit/client/contents'
13
13
  require 'octokit/client/downloads'
14
14
  require 'octokit/client/emojis'
15
15
  require 'octokit/client/events'
16
+ require 'octokit/client/feeds'
16
17
  require 'octokit/client/gists'
17
18
  require 'octokit/client/gitignore'
18
19
  require 'octokit/client/hooks'
@@ -54,6 +55,7 @@ module Octokit
54
55
  include Octokit::Client::Downloads
55
56
  include Octokit::Client::Emojis
56
57
  include Octokit::Client::Events
58
+ include Octokit::Client::Feeds
57
59
  include Octokit::Client::Gists
58
60
  include Octokit::Client::Gitignore
59
61
  include Octokit::Client::Hooks
@@ -178,8 +180,12 @@ module Octokit
178
180
  #
179
181
  # @param url [String] The path, relative to {#api_endpoint}
180
182
  # @param options [Hash] Query and header params for request
183
+ # @param block [Block] Block to perform the data concatination of the
184
+ # multiple requests. The block is called with two parameters, the first
185
+ # contains the contents of the requests so far and the second parameter
186
+ # contains the latest response.
181
187
  # @return [Sawyer::Resource]
182
- def paginate(url, options = {})
188
+ def paginate(url, options = {}, &block)
183
189
  opts = parse_query_and_convenience_headers(options.dup)
184
190
  if @auto_paginate || @per_page
185
191
  opts[:query][:per_page] ||= @per_page || (@auto_paginate ? 100 : nil)
@@ -187,10 +193,14 @@ module Octokit
187
193
 
188
194
  data = request(:get, url, opts)
189
195
 
190
- if @auto_paginate && data.is_a?(Array)
196
+ if @auto_paginate
191
197
  while @last_response.rels[:next] && rate_limit.remaining > 0
192
198
  @last_response = @last_response.rels[:next].get
193
- data.concat(@last_response.data) if @last_response.data.is_a?(Array)
199
+ if block_given?
200
+ yield(data, @last_response)
201
+ else
202
+ data.concat(@last_response.data) if @last_response.data.is_a?(Array)
203
+ end
194
204
  end
195
205
 
196
206
  end
@@ -10,7 +10,7 @@ module Octokit
10
10
  #
11
11
  # @param repo [String, Hash, Repository] A GitHub repository
12
12
  # @return [Array] List of commit comments
13
- # @see http://developer.github.com/v3/repos/comments/
13
+ # @see http://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository
14
14
  def list_commit_comments(repo, options = {})
15
15
  get "repos/#{Repository.new(repo)}/comments", options
16
16
  end
@@ -20,7 +20,7 @@ module Octokit
20
20
  # @param repo [String, Hash, Repository] A GitHub repository
21
21
  # @param sha [String] The SHA of the commit whose comments will be fetched
22
22
  # @return [Array] List of commit comments
23
- # @see http://developer.github.com/v3/repos/comments/
23
+ # @see http://developer.github.com/v3/repos/comments/#list-comments-for-a-single-commit
24
24
  def commit_comments(repo, sha, options = {})
25
25
  get "repos/#{Repository.new(repo)}/commits/#{sha}/comments", options
26
26
  end
@@ -30,7 +30,7 @@ module Octokit
30
30
  # @param repo [String, Hash, Repository] A GitHub repository
31
31
  # @param id [String] The ID of the comment to fetch
32
32
  # @return [Sawyer::Resource] Commit comment
33
- # @see http://developer.github.com/v3/repos/comments/
33
+ # @see http://developer.github.com/v3/repos/comments/#get-a-single-commit-comment
34
34
  def commit_comment(repo, id, options = {})
35
35
  get "repos/#{Repository.new(repo)}/comments/#{id}", options
36
36
  end
@@ -44,7 +44,7 @@ module Octokit
44
44
  # @param line [Integer] Line number in the file to comment on
45
45
  # @param position [Integer] Line index in the diff to comment on
46
46
  # @return [Sawyer::Resource] Commit comment
47
- # @see http://developer.github.com/v3/repos/comments/
47
+ # @see http://developer.github.com/v3/repos/comments/#create-a-commit-comment
48
48
  # @example Create a commit comment
49
49
  # commit = Octokit.create_commit_comment("octocat/Hello-World", "827efc6d56897b048c772eb4087f854f46256132", "My comment message", "README.md", 10, 1)
50
50
  # commit.commit_id # => "827efc6d56897b048c772eb4087f854f46256132"
@@ -69,7 +69,7 @@ module Octokit
69
69
  # @param id [String] The ID of the comment to update
70
70
  # @param body [String] Message
71
71
  # @return [Sawyer::Resource] Updated commit comment
72
- # @see http://developer.github.com/v3/repos/comments/
72
+ # @see http://developer.github.com/v3/repos/comments/#update-a-commit-comment
73
73
  # @example Update a commit comment
74
74
  # commit = Octokit.update_commit_comment("octocat/Hello-World", "860296", "Updated commit comment")
75
75
  # commit.id # => 860296
@@ -86,7 +86,7 @@ module Octokit
86
86
  # @param repo [String, Hash, Repository] A GitHub repository
87
87
  # @param id [String] The ID of the comment to delete
88
88
  # @return [Boolean] Success
89
- # @see http://developer.github.com/v3/repos/comments/
89
+ # @see http://developer.github.com/v3/repos/comments/#delete-a-commit-comment
90
90
  def delete_commit_comment(repo, id, options = {})
91
91
  boolean_from_response :delete, "repos/#{Repository.new(repo)}/comments/#{id}", options
92
92
  end
@@ -19,7 +19,7 @@ module Octokit
19
19
  # @param repo [String, Hash, Repository] A GitHub repository
20
20
  # @param options [String] :sha Commit SHA or branch name from which to start the list
21
21
  # @return [Array<Sawyer::Resource>] An array of hashes representing commits
22
- # @see http://developer.github.com/v3/repos/commits/
22
+ # @see http://developer.github.com/v3/repos/commits/#list-commits-on-a-repository
23
23
  def commits(*args)
24
24
  arguments = Octokit::RepoArguments.new(args)
25
25
  sha_or_branch = arguments.pop
@@ -43,7 +43,7 @@ module Octokit
43
43
  # @param sha_or_branch [String] A commit SHA or branch name
44
44
  # @param options [String] :sha Commit SHA or branch name from which to start the list
45
45
  # @return [Array<Sawyer::Resource>] An array of hashes representing commits
46
- # @see http://developer.github.com/v3/repos/commits/
46
+ # @see http://developer.github.com/v3/repos/commits/#list-commits-on-a-repository
47
47
  # @example
48
48
  # Octokit.commits_since('octokit/octokit.rb', '2012-10-01')
49
49
  def commits_since(*args)
@@ -70,7 +70,7 @@ module Octokit
70
70
  # @param date [String] Date on which we want to compare
71
71
  # @param sha_or_branch [String] Commit SHA or branch name from which to start the list
72
72
  # @return [Array<Sawyer::Resource>] An array of hashes representing commits
73
- # @see http://developer.github.com/v3/repos/commits/
73
+ # @see http://developer.github.com/v3/repos/commits/#list-commits-on-a-repository
74
74
  # @example
75
75
  # Octokit.commits_before('octokit/octokit.rb', '2012-10-01')
76
76
  def commits_before(*args)
@@ -97,7 +97,7 @@ module Octokit
97
97
  # @param date [String] Date on which we want to compare
98
98
  # @param sha_or_branch [String] Commit SHA or branch name from which to start the list
99
99
  # @return [Array<Sawyer::Resource>] An array of hashes representing commits
100
- # @see http://developer.github.com/v3/repos/commits/
100
+ # @see http://developer.github.com/v3/repos/commits/#list-commits-on-a-repository
101
101
  # @example
102
102
  # Octokit.commits_on('octokit/octokit.rb', '2012-10-01')
103
103
  def commits_on(*args)
@@ -126,7 +126,7 @@ module Octokit
126
126
  # @param end_date [String] End Date on which we want to compare
127
127
  # @param sha_or_branch [String] Commit SHA or branch name from which to start the list
128
128
  # @return [Array<Sawyer::Resource>] An array of hashes representing commits
129
- # @see http://developer.github.com/v3/repos/commits/
129
+ # @see http://developer.github.com/v3/repos/commits/#list-commits-on-a-repository
130
130
  # @example
131
131
  # Octokit.commits_on('octokit/octokit.rb', '2012-10-01', '2012-11-01')
132
132
  def commits_between(*args)
@@ -149,11 +149,21 @@ module Octokit
149
149
  # @param repo [String, Hash, Repository] A GitHub repository
150
150
  # @param sha [String] The SHA of the commit to fetch
151
151
  # @return [Sawyer::Resource] A hash representing the commit
152
- # @see http://developer.github.com/v3/repos/commits/
152
+ # @see http://developer.github.com/v3/repos/commits/#get-a-single-commit
153
153
  def commit(repo, sha, options = {})
154
154
  get "repos/#{Repository.new(repo)}/commits/#{sha}", options
155
155
  end
156
156
 
157
+ # Get a detailed git commit
158
+ #
159
+ # @param repo [String, Hash, Repository] A GitHub repository
160
+ # @param sha [String] The SHA of the commit to fetch
161
+ # @return [Sawyer::Resource] A hash representing the commit
162
+ # @see http://developer.github.com/v3/git/commits/#get-a-commit
163
+ def git_commit(repo, sha, options = {})
164
+ get "repos/#{Repository.new(repo)}/git/commits/#{sha}", options
165
+ end
166
+
157
167
  # Create a commit
158
168
  #
159
169
  # Optionally pass <tt>author</tt> and <tt>committer</tt> hashes in <tt>options</tt>
@@ -166,7 +176,7 @@ module Octokit
166
176
  # @param tree [String] The SHA of the tree object the new commit will point to
167
177
  # @param parents [String, Array] One SHA (for a normal commit) or an array of SHAs (for a merge) of the new commit's parent commits. If ommitted or empty, a root commit will be created
168
178
  # @return [Sawyer::Resource] A hash representing the new commit
169
- # @see http://developer.github.com/v3/git/commits/
179
+ # @see http://developer.github.com/v3/git/commits/#create-a-commit
170
180
  # @example Create a commit
171
181
  # commit = Octokit.create_commit("octocat/Hello-World", "My commit message", "827efc6d56897b048c772eb4087f854f46256132", "7d1b31e74ee336d15cbd21741bc88a537ed063a0")
172
182
  # commit.sha # => "7638417db6d59f3c431d3e1f261cc637155684cd"
@@ -183,7 +193,7 @@ module Octokit
183
193
  #
184
194
  # @param repo [String, Hash, Repository] A GitHub repository
185
195
  # @return [Array] An array of hashes representing comments
186
- # @see http://developer.github.com/v3/repos/comments/
196
+ # @see http://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository
187
197
  def list_commit_comments(repo, options = {})
188
198
  get "repos/#{Repository.new(repo)}/comments", options
189
199
  end
@@ -193,7 +203,7 @@ module Octokit
193
203
  # @param repo [String, Hash, Repository] A GitHub repository
194
204
  # @param sha [String] The SHA of the commit whose comments will be fetched
195
205
  # @return [Array] An array of hashes representing comments
196
- # @see http://developer.github.com/v3/repos/comments/
206
+ # @see http://developer.github.com/v3/repos/comments/#list-comments-for-a-single-commit
197
207
  def commit_comments(repo, sha, options = {})
198
208
  get "repos/#{Repository.new(repo)}/commits/#{sha}/comments", options
199
209
  end
@@ -203,7 +213,7 @@ module Octokit
203
213
  # @param repo [String, Hash, Repository] A GitHub repository
204
214
  # @param id [String] The ID of the comment to fetch
205
215
  # @return [Sawyer::Resource] A hash representing the comment
206
- # @see http://developer.github.com/v3/repos/comments/
216
+ # @see http://developer.github.com/v3/repos/comments/#get-a-single-commit-comment
207
217
  def commit_comment(repo, id, options = {})
208
218
  get "repos/#{Repository.new(repo)}/comments/#{id}", options
209
219
  end
@@ -217,7 +227,7 @@ module Octokit
217
227
  # @param line [Integer] Line number in the file to comment on
218
228
  # @param position [Integer] Line index in the diff to comment on
219
229
  # @return [Sawyer::Resource] A hash representing the new commit comment
220
- # @see http://developer.github.com/v3/repos/comments/
230
+ # @see http://developer.github.com/v3/repos/comments/#create-a-commit-comment
221
231
  # @example Create a commit comment
222
232
  # commit = Octokit.create_commit_comment("octocat/Hello-World", "827efc6d56897b048c772eb4087f854f46256132", "My comment message", "README.md", 10, 1)
223
233
  # commit.commit_id # => "827efc6d56897b048c772eb4087f854f46256132"
@@ -242,7 +252,7 @@ module Octokit
242
252
  # @param id [String] The ID of the comment to update
243
253
  # @param body [String] Message
244
254
  # @return [Sawyer::Resource] A hash representing the updated commit comment
245
- # @see http://developer.github.com/v3/repos/comments/
255
+ # @see http://developer.github.com/v3/repos/comments/#update-a-commit-comment
246
256
  # @example Update a commit comment
247
257
  # commit = Octokit.update_commit_comment("octocat/Hello-World", "860296", "Updated commit comment")
248
258
  # commit.id # => 860296
@@ -259,7 +269,7 @@ module Octokit
259
269
  # @param repo [String, Hash, Repository] A GitHub repository
260
270
  # @param id [String] The ID of the comment to delete
261
271
  # @return [nil] nil
262
- # @see http://developer.github.com/v3/repos/comments/
272
+ # @see http://developer.github.com/v3/repos/comments/#delete-a-commit-comment
263
273
  def delete_commit_comment(repo, id, options = {})
264
274
  boolean_from_response :delete, "repos/#{Repository.new(repo)}/comments/#{id}", options
265
275
  end
@@ -270,7 +280,7 @@ module Octokit
270
280
  # @param start [String] The sha of the starting commit
271
281
  # @param endd [String] The sha of the ending commit
272
282
  # @return [Sawyer::Resource] A hash representing the comparison
273
- # @see http://developer.github.com/v3/repos/commits/
283
+ # @see http://developer.github.com/v3/repos/commits/#compare-two-commits
274
284
  def compare(repo, start, endd, options = {})
275
285
  get "repos/#{Repository.new(repo)}/compare/#{start}...#{endd}", options
276
286
  end
@@ -282,7 +292,7 @@ module Octokit
282
292
  # @param head [String] The branch or SHA1 to merge
283
293
  # @option options [String] :commit_message The commit message for the merge
284
294
  # @return [Sawyer::Resource] A hash representing the comparison
285
- # @see http://developer.github.com/v3/repos/merging/
295
+ # @see http://developer.github.com/v3/repos/merging/#perform-a-merge
286
296
  def merge(repo, base, head, options = {})
287
297
  params = {
288
298
  :base => base,
@@ -13,7 +13,7 @@ module Octokit
13
13
  # @param repo [String, Repository, Hash] A GitHub repository
14
14
  # @option options [String] :ref name of the Commit/Branch/Tag. Defaults to “master”.
15
15
  # @return [Sawyer::Resource] The detail of the readme
16
- # @see http://developer.github.com/v3/repos/contents/
16
+ # @see http://developer.github.com/v3/repos/contents/#get-the-readme
17
17
  # @example Get the readme file for a repo
18
18
  # Octokit.readme("octokit/octokit.rb")
19
19
  def readme(repo, options={})
@@ -26,7 +26,7 @@ module Octokit
26
26
  # @option options [String] :path A folder or file path
27
27
  # @option options [String] :ref name of the Commit/Branch/Tag. Defaults to “master”.
28
28
  # @return [Sawyer::Resource] The contents of a file or list of the files in the folder
29
- # @see http://developer.github.com/v3/repos/contents/
29
+ # @see http://developer.github.com/v3/repos/contents/#get-contents
30
30
  # @example List the contents of lib/octokit.rb
31
31
  # Octokit.contents("octokit/octokit.rb", :path => 'lib/octokit.rb')
32
32
  def contents(repo, options={})
@@ -146,7 +146,7 @@ module Octokit
146
146
  # @option options format [String] Either tarball (default) or zipball.
147
147
  # @option options [String] :ref Optional valid Git reference, defaults to master.
148
148
  # @return [String] Location of the download
149
- # @see http://developer.github.com/v3/repos/contents/
149
+ # @see http://developer.github.com/v3/repos/contents/#get-archive-link
150
150
  # @example Get archive link for octokit/octokit.rb
151
151
  # Octokit.archive_link("octokit/octokit.rb")
152
152
  def archive_link(repo, options={})
@@ -75,7 +75,7 @@ module Octokit
75
75
  # @param repo [String, Repository, Hash] A GitHub repository
76
76
  # @param id [Integer] ID of the download
77
77
  # @deprecated As of December 11th, 2012: https://github.com/blog/1302-goodbye-uploads
78
- # @see http://developer.github.com/v3/repos/downloads/#delete-a-single-download
78
+ # @see http://developer.github.com/v3/repos/downloads/#delete-a-download
79
79
  # @return [Boolean] Status
80
80
  # @example Get the "Robawt" download from Github/Hubot
81
81
  # Octokit.delete_download("github/hubot", 1234)
@@ -7,6 +7,7 @@ module Octokit
7
7
  # List all emojis used on GitHub
8
8
  #
9
9
  # @return [Sawyer::Resource] A list of all emojis on GitHub
10
+ # @see http://developer.github.com/v3/emojis/#emojis
10
11
  # @example List all emojis
11
12
  # Octokit.emojis
12
13
  def emojis(options = {})
@@ -110,6 +110,7 @@ module Octokit
110
110
  #
111
111
  # @return [Array<Sawyer::Resource>] Array of all Issue Events for this Repository
112
112
  # @see http://developer.github.com/v3/issues/events/#list-events-for-a-repository
113
+ # @see http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
113
114
  # @example Get all Issue Events for Octokit
114
115
  # Octokit.repository_issue_events("octokit/octokit.rb")
115
116
  def repository_issue_events(repo, options = {})
@@ -0,0 +1,33 @@
1
+ module Octokit
2
+ class Client
3
+
4
+ # Methods for the Feeds API
5
+ #
6
+ # @see http://developer.github.com/v3/activity/feeds/
7
+ module Feeds
8
+
9
+ # List Feeds
10
+ #
11
+ # The feeds returned depend on authentication, see the GitHub API docs
12
+ # for more information.
13
+ #
14
+ # @return [Array<Sawyer::Resource>] list of feeds
15
+ # @see http://developer.github.com/v3/activity/feeds/#list-feeds
16
+ def feeds
17
+ get "feeds"
18
+ end
19
+
20
+ # Get a Feed by name
21
+ #
22
+ # @param [Symbol, String] Name of feed to retrieve.
23
+ # @return [Feed] Parsed feed in the format returned by the configured
24
+ # parser.
25
+ def feed(name, options = {})
26
+ if rel = feeds._links[name]
27
+ get rel.href, :accept => rel.type, :options => options
28
+ end
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -37,6 +37,7 @@ module Octokit
37
37
  # List the authenticated user’s starred gists
38
38
  #
39
39
  # @return [Array<Sawyer::Resource>] A list of gists
40
+ # @see http://developer.github.com/v3/gists/#list-gists
40
41
  def starred_gists(options = {})
41
42
  paginate 'gists/starred', options
42
43
  end
@@ -11,7 +11,6 @@ module Octokit
11
11
  # These templates can be passed option when creating a repository.
12
12
  #
13
13
  # @see http://developer.github.com/v3/gitignore/#listing-available-templates
14
- # @see http://developer.github.com/v3/repos/#create
15
14
  #
16
15
  # @return [Array<String>] List of templates.
17
16
  #
@@ -7,6 +7,7 @@ module Octokit
7
7
  # List all Service Hooks supported by GitHub
8
8
  #
9
9
  # @return [Sawyer::Resource] A list of all hooks on GitHub
10
+ # @see http://developer.github.com/v3/repos/hooks/#services
10
11
  # @example List all hooks
11
12
  # Octokit.available_hooks
12
13
  def available_hooks(options = {})
@@ -20,7 +20,8 @@ module Octokit
20
20
  # @option options [String] :direction (desc) Direction: <tt>asc</tt> or <tt>desc</tt>.
21
21
  # @option options [Integer] :page (1) Page number.
22
22
  # @return [Array<Sawyer::Resource>] A list of issues for a repository.
23
- # @see http://developer.github.com/v3/issues/#list-issues-for-this-repository
23
+ # @see http://developer.github.com/v3/issues/#list-issues-for-a-repository
24
+ # @see http://developer.github.com/v3/issues/#list-issues
24
25
  # @example List issues for a repository
25
26
  # Octokit.list_issues("sferik/rails_admin")
26
27
  # @example List issues for the authenticted user across repositories
@@ -103,7 +104,7 @@ module Octokit
103
104
  # Get a single issue from a repository
104
105
  #
105
106
  # @param repo [String, Repository, Hash] A GitHub repository
106
- # @param number [String] Number ID of the issue
107
+ # @param number [Integer] Number ID of the issue
107
108
  # @return [Sawyer::Resource] The issue you requested, if it exists
108
109
  # @see http://developer.github.com/v3/issues/#get-a-single-issue
109
110
  # @example Get issue #25 from octokit/octokit.rb
@@ -115,7 +116,7 @@ module Octokit
115
116
  # Close an issue
116
117
  #
117
118
  # @param repo [String, Repository, Hash] A GitHub repository
118
- # @param number [String] Number ID of the issue
119
+ # @param number [Integer] Number ID of the issue
119
120
  # @param options [Hash] A customizable set of options.
120
121
  # @option options [String] :assignee User login.
121
122
  # @option options [Integer] :milestone Milestone number.
@@ -131,7 +132,7 @@ module Octokit
131
132
  # Reopen an issue
132
133
  #
133
134
  # @param repo [String, Repository, Hash] A GitHub repository
134
- # @param number [String] Number ID of the issue
135
+ # @param number [Integer] Number ID of the issue
135
136
  # @param options [Hash] A customizable set of options.
136
137
  # @option options [String] :assignee User login.
137
138
  # @option options [Integer] :milestone Milestone number.
@@ -147,7 +148,7 @@ module Octokit
147
148
  # Update an issue
148
149
  #
149
150
  # @param repo [String, Repository, Hash] A GitHub repository
150
- # @param number [String] Number ID of the issue
151
+ # @param number [Integer] Number ID of the issue
151
152
  # @param title [String] Updated title for the issue
152
153
  # @param body [String] Updated body of the issue
153
154
  # @param options [Hash] A customizable set of options.
@@ -195,9 +196,9 @@ module Octokit
195
196
  # Get all comments attached to an issue
196
197
  #
197
198
  # @param repo [String, Repository, Hash] A GitHub repository
198
- # @param number [String] Number ID of the issue
199
+ # @param number [Integer] Number ID of the issue
199
200
  # @return [Array<Sawyer::Resource>] Array of comments that belong to an issue
200
- # @see http://developer.github.com/v3/issues/comments
201
+ # @see http://developer.github.com/v3/issues/comments/#list-comments-on-an-issue
201
202
  # @example Get comments for issue #25 from octokit/octokit.rb
202
203
  # Octokit.issue_comments("octokit/octokit.rb", "25")
203
204
  def issue_comments(repo, number, options = {})
@@ -207,7 +208,7 @@ module Octokit
207
208
  # Get a single comment attached to an issue
208
209
  #
209
210
  # @param repo [String, Repository, Hash] A GitHub repository
210
- # @param number [String] Number ID of the comment
211
+ # @param number [Integer] Number ID of the comment
211
212
  # @return [Sawyer::Resource] The specific comment in question
212
213
  # @see http://developer.github.com/v3/issues/comments/#get-a-single-comment
213
214
  # @example Get comment #1194549 from an issue on octokit/octokit.rb
@@ -12,7 +12,7 @@ module Octokit
12
12
  #
13
13
  # @param repo [String, Repository, Hash] A GitHub repository
14
14
  # @return [Array<Sawyer::Resource>] A list of the labels across the repository
15
- # @see http://developer.github.com/v3/issues/labels/
15
+ # @see http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository
16
16
  # @example List labels for octokit/octokit.rb
17
17
  # Octokit.labels("octokit/octokit.rb")
18
18
  def labels(repo, options = {})
@@ -37,7 +37,7 @@ module Octokit
37
37
  # @param label [String] A new label
38
38
  # @param color [String] A color, in hex, without the leading #
39
39
  # @return [Sawyer::Resource] The new label
40
- # @see http://developer.github.com/v3/issues/labels/
40
+ # @see http://developer.github.com/v3/issues/labels/#create-a-label
41
41
  # @example Add a new label "Version 1.0" with color "#cccccc"
42
42
  # Octokit.add_label("octokit/octokit.rb", "Version 1.0", "cccccc")
43
43
  def add_label(repo, label, color="ffffff", options = {})
@@ -49,7 +49,7 @@ module Octokit
49
49
  # @param repo [String, Repository, Hash] A GitHub repository
50
50
  # @param label [String] The name of the label which will be updated
51
51
  # @param options [Hash] A customizable set of options.
52
- # @option options [String] :title An updated label name
52
+ # @option options [String] :name An updated label name
53
53
  # @option options [String] :color An updated color value, in hex, without leading #
54
54
  # @return [Sawyer::Resource] The updated label
55
55
  # @see http://developer.github.com/v3/issues/labels/#update-a-label
@@ -12,7 +12,7 @@ module Octokit
12
12
  # @option options [String] (optional) :mode (`markdown` or `gfm`)
13
13
  # @option options [String] (optional) :context Repo context
14
14
  # @return [String] HTML renderization
15
- # @see http://developer.github.com/v3/repos/markdown/
15
+ # @see http://developer.github.com/v3/markdown/#render-an-arbitrary-markdown-document
16
16
  # @example Render some GFM
17
17
  # Octokit.markdown('Fixed in #111', :mode => "gfm", :context => "octokit/octokit.rb")
18
18
  def markdown(text, options = {})
@@ -7,7 +7,7 @@ module Octokit
7
7
  module Meta
8
8
 
9
9
  # Get meta information about GitHub.com, the service.
10
- # @see http://developer.github.com/v3/meta/
10
+ # @see http://developer.github.com/v3/meta/#meta
11
11
  # @return [Sawyer::Resource] Hash with meta information.
12
12
  # @example Get GitHub meta information
13
13
  # @client.github_meta
@@ -15,7 +15,7 @@ module Octokit
15
15
  # @option options [String] :sort (created) Sort: <tt>created</tt>, <tt>updated</tt>, or <tt>comments</tt>.
16
16
  # @option options [String] :direction (desc) Direction: <tt>asc</tt> or <tt>desc</tt>.
17
17
  # @return [Array<Sawyer::Resource>] A list of milestones for a repository.
18
- # @see http://developer.github.com/v3/issues/milestones/#List-Milestones-for-an-Issue
18
+ # @see http://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository
19
19
  # @example List milestones for a repository
20
20
  # Octokit.list_milestones("octokit/octokit.rb")
21
21
  def list_milestones(repository, options = {})
@@ -13,12 +13,13 @@ module Octokit
13
13
  # @param repo [String, Hash, Repository] A GitHub repository
14
14
  # @param tree_sha [String] The SHA of the tree to fetch
15
15
  # @return [Sawyer::Resource] A hash representing the fetched tree
16
- # @see http://developer.github.com/v3/git/trees/
16
+ # @see http://developer.github.com/v3/git/trees/#get-a-tree
17
+ # @see http://developer.github.com/v3/git/trees/#get-a-tree-recursively
17
18
  # @example Fetch a tree and inspect the path of one of its files
18
19
  # tree = Octokit.tree("octocat/Hello-World", "9fb037999f264ba9a7fc6274d15fa3ae2ab98312")
19
20
  # tree.tree.first.path # => "file.rb"
20
21
  # @example Fetch a tree recursively
21
- # tree = Octokit.tree("octocat/Hello-World", "fc6274d15fa3ae2ab983129fb037999f264ba9a7")
22
+ # tree = Octokit.tree("octocat/Hello-World", "fc6274d15fa3ae2ab983129fb037999f264ba9a7", :recursive => true)
22
23
  # tree.tree.first.path # => "subdir/file.txt"
23
24
  def tree(repo, tree_sha, options = {})
24
25
  get "repos/#{Repository.new(repo)}/git/trees/#{tree_sha}", options
@@ -31,7 +32,7 @@ module Octokit
31
32
  # @param repo [String, Hash, Repository] A GitHub repository
32
33
  # @param tree [Array] An array of hashes representing a tree structure
33
34
  # @return [Sawyer::Resource] A hash representing the new tree
34
- # @see http://developer.github.com/v3/git/trees/
35
+ # @see http://developer.github.com/v3/git/trees/#create-a-tree
35
36
  # @example Create a tree containing one file
36
37
  # tree = Octokit.create_tree("octocat/Hello-World", [ { :path => "file.rb", :mode => "100644", :type => "blob", :sha => "44b4fc6d56897b048c772eb4087f854f46256132" } ])
37
38
  # tree.sha # => "cd8274d15fa3ae2ab983129fb037999f264ba9a7"
@@ -46,7 +47,7 @@ module Octokit
46
47
  # @param repo [String, Hash, Repository] A GitHub repository
47
48
  # @param blob_sha [String] The SHA of the blob to fetch
48
49
  # @return [Sawyer::Resource] A hash representing the fetched blob
49
- # @see http://developer.github.com/v3/git/blobs/
50
+ # @see http://developer.github.com/v3/git/blobs/#get-a-blob
50
51
  # @example Fetch a blob and inspect its contents
51
52
  # blob = Octokit.blob("octocat/Hello-World", "827efc6d56897b048c772eb4087f854f46256132")
52
53
  # blob.encoding # => "utf-8"
@@ -67,7 +68,7 @@ module Octokit
67
68
  # @param content [String] Content of the blob
68
69
  # @param encoding [String] The content's encoding. <tt>utf-8</tt> and <tt>base64</tt> are accepted. If your data cannot be losslessly sent as a UTF-8 string, you can base64 encode it
69
70
  # @return [String] The new blob's SHA, e.g. <tt>827efc6d56897b048c772eb4087f854f46256132</tt>
70
- # @see http://developer.github.com/v3/git/blobs/
71
+ # @see http://developer.github.com/v3/git/blobs/#create-a-blob
71
72
  # @example Create a blob containing <tt>foo bar baz</tt>
72
73
  # Octokit.create_blob("octocat/Hello-World", "foo bar baz")
73
74
  # @example Create a blob containing <tt>foo bar baz</tt>, encoded using base64
@@ -118,18 +118,33 @@ module Octokit
118
118
  #
119
119
  # @param org [String] Organization GitHub username.
120
120
  # @return [Array<Sawyer::Resource>] Array of hashes representing users.
121
- # @see http://developer.github.com/v3/orgs/members/#list-members
121
+ # @see http://developer.github.com/v3/orgs/members/#members-list
122
122
  # @example
123
123
  # Octokit.organization_members('github')
124
124
  # @example
125
- # @client.organization_members('github')
126
- # @example
127
125
  # Octokit.org_members('github')
128
126
  def organization_members(org, options = {})
129
- paginate "orgs/#{org}/members", options
127
+ path = "public_" if options.delete(:public)
128
+ paginate "orgs/#{org}/#{path}members", options
130
129
  end
131
130
  alias :org_members :organization_members
132
131
 
132
+ # Get organization public members
133
+ #
134
+ # Lists the public members of an organization
135
+ #
136
+ # @param org [String] Organization GitHub username.
137
+ # @return [Array<Sawyer::Resource>] Array of hashes representing users.
138
+ # @see http://developer.github.com/v3/orgs/members/#public-members-list
139
+ # @example
140
+ # Octokit.organization_public_members('github')
141
+ # @example
142
+ # Octokit.org_public_members('github')
143
+ def organization_public_members(org, options = {})
144
+ organization_members org, options.merge(:public => true)
145
+ end
146
+ alias :org_public_members :organization_public_members
147
+
133
148
  # Check if a user is a member of an organization.
134
149
  #
135
150
  # Use this to check if another user is a member of an organization that
@@ -346,6 +361,23 @@ module Octokit
346
361
  end
347
362
  alias :team_repos :team_repositories
348
363
 
364
+ # Check if a repo is managed by a specific team
365
+ #
366
+ # @param team_id [Integer] Team ID.
367
+ # @param repo [String, Hash, Repository] A GitHub repository.
368
+ # @return [Boolean] True if managed by a team. False if not managed by
369
+ # the team OR the requesting user does not have authorization to access
370
+ # the team information.
371
+ # @see http://developer.github.com/v3/orgs/teams/#get-team-repo
372
+ # @example
373
+ # @client.team_repository?(8675309, 'octokit/octokit.rb')
374
+ # @example
375
+ # @client.team_repo?(8675309, 'octokit/octokit.rb')
376
+ def team_repository?(team_id, repo, options = {})
377
+ boolean_from_response :get, "teams/#{team_id}/repos/#{Repository.new repo}"
378
+ end
379
+ alias :team_repo? :team_repository?
380
+
349
381
  # Add team repository
350
382
  #
351
383
  # Requires authenticated user to be an owner of the organization that the
@@ -393,7 +425,7 @@ module Octokit
393
425
  # @param org [String] Organization GitHub username.
394
426
  # @param user [String] GitHub username of user to remove.
395
427
  # @return [Boolean] True if removal is successful, false otherwise.
396
- # @see http://developer.github.com/v3/orgs/teams/#remove-team-member
428
+ # @see http://developer.github.com/v3/orgs/members/#remove-a-member
397
429
  # @example
398
430
  # @client.remove_organization_member('github', 'pengwynn')
399
431
  # @example
@@ -18,6 +18,7 @@ module Octokit
18
18
  # @param topic [String] A recoginized and supported pubsub topic
19
19
  # @param callback [String] A callback url to be posted to when the topic event is fired
20
20
  # @return [Boolean] true if the subscribe was successful, otherwise an error is raised
21
+ # @see http://developer.github.com/v3/repos/hooks/#subscribing
21
22
  # @example Subscribe to push events from one of your repositories, having an email sent when fired
22
23
  # client = Octokit::Client.new(:oauth_token = "token")
23
24
  # client.subscribe("https://github.com/joshk/devise_imapable/events/push", "github://Email?address=josh.kalderimis@gmail.com")
@@ -37,6 +38,7 @@ module Octokit
37
38
  # @param topic [String] A recoginized pubsub topic
38
39
  # @param callback [String] A callback url to be unsubscribed from
39
40
  # @return [Boolean] true if the unsubscribe was successful, otherwise an error is raised
41
+ # @see http://developer.github.com/v3/repos/hooks/#subscribing
40
42
  # @example Unsubscribe to push events from one of your repositories, no longer having an email sent when fired
41
43
  # client = Octokit::Client.new(:oauth_token = "token")
42
44
  # client.unsubscribe("https://github.com/joshk/devise_imapable/events/push", "github://Email?address=josh.kalderimis@gmail.com")
@@ -58,6 +60,7 @@ module Octokit
58
60
  # @param service_arguments [Hash] params that will be passed by subscribed hook.
59
61
  # List of services is available @ https://github.com/github/github-services/tree/master/docs.
60
62
  # Please refer Data node for complete list of arguments.
63
+ # @see http://developer.github.com/v3/repos/hooks/#subscribing
61
64
  # @example Subscribe to push events to one of your repositories to Travis-CI
62
65
  # client = Octokit::Client.new(:oauth_token = "token")
63
66
  # client.subscribe_service_hook('joshk/device_imapable', 'Travis', { :token => "test", :domain => "domain", :user => "user" })
@@ -72,6 +75,7 @@ module Octokit
72
75
  # @param repo [String, Repository, Hash] A GitHub repository
73
76
  # @param service_name [String] service name owner
74
77
  # List of services is available @ https://github.com/github/github-services/tree/master/docs.
78
+ # @see http://developer.github.com/v3/repos/hooks/#subscribing
75
79
  # @example Subscribe to push events to one of your repositories to Travis-CI
76
80
  # client = Octokit::Client.new(:oauth_token = "token")
77
81
  # client.unsubscribe_service_hook('joshk/device_imapable', 'Travis')
@@ -254,6 +254,7 @@ module Octokit
254
254
  # @param repo [String, Hash, Repository] A GitHub repository
255
255
  # @param comment_id [Integer] Id of the comment to delete
256
256
  # @return [Boolean] True if deleted, false otherwise
257
+ # @see http://developer.github.com/v3/pulls/comments/#delete-a-comment
257
258
  # @example
258
259
  # @client.delete_pull_request_comment("octokit/octokit.rb", 1902707)
259
260
  def delete_pull_request_comment(repo, comment_id, options = {})
@@ -264,7 +265,7 @@ module Octokit
264
265
 
265
266
  # List files on a pull request
266
267
  #
267
- # @see http://developer.github.com/v3/pulls/#list-files-on-a-pull-request
268
+ # @see http://developer.github.com/v3/pulls/#list-pull-requests-files
268
269
  # @param repo [String, Hash, Repository] A GitHub repository
269
270
  # @param number [Integer] Number of pull request
270
271
  # @return [Array<Sawyer::Resource>] List of files
@@ -9,7 +9,7 @@ module Octokit
9
9
  # Get rate limit info from last response if available
10
10
  # or make a new request to fetch rate limit
11
11
  #
12
- # @see http://developer.github.com/v3/#rate-limiting
12
+ # @see http://developer.github.com/v3/rate_limit/#rate-limit
13
13
  # @return [Octokit::RateLimit] Rate limit info
14
14
  def rate_limit(options = {})
15
15
  return rate_limit! if last_response.nil?
@@ -20,7 +20,7 @@ module Octokit
20
20
 
21
21
  # Get number of rate limted requests remaining
22
22
  #
23
- # @see http://developer.github.com/v3/#rate-limiting
23
+ # @see http://developer.github.com/v3/rate_limit/#rate-limit
24
24
  # @return [Fixnum] Number of requests remaining in this period
25
25
  def rate_limit_remaining(options = {})
26
26
  puts "Deprecated: Please use .rate_limit.remaining"
@@ -30,7 +30,7 @@ module Octokit
30
30
 
31
31
  # Refresh rate limit info by making a new request
32
32
  #
33
- # @see http://developer.github.com/v3/#rate-limiting
33
+ # @see http://developer.github.com/v3/rate_limit/#rate-limit
34
34
  # @return [Octokit::RateLimit] Rate limit info
35
35
  def rate_limit!(options = {})
36
36
  get "rate_limit"
@@ -40,7 +40,7 @@ module Octokit
40
40
 
41
41
  # Refresh rate limit info and get number of rate limted requests remaining
42
42
  #
43
- # @see http://developer.github.com/v3/#rate-limiting
43
+ # @see http://developer.github.com/v3/rate_limit/#rate-limit
44
44
  # @return [Fixnum] Number of requests remaining in this period
45
45
  def rate_limit_remaining!(options = {})
46
46
  puts "Deprecated: Please use .rate_limit!.remaining"
@@ -11,7 +11,7 @@ module Octokit
11
11
  # @param repo [String, Repository, Hash] A GitHub repository
12
12
  # @param namespace [String] The ref namespace, e.g. <tt>tag</tt> or <tt>heads</tt>
13
13
  # @return [Array<Sawyer::Resource>] A list of references matching the repo and the namespace
14
- # @see http://developer.github.com/v3/git/refs/
14
+ # @see http://developer.github.com/v3/git/refs/#get-all-references
15
15
  # @example Fetch all refs for sferik/rails_admin
16
16
  # Octokit.refs("sferik/rails_admin")
17
17
  def refs(repo, namespace = nil, options = {})
@@ -28,7 +28,7 @@ module Octokit
28
28
  # @param repo [String, Repository, Hash] A GitHub repository
29
29
  # @param ref [String] The ref, e.g. <tt>tags/v0.0.3</tt>
30
30
  # @return [Sawyer::Resource] The reference matching the given repo and the ref id
31
- # @see http://developer.github.com/v3/git/refs/
31
+ # @see http://developer.github.com/v3/git/refs/#get-a-reference
32
32
  # @example Fetch tags/v0.0.3 for sferik/rails_admin
33
33
  # Octokit.ref("sferik/rails_admin","tags/v0.0.3")
34
34
  def ref(repo, ref, options = {})
@@ -42,7 +42,7 @@ module Octokit
42
42
  # @param ref [String] The ref, e.g. <tt>tags/v0.0.3</tt>
43
43
  # @param sha [String] A SHA, e.g. <tt>827efc6d56897b048c772eb4087f854f46256132</tt>
44
44
  # @return [Array<Sawyer::Resource>] The list of references, already containing the new one
45
- # @see http://developer.github.com/v3/git/refs/
45
+ # @see http://developer.github.com/v3/git/refs/#create-a-reference
46
46
  # @example Create refs/heads/master for octocat/Hello-World with sha 827efc6d56897b048c772eb4087f854f46256132
47
47
  # Octokit.create_ref("octocat/Hello-World","heads/master", "827efc6d56897b048c772eb4087f854f46256132")
48
48
  def create_ref(repo, ref, sha, options = {})
@@ -61,7 +61,7 @@ module Octokit
61
61
  # @param sha [String] A SHA, e.g. <tt>827efc6d56897b048c772eb4087f854f46256132</tt>
62
62
  # @param force [Boolean] A flag indicating one wants to force the update to make sure the update is a fast-forward update.
63
63
  # @return [Array<Sawyer::Resource>] The list of references updated
64
- # @see http://developer.github.com/v3/git/refs/
64
+ # @see http://developer.github.com/v3/git/refs/#update-a-reference
65
65
  # @example Force update heads/sc/featureA for octocat/Hello-World with sha aa218f56b14c9653891f9e74264a383fa43fefbd
66
66
  # Octokit.update_ref("octocat/Hello-World","heads/sc/featureA", "aa218f56b14c9653891f9e74264a383fa43fefbd")
67
67
  def update_ref(repo, ref, sha, force = true, options = {})
@@ -73,12 +73,38 @@ module Octokit
73
73
  end
74
74
  alias :update_reference :update_ref
75
75
 
76
+ # Update a branch
77
+ #
78
+ # @param repo [String, Repository, Hash] A GitHub repository
79
+ # @param branch [String] The ref, e.g. <tt>feature/new-shiny</tt>
80
+ # @param sha [String] A SHA, e.g. <tt>827efc6d56897b048c772eb4087f854f46256132</tt>
81
+ # @param force [Boolean] A flag indicating one wants to force the update to make sure the update is a fast-forward update.
82
+ # @return [Array<Sawyer::Resource>] The list of references updated
83
+ # @see http://developer.github.com/v3/git/refs/#update-a-reference
84
+ # @example Force update heads/sc/featureA for octocat/Hello-World with sha aa218f56b14c9653891f9e74264a383fa43fefbd
85
+ # Octokit.update_ref("octocat/Hello-World","sc/featureA", "aa218f56b14c9653891f9e74264a383fa43fefbd")
86
+ def update_branch(repo, branch, sha, force = true, options = {})
87
+ update_ref repo, "heads/#{branch}", sha, force, options
88
+ end
89
+
90
+ # Delete a single branch
91
+ #
92
+ # @param repo [String, Repository, Hash] A GitHub repository
93
+ # @param branch [String] The branch, e.g. <tt>fix-refs</tt>
94
+ # @return [Boolean] Success
95
+ # @see http://developer.github.com/v3/git/refs/#delete-a-reference
96
+ # @example Delete uritemplate for sigmavirus24/github3.py
97
+ # Octokit.delete_branch("sigmavirus24/github3.py", "uritemplate")
98
+ def delete_branch(repo, branch, options = {})
99
+ delete_ref repo, "heads/#{branch}", options
100
+ end
101
+
76
102
  # Delete a single reference
77
103
  #
78
104
  # @param repo [String, Repository, Hash] A GitHub repository
79
105
  # @param ref [String] The ref, e.g. <tt>tags/v0.0.3</tt>
80
106
  # @return [Boolean] Success
81
- # @see http://developer.github.com/v3/git/refs/
107
+ # @see http://developer.github.com/v3/git/refs/#delete-a-reference
82
108
  # @example Delete tags/v0.0.3 for sferik/rails_admin
83
109
  # Octokit.delete_ref("sferik/rails_admin","tags/v0.0.3")
84
110
  def delete_ref(repo, ref, options = {})
@@ -112,7 +112,7 @@ module Octokit
112
112
  # @option options [String] :name The name for the file
113
113
  # @option options [String] :label The download text for the file
114
114
  # @return [Sawyer::Resource] The release asset
115
- # @see http://developer.github.com/v3/repos/releases/#get-a-single-release-asset
115
+ # @see http://developer.github.com/v3/repos/releases/#edit-a-release-asset
116
116
  def update_release_asset(asset_url, options = {})
117
117
  patch(asset_url, options)
118
118
  end
@@ -74,7 +74,7 @@ module Octokit
74
74
  # This provides a dump of every repository, in the order that they were
75
75
  # created.
76
76
  #
77
- # @see http://developer.github.com/v3/repos/#list-all-repositories
77
+ # @see http://developer.github.com/v3/repos/#list-all-public-repositories
78
78
  #
79
79
  # @param options [Hash] Optional options
80
80
  # @option options [Integer] :since The integer ID of the last Repository
@@ -195,7 +195,7 @@ module Octokit
195
195
  #
196
196
  # @param repo [String, Hash, Repository] A GitHub repository
197
197
  # @return [Array<Sawyer::Resource>] Array of hashes representing deploy keys.
198
- # @see http://developer.github.com/v3/repos/keys/#get
198
+ # @see http://developer.github.com/v3/repos/keys/#list
199
199
  # @example
200
200
  # @client.deploy_keys('octokit/octokit.rb')
201
201
  # @example
@@ -205,6 +205,18 @@ module Octokit
205
205
  end
206
206
  alias :list_deploy_keys :deploy_keys
207
207
 
208
+ # Get a single deploy key for a repo
209
+ #
210
+ # @param repo [String, Hash, Repository] A GitHub repository.
211
+ # @param id [Integer] Deploy key ID.
212
+ # @return [Sawyer::Resource] Deploy key.
213
+ # @see http://developer.github.com/v3/repos/keys/#get
214
+ # @example
215
+ # @client.deploy_key('octokit/octokit.rb', 8675309)
216
+ def deploy_key(repo, id, options={})
217
+ get "repos/#{Repository.new repo}/keys/#{id}", options
218
+ end
219
+
208
220
  # Add deploy key to a repo
209
221
  #
210
222
  # Requires authenticated client.
@@ -220,6 +232,24 @@ module Octokit
220
232
  post "repos/#{Repository.new repo}/keys", options.merge(:title => title, :key => key)
221
233
  end
222
234
 
235
+ # Edit a deploy key
236
+ #
237
+ # @param repo [String, Hash, Repository] A GitHub repository.
238
+ # @param id [Integer] Deploy key ID.
239
+ # @param options [Hash] Attributes to edit.
240
+ # @option title [String] Key title.
241
+ # @option key [String] Public key.
242
+ # @return [Sawyer::Resource] Updated deploy key.
243
+ # @see http://developer.github.com/v3/repos/keys/#edit
244
+ # @example Update the key for a deploy key.
245
+ # @client.edit_deploy_key('octokit/octokit.rb', 8675309, :key => 'ssh-rsa BBB...')
246
+ # @example
247
+ # @client.update_deploy_key('octokit/octokit.rb', 8675309, :title => 'Uber', :key => 'ssh-rsa BBB...'))
248
+ def edit_deploy_key(repo, id, options)
249
+ patch "repos/#{Repository.new repo}/keys/#{id}", options
250
+ end
251
+ alias :update_deploy_key :edit_deploy_key
252
+
223
253
  # Remove deploy key from a repo
224
254
  #
225
255
  # Requires authenticated client.
@@ -286,6 +316,20 @@ module Octokit
286
316
  end
287
317
  alias :remove_collab :remove_collaborator
288
318
 
319
+ # Checks if a user is a collaborator for a repo.
320
+ #
321
+ # Requires authenticated client.
322
+ #
323
+ # @param repo [String, Hash, Repository] A GitHub repository.
324
+ # @param collaborator [String] Collaborator GitHub username to check.
325
+ # @return [Boolean] True if user is a collaborator, false otherwise.
326
+ # @see http://developer.github.com/v3/repos/collaborators/#get
327
+ # @example
328
+ # @client.collaborator?('octokit/octokit.rb', 'holman')
329
+ def collaborator?(repo, collaborator, options={})
330
+ boolean_from_response :get, "repos/#{Repository.new repo}/collaborators/#{collaborator}", options
331
+ end
332
+
289
333
  # List teams for a repo
290
334
  #
291
335
  # Requires authenticated client that is an owner or collaborator of the repo.
@@ -331,7 +375,7 @@ module Octokit
331
375
  #
332
376
  # @param repo [String, Hash, Repository] A GitHub repository.
333
377
  # @return [Array<Sawyer::Resource>] Array of hashes representing users.
334
- # @see http://developer.github.com/v3/repos/starring/#list-stargazers
378
+ # @see http://developer.github.com/v3/activity/starring/#list-stargazers
335
379
  # @example
336
380
  # Octokit.stargazers('octokit/octokit.rb')
337
381
  # @example
@@ -560,7 +604,7 @@ module Octokit
560
604
  # @param repo [String, Hash, Repository] A GitHub repository.
561
605
  # @param id [Integer] Id of the hook to test.
562
606
  # @return [Boolean] Success
563
- # @see http://developer.github.com/v3/repos/hooks/#test-a-hook
607
+ # @see http://developer.github.com/v3/repos/hooks/#test-a-push-hook
564
608
  # @example
565
609
  # @client.test_hook('octokit/octokit.rb', 1000000)
566
610
  def test_hook(repo, id, options = {})
@@ -67,7 +67,9 @@ module Octokit
67
67
 
68
68
  def search(path, query, options = {})
69
69
  opts = options.merge(:q => query)
70
- paginate path, opts
70
+ paginate(path, opts) do |data, last_response|
71
+ data.items.concat last_response.data.items
72
+ end
71
73
  end
72
74
  end
73
75
  end
@@ -11,7 +11,7 @@ module Octokit
11
11
  # @param repo [String, Repository, Hash] A GitHub repository
12
12
  # @param sha [String] The SHA1 for the commit
13
13
  # @return [Array<Sawyer::Resource>] A list of statuses
14
- # @see http://developer.github.com/v3/repos/statuses
14
+ # @see http://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref
15
15
  def statuses(repo, sha, options = {})
16
16
  get "repos/#{Repository.new(repo)}/statuses/#{sha}", options
17
17
  end
@@ -23,7 +23,7 @@ module Octokit
23
23
  # @param sha [String] The SHA1 for the commit
24
24
  # @param state [String] The state: pending, success, failure, error
25
25
  # @return [Sawyer::Resource] A status
26
- # @see http://developer.github.com/v3/repos/statuses
26
+ # @see http://developer.github.com/v3/repos/statuses/#create-a-status
27
27
  def create_status(repo, sha, state, options = {})
28
28
  options.merge!(:state => state)
29
29
  post "repos/#{Repository.new(repo)}/statuses/#{sha}", options
@@ -27,6 +27,7 @@ module Octokit
27
27
  # @param user [String] A GitHub user name.
28
28
  # @return [Sawyer::Resource]
29
29
  # @see http://developer.github.com/v3/users/#get-a-single-user
30
+ # @see http://developer.github.com/v3/users/#get-the-authenticated-user
30
31
  # @example
31
32
  # Octokit.user("sferik")
32
33
  def user(user=nil, options = {})
@@ -82,8 +83,9 @@ module Octokit
82
83
  # @option options [Boolean] :hireable
83
84
  # @option options [String] :bio
84
85
  # @return [Sawyer::Resource]
86
+ # @see http://developer.github.com/v3/users/#update-the-authenticated-user
85
87
  # @example
86
- # Octokit.user(:name => "Erik Michaels-Ober", :email => "sferik@gmail.com", :company => "Code for America", :location => "San Francisco", :hireable => false)
88
+ # Octokit.update_user(:name => "Erik Michaels-Ober", :email => "sferik@gmail.com", :company => "Code for America", :location => "San Francisco", :hireable => false)
87
89
  def update_user(options)
88
90
  patch "user", options
89
91
  end
@@ -122,6 +124,7 @@ module Octokit
122
124
  # @param target [String] Username of the target user
123
125
  # @return [Boolean] True following target user, false otherwise.
124
126
  # @see http://developer.github.com/v3/users/followers/#check-if-you-are-following-a-user
127
+ # @see http://developer.github.com/v3/users/followers/#check-if-one-user-follows-another
125
128
  # @example
126
129
  # @client.follows?('pengwynn')
127
130
  # @example
@@ -170,7 +173,7 @@ module Octokit
170
173
  # @option options [String] :sort (created) Sort: <tt>created</tt> or <tt>updated</tt>.
171
174
  # @option options [String] :direction (desc) Direction: <tt>asc</tt> or <tt>desc</tt>.
172
175
  # @return [Array<Sawyer::Resource>] Array of hashes representing repositories starred by user.
173
- # @see http://developer.github.com/v3/repos/starring/#list-repositories-being-starred
176
+ # @see http://developer.github.com/v3/activity/starring/#list-repositories-being-starred
174
177
  # @example
175
178
  # Octokit.starred('pengwynn')
176
179
  def starred(user=login, options = {})
@@ -184,7 +187,7 @@ module Octokit
184
187
  #
185
188
  # @param args [String, Hash, Repository] A GitHub repository
186
189
  # @return [Boolean] True if you are following the repo, false otherwise.
187
- # @see http://developer.github.com/v3/repos/starring/#check-if-you-are-starring-a-repository
190
+ # @see http://developer.github.com/v3/activity/starring/#check-if-you-are-starring-a-repository
188
191
  # @example
189
192
  # @client.starred?('pengwynn/octokit')
190
193
  # @client.starred?('pengwynn', 'octokit') # deprecated
@@ -1,4 +1,5 @@
1
1
  require 'octokit/response/raise_error'
2
+ require 'octokit/response/feed_parser'
2
3
  require 'octokit/version'
3
4
 
4
5
  module Octokit
@@ -21,6 +22,7 @@ module Octokit
21
22
  # Default Faraday middleware stack
22
23
  MIDDLEWARE = Faraday::Builder.new do |builder|
23
24
  builder.use Octokit::Response::RaiseError
25
+ builder.use Octokit::Response::FeedParser
24
26
  builder.adapter Faraday.default_adapter
25
27
  end
26
28
 
@@ -0,0 +1,24 @@
1
+ require 'faraday'
2
+
3
+ module Octokit
4
+
5
+ module Response
6
+
7
+ # Parses RSS and Atom feed responses.
8
+ class FeedParser < Faraday::Response::Middleware
9
+
10
+ dependency do
11
+ require 'rss'
12
+ end
13
+
14
+ private
15
+
16
+ def on_complete(env)
17
+ if env[:response_headers]["content-type"] =~ /(\batom|\brss)/
18
+ env[:body] = RSS::Parser.parse env[:body]
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -2,6 +2,6 @@ module Octokit
2
2
 
3
3
  # Current version
4
4
  # @return [String]
5
- VERSION = "2.6.3".freeze
5
+ VERSION = "2.7.0".freeze
6
6
 
7
7
  end
@@ -5,7 +5,7 @@ require 'octokit/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.add_development_dependency 'bundler', '~> 1.0'
8
- spec.add_dependency 'sawyer', '~> 0.5.1'
8
+ spec.add_dependency 'sawyer', '~> 0.5.2'
9
9
  spec.authors = ["Wynn Netherland", "Erik Michaels-Ober", "Clint Shryock"]
10
10
  spec.description = %q{Simple wrapper for the GitHub API}
11
11
  spec.email = ['wynn.netherland@gmail.com', 'sferik@gmail.com', 'clint@ctshryock.com']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octokit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.3
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wynn Netherland
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-12-07 00:00:00.000000000 Z
13
+ date: 2013-12-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - ~>
34
34
  - !ruby/object:Gem::Version
35
- version: 0.5.1
35
+ version: 0.5.2
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - ~>
41
41
  - !ruby/object:Gem::Version
42
- version: 0.5.1
42
+ version: 0.5.2
43
43
  description: Simple wrapper for the GitHub API
44
44
  email:
45
45
  - wynn.netherland@gmail.com
@@ -65,6 +65,7 @@ files:
65
65
  - lib/octokit/client/downloads.rb
66
66
  - lib/octokit/client/emojis.rb
67
67
  - lib/octokit/client/events.rb
68
+ - lib/octokit/client/feeds.rb
68
69
  - lib/octokit/client/gists.rb
69
70
  - lib/octokit/client/gitignore.rb
70
71
  - lib/octokit/client/hooks.rb
@@ -97,6 +98,7 @@ files:
97
98
  - lib/octokit/rate_limit.rb
98
99
  - lib/octokit/repo_arguments.rb
99
100
  - lib/octokit/repository.rb
101
+ - lib/octokit/response/feed_parser.rb
100
102
  - lib/octokit/response/raise_error.rb
101
103
  - lib/octokit/version.rb
102
104
  - lib/octokit.rb