octokit 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,6 @@
1
1
  # CHANGELOG
2
2
 
3
+ * [1.8.0 - June 18, 2012](https://github.com/pengwynn/octokit/compare/v1.7.0...v1.8.0)
3
4
  * [1.7.0 - June 18, 2012](https://github.com/pengwynn/octokit/compare/v1.6.1...v1.7.0)
4
5
  * [1.6.1 - June 14, 2012](https://github.com/pengwynn/octokit/compare/v1.6.0...v1.6.1)
5
6
  * [1.6.0 - June 14, 2012](https://github.com/pengwynn/octokit/compare/v1.5.0...v1.6.0)
data/README.md CHANGED
@@ -103,6 +103,16 @@ implementation, you will be personally responsible for providing patches in a
103
103
  timely fashion. If critical issues for a particular implementation exist at the
104
104
  time of a major release, support for that Ruby version may be dropped.
105
105
 
106
+ ## Contributors
107
+
108
+ Octokit was initially created by Wynn Netherland and [Adam
109
+ Stacoviak](http://twitter.com/adamstac) but has
110
+ turned into a true community effort. Special thanks to the following core
111
+ contributors:
112
+
113
+ * [Erik Michaels-Ober](http://github.com/sferik)
114
+ * [Clint Shryock](http://github.com/ctshryock)
115
+
106
116
  ## Inspiration
107
117
  Octokit was inspired by [Octopi][] and aims to be a lightweight,
108
118
  less-ActiveResourcey alternative.
@@ -20,6 +20,7 @@ require 'octokit/client/users'
20
20
  require 'octokit/client/events'
21
21
  require 'octokit/client/authorizations'
22
22
  require 'octokit/client/refs'
23
+ require 'octokit/client/contents'
23
24
 
24
25
  module Octokit
25
26
  class Client
@@ -52,5 +53,6 @@ module Octokit
52
53
  include Octokit::Client::Events
53
54
  include Octokit::Client::Authorizations
54
55
  include Octokit::Client::Refs
56
+ include Octokit::Client::Contents
55
57
  end
56
58
  end
@@ -0,0 +1,51 @@
1
+ module Octokit
2
+ class Client
3
+ module Contents
4
+
5
+ # Receive the default Readme for a repository
6
+ #
7
+ # @param repo [String, Repository, Hash] A GitHub repository
8
+ # @param ref [String] The String name of the Commit/Branch/Tag. Defaults to “master”.
9
+ # @option options [String] :ref name of the Commit/Branch/Tag. Defaults to “master”.
10
+ # @return [Hash] The detail of the readme
11
+ # @see http://developer.github.com/v3/repos/contents/
12
+ # @example Get the readme file for a repo
13
+ # Octokit.readme("pengwynn/octokit")
14
+ def readme(repo, options={})
15
+ get("/repos/#{Repository.new repo}/readme", options, 3)
16
+ end
17
+
18
+ # Receive a listing of a repository folder or the contents of a file
19
+ #
20
+ # @param repo [String, Repository, Hash] A GitHub repository
21
+ # @option options [String] :path A folder or file path
22
+ # @option options [String] :ref name of the Commit/Branch/Tag. Defaults to “master”.
23
+ # @return [Hash] The contents of a file or list of the files in the folder
24
+ # @see http://developer.github.com/v3/repos/contents/
25
+ # @example List the contents of lib/octokit.rb
26
+ # Octokit.contents("pengwynn/octokit", :path => 'lib/octokit.rb')
27
+ def contents(repo, options={})
28
+ repo_path = options.delete :path
29
+ url = "/repos/#{Repository.new repo}/contents/#{repo_path}"
30
+ get(url, options, 3)
31
+ end
32
+
33
+ # This method will provide a URL to download a tarball or zipball archive for a repository.
34
+ #
35
+ # @param repo [String, Repository, Hash] A GitHub repository.
36
+ # @option options format [String] Either tarball (default) or zipball.
37
+ # @option options [String] :ref Optional valid Git reference, defaults to master.
38
+ # @return [String] Location of the download
39
+ # @see http://developer.github.com/v3/repos/contents/
40
+ # @example Get archive link for pengwynn/octokit
41
+ # Octokit.archive_link("pengwynn/octokit")
42
+ def archive_link(repo, options={})
43
+ repo_ref = options.delete :ref
44
+ format = (options.delete :format) || 'tarball'
45
+ url = "/repos/#{Repository.new repo}/#{format}/#{repo_ref}"
46
+ headers = get(url, options, 3, false, true).headers
47
+ return headers['location']
48
+ end
49
+ end
50
+ end
51
+ end
@@ -26,7 +26,16 @@ module Octokit
26
26
  get("repos/#{Repository.new(repo)}/downloads/#{id}", options, 3)
27
27
  end
28
28
 
29
-
29
+ # Create a download in a repository
30
+ #
31
+ # @param repo [String, Repository, Hash] A GitHub repository
32
+ # @param name [String, Repository, Hash] A display name for the download
33
+ # @option options [String] :description The download description
34
+ # @option options [String] :content_type The content type. Defaults to 'text/plain'
35
+ # @return [Download] A single download from the repository
36
+ # @see http://developer.github.com/v3/repos/downloads/#create-a-new-download-part-1-create-the-resource
37
+ # @example Create the "Robawt" download on Github/Hubot
38
+ # Octokit.create_download("github/hubot", 'Robawt')
30
39
  def create_download(repo, name, options={})
31
40
  options[:content_type] ||= 'text/plain'
32
41
  file = Faraday::UploadIO.new(name, options[:content_type])
@@ -84,6 +84,13 @@ module Octokit
84
84
  end
85
85
  alias :remove_team_repo :remove_team_repository
86
86
 
87
+ def remove_organization_member(org, user, options={})
88
+ # this is a synonym for: for team in org.teams: remove_team_member(team.id, user)
89
+ # provided in the GH API v3
90
+ delete("orgs/#{org}/members/#{user}", options, 3, true, raw=true).status == 204
91
+ end
92
+ alias :remove_org_member :remove_organization_member
93
+
87
94
  def publicize_membership(org, user, options={})
88
95
  put("orgs/#{org}/public_members/#{user}", options, 3, true, raw=true).status == 204
89
96
  end
@@ -60,10 +60,12 @@ module Octokit
60
60
  alias :delete_repo :delete_repository
61
61
 
62
62
  def set_private(repo, options={})
63
+ # GitHub Api for setting private updated to use private attr, rather than public
63
64
  update_repository repo, options.merge({ :private => true })
64
65
  end
65
66
 
66
67
  def set_public(repo, options={})
68
+ # GitHub Api for setting private updated to use private attr, rather than public
67
69
  update_repository repo, options.merge({ :private => false })
68
70
  end
69
71
 
@@ -127,6 +129,19 @@ module Octokit
127
129
  get "/repos/#{Repository.new repo}/branches", options, 3
128
130
  end
129
131
 
132
+ # Get a single branch from a repository
133
+ #
134
+ # @param repo [String, Repository, Hash] A GitHub repository
135
+ # @param branch [String] Branch name
136
+ # @return [Branch] The branch requested, if it exists
137
+ # @see http://developer.github.com/v3/repos/#get-branch
138
+ # @example Get branch 'master` from pengwynn/octokit
139
+ # Octokit.issue("pengwynn/octokit", "master")
140
+ def branch(repo, branch, options={})
141
+ get "/repos/#{Repository.new repo}/branches/#{branch}", options, 3
142
+ end
143
+ alias :get_branch :branch
144
+
130
145
  def hooks(repo, options={})
131
146
  get "/repos/#{Repository.new repo}/hooks", options, 3
132
147
  end
@@ -1,3 +1,3 @@
1
1
  module Octokit
2
- VERSION = "1.7.0" unless defined?(Octokit::VERSION)
2
+ VERSION = "1.8.0" unless defined?(Octokit::VERSION)
3
3
  end
@@ -14,9 +14,9 @@ Gem::Specification.new do |gem|
14
14
  gem.add_development_dependency 'simplecov'
15
15
  gem.add_development_dependency 'webmock'
16
16
  gem.add_development_dependency 'yard'
17
- gem.authors = ["Wynn Netherland", "Adam Stacoviak", "Erik Michaels-Ober"]
17
+ gem.authors = ["Wynn Netherland", "Erik Michaels-Ober", "Clint Shryock"]
18
18
  gem.description = %q{Simple wrapper for the GitHub v3 API}
19
- gem.email = ['wynn.netherland@gmail.com', 'adam@stacoviak.com', 'sferik@gmail.com']
19
+ gem.email = ['wynn.netherland@gmail.com', 'sferik@gmail.com', 'clint@ctshryock.com']
20
20
  gem.files = `git ls-files`.split("\n")
21
21
  gem.homepage = 'https://github.com/pengwynn/octokit'
22
22
  gem.name = 'octokit'
@@ -0,0 +1,14 @@
1
+ {
2
+ "type": "file",
3
+ "content": "cmVxdWlyZSAnb2N0b2tpdC9jb25maWd1cmF0aW9uJwpyZXF1aXJlICdvY3Rv\na2l0L2NsaWVudCcKcmVxdWlyZSAnb2N0b2tpdC9lcnJvcicKCm1vZHVsZSBP\nY3Rva2l0CiAgZXh0ZW5kIENvbmZpZ3VyYXRpb24KICBjbGFzcyA8PCBzZWxm\nCiAgICAjIEFsaWFzIGZvciBPY3Rva2l0OjpDbGllbnQubmV3CiAgICAjCiAg\nICAjIEByZXR1cm4gW09jdG9raXQ6OkNsaWVudF0KICAgIGRlZiBuZXcob3B0\naW9ucz17fSkKICAgICAgT2N0b2tpdDo6Q2xpZW50Lm5ldyhvcHRpb25zKQog\nICAgZW5kCgogICAgIyBEZWxlZ2F0ZSB0byBPY3Rva2l0OjpDbGllbnQubmV3\nCiAgICBkZWYgbWV0aG9kX21pc3NpbmcobWV0aG9kLCAqYXJncywgJmJsb2Nr\nKQogICAgICByZXR1cm4gc3VwZXIgdW5sZXNzIG5ldy5yZXNwb25kX3RvPyht\nZXRob2QpCiAgICAgIG5ldy5zZW5kKG1ldGhvZCwgKmFyZ3MsICZibG9jaykK\nICAgIGVuZAoKICAgIGRlZiByZXNwb25kX3RvPyhtZXRob2QsIGluY2x1ZGVf\ncHJpdmF0ZT1mYWxzZSkKICAgICAgbmV3LnJlc3BvbmRfdG8/KG1ldGhvZCwg\naW5jbHVkZV9wcml2YXRlKSB8fCBzdXBlcihtZXRob2QsIGluY2x1ZGVfcHJp\ndmF0ZSkKICAgIGVuZAogIGVuZAplbmQK\n",
4
+ "sha": "21787fb105676aad095f575bd00f9d18ddcb5a42",
5
+ "encoding": "base64",
6
+ "size": 609,
7
+ "_links": {
8
+ "html": "https://github.com/pengwynn/octokit/blob/master/lib/octokit.rb",
9
+ "self": "https://api.github.com/repos/pengwynn/octokit/contents/lib/octokit.rb",
10
+ "git": "https://api.github.com/repos/pengwynn/octokit/git/blobs/21787fb105676aad095f575bd00f9d18ddcb5a42"
11
+ },
12
+ "name": "lib/octokit.rb",
13
+ "path": "lib/octokit.rb"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "_links": {
3
+ "html": "https://github.com/pengwynn/octokit/blob/master/README.md",
4
+ "self": "https://api.github.com/repos/pengwynn/octokit/contents/README.md",
5
+ "git": "https://api.github.com/repos/pengwynn/octokit/git/blobs/f8be7910362f4576d2eb3ba721f9c4cd6ee06569"
6
+ },
7
+ "type": "file",
8
+ "content": "IyBPY3Rva2l0IFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9zZWN1cmUudHJh\ndmlzLWNpLm9yZy9wZW5nd3lubi9vY3Rva2l0LnBuZz9icmFuY2g9bWFzdGVy\nKV1bdHJhdmlzXSBbIVtEZXBlbmRlbmN5IFN0YXR1c10oaHR0cHM6Ly9nZW1u\nYXNpdW0uY29tL3Blbmd3eW5uL29jdG9raXQucG5nP3RyYXZpcyldW2dlbW5h\nc2l1bV0KU2ltcGxlIFJ1Ynkgd3JhcHBlciBmb3IgdGhlIEdpdEh1YiB2MyBB\nUEkuCgpbdHJhdmlzXTogaHR0cDovL3RyYXZpcy1jaS5vcmcvcGVuZ3d5bm4v\nb2N0b2tpdApbZ2VtbmFzaXVtXTogaHR0cHM6Ly9nZW1uYXNpdW0uY29tL3Bl\nbmd3eW5uL29jdG9raXQKCiMjIEluc3RhbGxhdGlvbgogICAgZ2VtIGluc3Rh\nbGwgb2N0b2tpdAoKIyMgRG9jdW1lbnRhdGlvbgpbaHR0cDovL3Jkb2MuaW5m\nby9nZW1zL29jdG9raXRdW2RvY3VtZW50YXRpb25dCgpbZG9jdW1lbnRhdGlv\nbl06IGh0dHA6Ly9yZG9jLmluZm8vZ2Vtcy9vY3Rva2l0CgojIyBFeGFtcGxl\ncwojIyMgU2hvdyBhIHVzZXIKYGBgcnVieQpPY3Rva2l0LnVzZXIoInNmZXJp\nayIpCj0+IDwjSGFzaGllOjpSYXNoIGJsb2c9Imh0dHA6Ly90d2l0dGVyLmNv\nbS9zZmVyaWsiIGNvbXBhbnk9IkNvZGUgZm9yIEFtZXJpY2EiIGNyZWF0ZWRf\nYXQ9IjIwMDgvMDUvMTQgMTM6MzY6MTIgLTA3MDAiIGVtYWlsPSJzZmVyaWtA\nZ21haWwuY29tIiBmb2xsb3dlcnNfY291bnQ9MTc3IGZvbGxvd2luZ19jb3Vu\ndD04MyBncmF2YXRhcl9pZD0iMWY3NGIxM2YxZTVjNmM2OWNiNWQ3ZmJhYWJi\nMWUyY2IiIGlkPTEwMzA4IGxvY2F0aW9uPSJTYW4gRnJhbmNpc2NvIiBsb2dp\nbj0ic2ZlcmlrIiBuYW1lPSJFcmlrIE1pY2hhZWxzLU9iZXIiIHBlcm1pc3Np\nb249bmlsIHB1YmxpY19naXN0X2NvdW50PTE2IHB1YmxpY19yZXBvX2NvdW50\nPTMwIHR5cGU9IlVzZXIiPgpgYGAKCiMjIyBTaG93IHdobyBhIHVzZXIgZm9s\nbG93cwpgYGBydWJ5Ck9jdG9raXQuZm9sbG93aW5nKCJzZmVyaWsiKQo9PiBb\nInJhaWxzIiwgInB1bHMiLCAid3ljYXRzIiwgImRoaCIsICJqbTMiLCAiam9z\naHN1c3NlciIsICJua2FsbGVuIiwgInRlY2hub3dlZW5pZSIsICJibGFpbmUi\nLCAiYWwzeCIsICJkZWZ1bmt0IiwgInNjaGFjb24iLCAiYm1pemVyYW55Iiwg\nInJ0b21heWtvIiwgImpwcjUiLCAibGhvbGRlbiIsICIxNDBwcm9vZiIsICJl\ncGhyYW16ZXJiIiwgImNhcmxodWRhIiwgImNhcmxsZXJjaGUiLCAiam51bmVt\nYWtlciIsICJqb3NoIiwgImhvdmVyYmlyZCIsICJqYW1pZXciLCAiamVyZW15\nZXZhbnMiLCAiYnJ5bmFyeSIsICJtb2pvZG5hIiwgIm1vam9tYm8iLCAiam9z\naGJ1ZGR5IiwgImlncmlnb3JpayIsICJwZXJwbGV4ZXMiLCAiam9lYXJhc2lu\nIiwgImhhc3NveCIsICJuaWNrbWFyZGVuIiwgInBlbmd3eW5uIiwgIm1tY2dy\nYW5hIiwgInJlZGRhdmlzIiwgInJlaW5oIiwgIm16c2FuZm9yZCIsICJhYW5h\nbmQiLCAicGpoeWV0dCIsICJrbmVhdGgiLCAidGVra3ViIiwgImFkYW1zdGFj\nIiwgInRpbXRydWVtYW4iLCAiYWFyb25ibG9ob3dpYWsiLCAiam9zZXZhbGlt\nIiwgImthYXBhIiwgImh1cnJ5Y2FuZSIsICJqYWNrZGVtcHNleSIsICJkcm9n\ndXMiLCAiY2FtZXJvbnByaWVzdCIsICJkYW5tZWx0b24iLCAibWFyY2VsIiwg\nInIiLCAiYXRtb3MiLCAibWJsZWlnaCIsICJpc2FhY3MiLCAibWF4b2dkZW4i\nLCAiY29kZWZvcmFtZXJpY2EiLCAiY2hhZGsiLCAibGFzZXJsZW1vbiIsICJn\ncnViZXIiLCAibHNlZ2FsIiwgImJibGlta2UiLCAid2F5bmVlc2VndWluIiwg\nImJyaXhlbiIsICJka3ViYiIsICJiaGIiLCAiYmNhcmRhcmVsbGEiLCAiZWxs\naW90dGNhYmxlIiwgImZiam9yayIsICJtbGlnaHRuZXIiLCAiZGlhbmFraW1i\nYWxsIiwgImFtZXJpbmUiLCAiZGFuY2hvaSIsICJkZXZlbG9wIiwgImRtZnJh\nbmNpc2NvIiwgInVucnV0aGxlc3MiLCAidHJvdHRlciIsICJoYW5uZXN0eWRl\nbiIsICJjb2RhaGFsZSIsICJyeSJdCmBgYAoKIyMjIFJlcG9zaXRvcmllcwpG\nb3IgY29udmVuaWVuY2UsIG1ldGhvZHMgdGhhdCByZXF1aXJlIGEgcmVwb3Np\ndG9yeSBhcmd1bWVudCBtYXkgYmUgcGFzc2VkIGluCmFueSBvZiB0aGUgZm9s\nbG93aW5nIGZvcm1zOgoKKiBgInBlbmd3eW5uL29jdG9raXQiYAoqIGB7OnVz\nZXJuYW1lID0+ICJwZW5nd3lubiIsIDpuYW1lID0+ICJvY3Rva2l0In1gCiog\nYHs6dXNlcm5hbWUgPT4gInBlbmd3eW5uIiwgOnJlcG8gPT4gIm9jdG9raXQi\nfWAKKiBpbnN0YW5jZSBvZiBgUmVwb3NpdG9yeWAKCmBgYHJ1YnkKT2N0b2tp\ndC5yZXBvKCJwZW5nd3lubi9vY3Rva2l0IikKPT4gPCNIYXNoaWU6OlJhc2gg\nY3JlYXRlZF9hdD0iMjAwOS8xMi8xMCAxMzo0MTo0OSAtMDgwMCIgZGVzY3Jp\ncHRpb249IlNpbXBsZSBSdWJ5IHdyYXBwZXIgZm9yIHRoZSBHaXRIdWIgQVBJ\nIGFuZCBmZWVkcyIgZm9yaz1mYWxzZSBmb3Jrcz0yNSBoYXNfZG93bmxvYWRz\nPXRydWUgaGFzX2lzc3Vlcz10cnVlIGhhc193aWtpPXRydWUgaG9tZXBhZ2U9\nImh0dHA6Ly93eW5ubmV0aGVybGFuZC5jb20vcHJvamVjdHMvb2N0b2tpdCIg\naW50ZWdyYXRlX2JyYW5jaD0ibWFzdGVyIiBsYW5ndWFnZT0iUnVieSIgbmFt\nZT0ib2N0b2tpdCIgb3Blbl9pc3N1ZXM9OCBvd25lcj0icGVuZ3d5bm4iIHBy\naXZhdGU9ZmFsc2UgcHVzaGVkX2F0PSIyMDExLzA1LzA1IDEwOjQ4OjU3IC0w\nNzAwIiBzaXplPTE4MDQgdXJsPSJodHRwczovL2dpdGh1Yi5jb20vcGVuZ3d5\nbm4vb2N0b2tpdCIgd2F0Y2hlcnM9OTI+CmBgYAoKIyMgQXV0aGVudGljYXRl\nZCBSZXF1ZXN0cwpGb3IgbWV0aG9kcyB0aGF0IHJlcXVpcmUgYXV0aGVudGlj\nYXRpb24sIHlvdSdsbCBuZWVkIHRvIHNldHVwIGEgY2xpZW50IHdpdGgKeW91\nciBsb2dpbiBhbmQgcGFzc3dvcmQuCgpgYGBydWJ5CmNsaWVudCA9IE9jdG9r\naXQ6OkNsaWVudC5uZXcoOmxvZ2luID0+ICJtZSIsIDpwYXNzd29yZCA9PiAi\nc2VrcmV0IikKY2xpZW50LmZvbGxvdyEoInNmZXJpayIpCmBgYAoKQWx0ZXJu\nYXRlbHksIHlvdSBjYW4gYXV0aGVudGljYXRlIHdpdGggYSBHaXRIdWIgT0F1\ndGgyIHRva2VuLiBOb3RlOiB0aGlzIGlzCioqTk9UKiogdGhlIEdpdEh1YiBB\nUEkgdG9rZW4gb24geW91ciBbYWNjb3VudCBwYWdlXVthY2NvdW50XS4KClth\nY2NvdW50XTogaHR0cHM6Ly9naXRodWIuY29tL2FjY291bnQKYGBgcnVieQpj\nbGllbnQgPSBPY3Rva2l0OjpDbGllbnQubmV3KDpsb2dpbiA9PiAibWUiLCA6\nb2F1dGhfdG9rZW4gPT4gIm9hdXRoMnRva2VuIikKY2xpZW50LmZvbGxvdyEo\nInNmZXJpayIpCmBgYAoKIyMgU3VibWl0dGluZyBhIFB1bGwgUmVxdWVzdAox\nLiBbRm9yayB0aGUgcmVwb3NpdG9yeS5dW2ZvcmtdCjIuIFtDcmVhdGUgYSB0\nb3BpYyBicmFuY2guXVticmFuY2hdCjMuIEFkZCBzcGVjcyBmb3IgeW91ciB1\nbmltcGxlbWVudGVkIGZlYXR1cmUgb3IgYnVnIGZpeC4KNC4gUnVuIGBidW5k\nbGUgZXhlYyByYWtlIHNwZWNgLiBJZiB5b3VyIHNwZWNzIHBhc3MsIHJldHVy\nbiB0byBzdGVwIDMuCjUuIEltcGxlbWVudCB5b3VyIGZlYXR1cmUgb3IgYnVn\nIGZpeC4KNi4gUnVuIGBidW5kbGUgZXhlYyByYWtlIHNwZWNgLiBJZiB5b3Vy\nIHNwZWNzIGZhaWwsIHJldHVybiB0byBzdGVwIDUuCjcuIFJ1biBgb3BlbiBj\nb3ZlcmFnZS9pbmRleC5odG1sYC4gSWYgeW91ciBjaGFuZ2VzIGFyZSBub3Qg\nY29tcGxldGVseSBjb3ZlcmVkCiAgIGJ5IHlvdXIgdGVzdHMsIHJldHVybiB0\nbyBzdGVwIDMuCjguIEFkZCBkb2N1bWVudGF0aW9uIGZvciB5b3VyIGZlYXR1\ncmUgb3IgYnVnIGZpeC4KOS4gUnVuIGBidW5kbGUgZXhlYyByYWtlIGRvYzp5\nYXJkYC4gSWYgeW91ciBjaGFuZ2VzIGFyZSBub3QgMTAwJSBkb2N1bWVudGVk\nLCBnbwogICBiYWNrIHRvIHN0ZXAgOC4KMTAuIEFkZCwgY29tbWl0LCBhbmQg\ncHVzaCB5b3VyIGNoYW5nZXMuCjExLiBbU3VibWl0IGEgcHVsbCByZXF1ZXN0\nLl1bcHJdCgpbZm9ya106IGh0dHA6Ly9oZWxwLmdpdGh1Yi5jb20vZm9yay1h\nLXJlcG8vClticmFuY2hdOiBodHRwOi8vbGVhcm4uZ2l0aHViLmNvbS9wL2Jy\nYW5jaGluZy5odG1sCltwcl06IGh0dHA6Ly9oZWxwLmdpdGh1Yi5jb20vc2Vu\nZC1wdWxsLXJlcXVlc3RzLwoKIyMgU3VwcG9ydGVkIFJ1YnkgVmVyc2lvbnMK\nVGhpcyBsaWJyYXJ5IGFpbXMgdG8gc3VwcG9ydCBhbmQgaXMgW3Rlc3RlZCBh\nZ2FpbnN0XVt0cmF2aXNdIHRoZSBmb2xsb3dpbmcgUnVieQppbXBsZW1lbnRh\ndGlvbnM6CgoqIFJ1YnkgMS44LjcKKiBSdWJ5IDEuOS4yCiogUnVieSAxLjku\nMwoqIFtKUnVieV1bXQoqIFtSdWJpbml1c11bXQoKW2pydWJ5XTogaHR0cDov\nL3d3dy5qcnVieS5vcmcvCltydWJpbml1c106IGh0dHA6Ly9ydWJpbmkudXMv\nCgpJZiBzb21ldGhpbmcgZG9lc24ndCB3b3JrIG9uIG9uZSBvZiB0aGVzZSBp\nbnRlcnByZXRlcnMsIGl0IHNob3VsZCBiZSBjb25zaWRlcmVkCmEgYnVnLgoK\nVGhpcyBsaWJyYXJ5IG1heSBpbmFkdmVydGVudGx5IHdvcmsgKG9yIHNlZW0g\ndG8gd29yaykgb24gb3RoZXIgUnVieQppbXBsZW1lbnRhdGlvbnMsIGhvd2V2\nZXIgc3VwcG9ydCB3aWxsIG9ubHkgYmUgcHJvdmlkZWQgZm9yIHRoZSB2ZXJz\naW9ucyBsaXN0ZWQKYWJvdmUuCgpJZiB5b3Ugd291bGQgbGlrZSB0aGlzIGxp\nYnJhcnkgdG8gc3VwcG9ydCBhbm90aGVyIFJ1YnkgdmVyc2lvbiwgeW91IG1h\neQp2b2x1bnRlZXIgdG8gYmUgYSBtYWludGFpbmVyLiBCZWluZyBhIG1haW50\nYWluZXIgZW50YWlscyBtYWtpbmcgc3VyZSBhbGwgdGVzdHMKcnVuIGFuZCBw\nYXNzIG9uIHRoYXQgaW1wbGVtZW50YXRpb24uIFdoZW4gc29tZXRoaW5nIGJy\nZWFrcyBvbiB5b3VyCmltcGxlbWVudGF0aW9uLCB5b3Ugd2lsbCBiZSBwZXJz\nb25hbGx5IHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgcGF0Y2hlcyBpbiBh\nCnRpbWVseSBmYXNoaW9uLiBJZiBjcml0aWNhbCBpc3N1ZXMgZm9yIGEgcGFy\ndGljdWxhciBpbXBsZW1lbnRhdGlvbiBleGlzdCBhdCB0aGUKdGltZSBvZiBh\nIG1ham9yIHJlbGVhc2UsIHN1cHBvcnQgZm9yIHRoYXQgUnVieSB2ZXJzaW9u\nIG1heSBiZSBkcm9wcGVkLgoKIyMgSW5zcGlyYXRpb24KT2N0b2tpdCB3YXMg\naW5zcGlyZWQgYnkgW09jdG9waV1bXSBhbmQgYWltcyB0byBiZSBhIGxpZ2h0\nd2VpZ2h0LApsZXNzLUFjdGl2ZVJlc291cmNleSBhbHRlcm5hdGl2ZS4KCltv\nY3RvcGldOiBodHRwczovL2dpdGh1Yi5jb20vZmNvdXJ5L29jdG9waQoKIyMg\nQ29weXJpZ2h0CkNvcHlyaWdodCAoYykgMjAxMSBXeW5uIE5ldGhlcmxhbmQs\nIEFkYW0gU3RhY292aWFrLCBFcmlrIE1pY2hhZWxzLU9iZXIuIFNlZQpbTElD\nRU5TRV1bXSBmb3IgZGV0YWlscy4KCltsaWNlbnNlXTogaHR0cHM6Ly9naXRo\ndWIuY29tL3Blbmd3eW5uL29jdG9raXQvYmxvYi9tYXN0ZXIvTElDRU5TRQo=\n",
9
+ "sha": "f8be7910362f4576d2eb3ba721f9c4cd6ee06569",
10
+ "encoding": "base64",
11
+ "size": 5354,
12
+ "name": "README.md",
13
+ "path": "README.md"
14
+ }
@@ -0,0 +1,48 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ describe Octokit::Client::Contents do
5
+
6
+ before do
7
+ @client = Octokit::Client.new(:login => 'sferik')
8
+ end
9
+
10
+ describe ".readme" do
11
+
12
+ it "should return the default readme" do
13
+ stub_get("/repos/pengwynn/octokit/readme").
14
+ to_return(:body => fixture("v3/readme.json"))
15
+ readme = @client.readme('pengwynn/octokit')
16
+ readme.encoding.should == "base64"
17
+ readme.type.should == "file"
18
+ end
19
+
20
+ end
21
+
22
+ describe ".contents" do
23
+
24
+ it "should return the contents of a file" do
25
+ stub_get("/repos/pengwynn/octokit/contents/lib/octokit.rb").
26
+ to_return(:body => fixture("v3/contents.json"))
27
+ contents = @client.contents('pengwynn/octokit', :path => "lib/octokit.rb")
28
+ contents.path.should == "lib/octokit.rb"
29
+ contents.name.should == "lib/octokit.rb"
30
+ contents.encoding.should == "base64"
31
+ contents.type.should == "file"
32
+ end
33
+
34
+ end
35
+
36
+ describe ".archive_link" do
37
+
38
+ it "should return the headers of the request" do
39
+ stub_get("/repos/pengwynn/octokit/tarball/master").
40
+ to_return(:status => 302, :body => '', :headers =>
41
+ { 'location' => "https://nodeload.github.com/repos/pengwynn/octokit/tarball/"})
42
+ archive_link = @client.archive_link('pengwynn/octokit', :ref => "master")
43
+ archive_link == "https://nodeload.github.com/pengwynn/octokit/tarball/"
44
+ end
45
+
46
+ end
47
+
48
+ end
@@ -170,6 +170,15 @@ describe Octokit::Client::Organizations do
170
170
 
171
171
  end
172
172
 
173
+ describe ".remove_organization_member" do
174
+ it "should remove a member from an organization" do
175
+ stub_delete("https://api.github.com/orgs/codeforamerica/members/glow-mdsol").
176
+ to_return(:status => 204)
177
+ result = @client.remove_organization_member("codeforamerica", "glow-mdsol")
178
+ result.should be_true
179
+ end
180
+
181
+ end
173
182
  describe ".team_repositories" do
174
183
 
175
184
  it "should return team repositories" do
@@ -315,6 +315,14 @@ describe Octokit::Client::Repositories do
315
315
  master.commit.sha.should == "88553a397f7293b3ba176dc27cd1ab6bb93d5d14"
316
316
  end
317
317
 
318
+ it "should return a single branch" do
319
+ branch = JSON.parse(fixture("v3/branches.json").read).last
320
+ stub_get("/repos/pengwynn/octokit/branches/master").
321
+ to_return(:body => branch)
322
+ branch = @client.branch("pengwynn/octokit", "master")
323
+ branch.commit.sha.should == "88553a397f7293b3ba176dc27cd1ab6bb93d5d14"
324
+ end
325
+
318
326
  end
319
327
 
320
328
  describe ".hooks" do
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octokit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Wynn Netherland
9
- - Adam Stacoviak
10
9
  - Erik Michaels-Ober
10
+ - Clint Shryock
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-06-18 00:00:00.000000000 Z
14
+ date: 2012-06-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: addressable
18
- requirement: &70266235724000 !ruby/object:Gem::Requirement
18
+ requirement: &70323095283380 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '2.2'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70266235724000
26
+ version_requirements: *70323095283380
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
- requirement: &70266235739020 !ruby/object:Gem::Requirement
29
+ requirement: &70323095282500 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '0.8'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70266235739020
37
+ version_requirements: *70323095282500
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: faraday_middleware
40
- requirement: &70266235738180 !ruby/object:Gem::Requirement
40
+ requirement: &70323095281440 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ~>
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '0.8'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70266235738180
48
+ version_requirements: *70323095281440
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: hashie
51
- requirement: &70266235737060 !ruby/object:Gem::Requirement
51
+ requirement: &70323095280200 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ~>
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: '1.2'
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *70266235737060
59
+ version_requirements: *70323095280200
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: multi_json
62
- requirement: &70266235735960 !ruby/object:Gem::Requirement
62
+ requirement: &70323095278780 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ~>
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: '1.3'
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *70266235735960
70
+ version_requirements: *70323095278780
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: json
73
- requirement: &70266235735400 !ruby/object:Gem::Requirement
73
+ requirement: &70323095278340 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: '0'
79
79
  type: :development
80
80
  prerelease: false
81
- version_requirements: *70266235735400
81
+ version_requirements: *70323095278340
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: maruku
84
- requirement: &70266235734700 !ruby/object:Gem::Requirement
84
+ requirement: &70323095276940 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
- version_requirements: *70266235734700
92
+ version_requirements: *70323095276940
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: rake
95
- requirement: &70266235733720 !ruby/object:Gem::Requirement
95
+ requirement: &70323095272780 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ! '>='
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: '0'
101
101
  type: :development
102
102
  prerelease: false
103
- version_requirements: *70266235733720
103
+ version_requirements: *70323095272780
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: rspec
106
- requirement: &70266235732800 !ruby/object:Gem::Requirement
106
+ requirement: &70323095267460 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,10 +111,10 @@ dependencies:
111
111
  version: '0'
112
112
  type: :development
113
113
  prerelease: false
114
- version_requirements: *70266235732800
114
+ version_requirements: *70323095267460
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: simplecov
117
- requirement: &70266235748160 !ruby/object:Gem::Requirement
117
+ requirement: &70323095265340 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ! '>='
@@ -122,10 +122,10 @@ dependencies:
122
122
  version: '0'
123
123
  type: :development
124
124
  prerelease: false
125
- version_requirements: *70266235748160
125
+ version_requirements: *70323095265340
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: webmock
128
- requirement: &70266235746260 !ruby/object:Gem::Requirement
128
+ requirement: &70323095263880 !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ! '>='
@@ -133,10 +133,10 @@ dependencies:
133
133
  version: '0'
134
134
  type: :development
135
135
  prerelease: false
136
- version_requirements: *70266235746260
136
+ version_requirements: *70323095263880
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: yard
139
- requirement: &70266235745600 !ruby/object:Gem::Requirement
139
+ requirement: &70323095263180 !ruby/object:Gem::Requirement
140
140
  none: false
141
141
  requirements:
142
142
  - - ! '>='
@@ -144,12 +144,12 @@ dependencies:
144
144
  version: '0'
145
145
  type: :development
146
146
  prerelease: false
147
- version_requirements: *70266235745600
147
+ version_requirements: *70323095263180
148
148
  description: Simple wrapper for the GitHub v3 API
149
149
  email:
150
150
  - wynn.netherland@gmail.com
151
- - adam@stacoviak.com
152
151
  - sferik@gmail.com
152
+ - clint@ctshryock.com
153
153
  executables: []
154
154
  extensions: []
155
155
  extra_rdoc_files: []
@@ -170,6 +170,7 @@ files:
170
170
  - lib/octokit/client.rb
171
171
  - lib/octokit/client/authorizations.rb
172
172
  - lib/octokit/client/commits.rb
173
+ - lib/octokit/client/contents.rb
173
174
  - lib/octokit/client/downloads.rb
174
175
  - lib/octokit/client/events.rb
175
176
  - lib/octokit/client/gists.rb
@@ -209,6 +210,7 @@ files:
209
210
  - spec/fixtures/v3/commit_comments.json
210
211
  - spec/fixtures/v3/commit_create.json
211
212
  - spec/fixtures/v3/commits.json
213
+ - spec/fixtures/v3/contents.json
212
214
  - spec/fixtures/v3/contributors.json
213
215
  - spec/fixtures/v3/download.json
214
216
  - spec/fixtures/v3/download_create.json
@@ -247,6 +249,7 @@ files:
247
249
  - spec/fixtures/v3/pull_created.json
248
250
  - spec/fixtures/v3/pull_request.json
249
251
  - spec/fixtures/v3/pull_requests.json
252
+ - spec/fixtures/v3/readme.json
250
253
  - spec/fixtures/v3/ref.json
251
254
  - spec/fixtures/v3/ref_create.json
252
255
  - spec/fixtures/v3/ref_update.json
@@ -269,6 +272,7 @@ files:
269
272
  - spec/helper.rb
270
273
  - spec/octokit/client/authorizations_spec.rb
271
274
  - spec/octokit/client/commits_spec.rb
275
+ - spec/octokit/client/contents_spec.rb
272
276
  - spec/octokit/client/downloads_spec.rb
273
277
  - spec/octokit/client/events_spec.rb
274
278
  - spec/octokit/client/gists_spec.rb
@@ -330,6 +334,7 @@ test_files:
330
334
  - spec/fixtures/v3/commit_comments.json
331
335
  - spec/fixtures/v3/commit_create.json
332
336
  - spec/fixtures/v3/commits.json
337
+ - spec/fixtures/v3/contents.json
333
338
  - spec/fixtures/v3/contributors.json
334
339
  - spec/fixtures/v3/download.json
335
340
  - spec/fixtures/v3/download_create.json
@@ -368,6 +373,7 @@ test_files:
368
373
  - spec/fixtures/v3/pull_created.json
369
374
  - spec/fixtures/v3/pull_request.json
370
375
  - spec/fixtures/v3/pull_requests.json
376
+ - spec/fixtures/v3/readme.json
371
377
  - spec/fixtures/v3/ref.json
372
378
  - spec/fixtures/v3/ref_create.json
373
379
  - spec/fixtures/v3/ref_update.json
@@ -390,6 +396,7 @@ test_files:
390
396
  - spec/helper.rb
391
397
  - spec/octokit/client/authorizations_spec.rb
392
398
  - spec/octokit/client/commits_spec.rb
399
+ - spec/octokit/client/contents_spec.rb
393
400
  - spec/octokit/client/downloads_spec.rb
394
401
  - spec/octokit/client/events_spec.rb
395
402
  - spec/octokit/client/gists_spec.rb