github-v3-api 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/github-v3-api.gemspec +12 -8
- data/lib/github_v3_api.rb +41 -1
- data/lib/github_v3_api/issue.rb +11 -0
- data/lib/github_v3_api/issues_api.rb +82 -0
- data/lib/github_v3_api/repos_api.rb +1 -1
- data/spec/github_v3_api_spec.rb +42 -1
- data/spec/issue_spec.rb +15 -0
- data/spec/issues_api_spec.rb +76 -0
- data/spec/spec_helper.rb +1 -5
- metadata +69 -73
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/github-v3-api.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.0
|
7
|
+
s.name = "github-v3-api"
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["John Wilger"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2011-10-18"
|
13
|
+
s.description = "Ponies"
|
14
|
+
s.email = "johnwilger@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
@@ -31,22 +31,26 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/github-v3-api.rb",
|
32
32
|
"lib/github_v3_api.rb",
|
33
33
|
"lib/github_v3_api/entity.rb",
|
34
|
+
"lib/github_v3_api/issue.rb",
|
35
|
+
"lib/github_v3_api/issues_api.rb",
|
34
36
|
"lib/github_v3_api/org.rb",
|
35
37
|
"lib/github_v3_api/orgs_api.rb",
|
36
38
|
"lib/github_v3_api/repo.rb",
|
37
39
|
"lib/github_v3_api/repos_api.rb",
|
38
40
|
"spec/github_v3_api_spec.rb",
|
41
|
+
"spec/issue_spec.rb",
|
42
|
+
"spec/issues_api_spec.rb",
|
39
43
|
"spec/org_spec.rb",
|
40
44
|
"spec/orgs_api_spec.rb",
|
41
45
|
"spec/repo_spec.rb",
|
42
46
|
"spec/repos_api_spec.rb",
|
43
47
|
"spec/spec_helper.rb"
|
44
48
|
]
|
45
|
-
s.homepage =
|
49
|
+
s.homepage = "http://github.com/jwilger/github-v3-api"
|
46
50
|
s.licenses = ["MIT"]
|
47
51
|
s.require_paths = ["lib"]
|
48
|
-
s.rubygems_version =
|
49
|
-
s.summary =
|
52
|
+
s.rubygems_version = "1.8.10"
|
53
|
+
s.summary = "Ruby Client for the GitHub v3 API"
|
50
54
|
|
51
55
|
if s.respond_to? :specification_version then
|
52
56
|
s.specification_version = 3
|
data/lib/github_v3_api.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'rest-client'
|
2
2
|
require 'json'
|
3
3
|
require 'github_v3_api/entity'
|
4
|
+
require 'github_v3_api/issues_api'
|
5
|
+
require 'github_v3_api/issue'
|
4
6
|
require 'github_v3_api/orgs_api'
|
5
7
|
require 'github_v3_api/org'
|
6
8
|
require 'github_v3_api/repos_api'
|
@@ -23,6 +25,9 @@ class GitHubV3API
|
|
23
25
|
# Raised when an API request uses an invalid access token
|
24
26
|
Unauthorized = Class.new(RuntimeError)
|
25
27
|
|
28
|
+
# Raised when an API request is missing required data
|
29
|
+
MissingRequiredData = Class.new(RuntimeError)
|
30
|
+
|
26
31
|
# Returns a GitHubV3API instance that is able to access github with the
|
27
32
|
# +access_token+ owner's authorization.
|
28
33
|
#
|
@@ -47,8 +52,43 @@ class GitHubV3API
|
|
47
52
|
ReposAPI.new(self)
|
48
53
|
end
|
49
54
|
|
50
|
-
|
55
|
+
# Entry-point for access to the GitHub Issues API
|
56
|
+
#
|
57
|
+
# Returns an instance of GitHubV3API::IssuesAPI that will use the access_token
|
58
|
+
# associated with this instance
|
59
|
+
def issues
|
60
|
+
IssuesAPI.new(self)
|
61
|
+
end
|
62
|
+
|
63
|
+
def get(path, params={}) #:nodoc:
|
51
64
|
result = RestClient.get("https://api.github.com" + path,
|
65
|
+
{:accept => :json,
|
66
|
+
:authorization => "token #{@access_token}"}.merge({:params => params}))
|
67
|
+
JSON.parse(result)
|
68
|
+
rescue RestClient::Unauthorized
|
69
|
+
raise Unauthorized, "The access token is invalid according to GitHub"
|
70
|
+
end
|
71
|
+
|
72
|
+
def post(path, params={}) #:nodoc:
|
73
|
+
result = RestClient.post("https://api.github.com" + path, JSON.generate(params),
|
74
|
+
{:accept => :json,
|
75
|
+
:authorization => "token #{@access_token}"})
|
76
|
+
JSON.parse(result)
|
77
|
+
rescue RestClient::Unauthorized
|
78
|
+
raise Unauthorized, "The access token is invalid according to GitHub"
|
79
|
+
end
|
80
|
+
|
81
|
+
def patch(path, params={}) #:nodoc:
|
82
|
+
result = RestClient.post("https://api.github.com" + path, JSON.generate(params),
|
83
|
+
{:accept => :json,
|
84
|
+
:authorization => "token #{@access_token}"})
|
85
|
+
JSON.parse(result)
|
86
|
+
rescue RestClient::Unauthorized
|
87
|
+
raise Unauthorized, "The access token is invalid according to GitHub"
|
88
|
+
end
|
89
|
+
|
90
|
+
def delete(path) #:nodoc:
|
91
|
+
result = RestClient.delete("https://api.github.com" + path,
|
52
92
|
{:accept => :json,
|
53
93
|
:authorization => "token #{@access_token}"})
|
54
94
|
JSON.parse(result)
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# See GitHubV3API documentation in lib/github_v3_api.rb
|
2
|
+
class GitHubV3API
|
3
|
+
# Represents a single GitHub Issue and provides access to its data attributes.
|
4
|
+
class Issue < Entity
|
5
|
+
attr_reader :url, :html_url, :number, :state, :title, :body, :user,
|
6
|
+
:labels, :assignee, :milestone, :comments, :pull_request,
|
7
|
+
:closed_at, :created_at, :updated_at
|
8
|
+
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# See GitHubV3API documentation in lib/github_v3_api.rb
|
2
|
+
class GitHubV3API
|
3
|
+
# Provides access to the GitHub Issues API (http://developer.github.com/v3/issues/)
|
4
|
+
#
|
5
|
+
# example:
|
6
|
+
#
|
7
|
+
# api = GitHubV3API.new(ACCESS_TOKEN)
|
8
|
+
#
|
9
|
+
# # get list of your issues
|
10
|
+
# my_issues = api.issues.list
|
11
|
+
# #=> returns an array of GitHubV3API::Issue instances
|
12
|
+
#
|
13
|
+
# # get list of issues for a repo
|
14
|
+
# repo_issues = api.issues.list({:user => 'octocat', :repo => 'hello-world'})
|
15
|
+
# #=> returns an array of GitHubV3API::Issue instances
|
16
|
+
#
|
17
|
+
# issue = api.issues.get('octocat', 'hello-world', '1234')
|
18
|
+
# #=> returns an instance of GitHubV3API::Issue
|
19
|
+
#
|
20
|
+
# issue.title
|
21
|
+
# #=> 'omgbbq'
|
22
|
+
#
|
23
|
+
class IssuesAPI
|
24
|
+
# Typically not used directly. Use GitHubV3API#issues instead.
|
25
|
+
#
|
26
|
+
# +connection+:: an instance of GitHubV3API
|
27
|
+
def initialize(connection)
|
28
|
+
@connection = connection
|
29
|
+
end
|
30
|
+
|
31
|
+
# Returns an array of GitHubV3API::Issue instances representing a
|
32
|
+
# user's issues or issues for a repo
|
33
|
+
def list(options=nil, params={})
|
34
|
+
path = if options && options[:user] && options[:repo]
|
35
|
+
"/repos/#{options[:user]}/#{options[:repo]}/issues"
|
36
|
+
else
|
37
|
+
'/issues'
|
38
|
+
end
|
39
|
+
|
40
|
+
@connection.get(path, params).map do |issue_data|
|
41
|
+
GitHubV3API::Issue.new(self, issue_data)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns a GitHubV3API::Issue instance for the specified +user+,
|
46
|
+
# +repo_name+, and +id+.
|
47
|
+
#
|
48
|
+
# +user+:: the string ID of the user, e.g. "octocat"
|
49
|
+
# +repo_name+:: the string ID of the repository, e.g. "hello-world"
|
50
|
+
# +id+:: the integer ID of the issue, e.g. 42
|
51
|
+
def get(user, repo_name, id, params={})
|
52
|
+
issue_data = @connection.get("/repos/#{user}/#{repo_name}/issues/#{id.to_s}", params)
|
53
|
+
GitHubV3API::Issue.new_with_all_data(self, issue_data)
|
54
|
+
rescue RestClient::ResourceNotFound
|
55
|
+
raise NotFound, "The issue #{user}/#{repo_name}/issues/#{id} does not exist or is not visible to the user."
|
56
|
+
end
|
57
|
+
|
58
|
+
# Returns a GitHubV3API::Issue instance representing the issue
|
59
|
+
# that it creates
|
60
|
+
#
|
61
|
+
# +user+:: the string ID of the user, e.g. "octocat"
|
62
|
+
# +repo_name+:: the string ID of the repository, e.g. "hello-world"
|
63
|
+
# +data+:: the hash DATA with attributes for the issue, e.g. {:title => "omgbbq"}
|
64
|
+
def create(user, repo_name, data={})
|
65
|
+
raise MissingRequiredData, "Title is required to create a new issue" unless data[:title]
|
66
|
+
issue_data = @connection.post("/repos/#{user}/#{repo_name}/issues", data)
|
67
|
+
GitHubV3API::Issue.new_with_all_data(self, issue_data)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Returns a GitHubV3API::Issue instance representing the issue
|
71
|
+
# that it updated
|
72
|
+
#
|
73
|
+
# +user+:: the string ID of the user, e.g. "octocat"
|
74
|
+
# +repo_name+:: the string ID of the repository, e.g. "hello-world"
|
75
|
+
# +id+:: the integer ID of the issue, e.g. 42
|
76
|
+
# +data+:: the hash with attributes for the issue, e.g. {:body => "lol, wtf"}
|
77
|
+
def update(user, repo_name, id, data={})
|
78
|
+
issue_data = @connection.patch("/repos/#{user}/#{repo_name}/issues/#{id.to_s}", data)
|
79
|
+
GitHubV3API::Issue.new_with_all_data(self, issue_data)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -10,7 +10,7 @@ class GitHubV3API
|
|
10
10
|
# repos = api.repos.list
|
11
11
|
# #=> returns an array of GitHubV3API::Repo instances
|
12
12
|
#
|
13
|
-
# repo = api.
|
13
|
+
# repo = api.repos.get('octocat', 'hello-world')
|
14
14
|
# #=> returns an instance of GitHubV3API::Repo
|
15
15
|
#
|
16
16
|
# repo.name
|
data/spec/github_v3_api_spec.rb
CHANGED
@@ -19,10 +19,17 @@ describe GitHubV3API do
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
describe "#issues" do
|
23
|
+
it "returns an instance of GitHubV3API::IssuesAPI" do
|
24
|
+
api = GitHubV3API.new('abcde')
|
25
|
+
api.issues.should be_kind_of GitHubV3API::IssuesAPI
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
22
29
|
describe '#get' do
|
23
30
|
it 'does a get request to the specified path at the GitHub API server and adds the access token' do
|
24
31
|
RestClient.should_receive(:get) \
|
25
|
-
.with('https://api.github.com/some/path', {:accept => :json, :authorization => 'token abcde'}) \
|
32
|
+
.with('https://api.github.com/some/path', {:accept => :json, :authorization => 'token abcde', :params => {}}) \
|
26
33
|
.and_return('{}')
|
27
34
|
api = GitHubV3API.new('abcde')
|
28
35
|
api.get('/some/path')
|
@@ -40,4 +47,38 @@ describe GitHubV3API do
|
|
40
47
|
lambda { api.get('/something') }.should raise_error(GitHubV3API::Unauthorized)
|
41
48
|
end
|
42
49
|
end
|
50
|
+
|
51
|
+
describe "#post" do
|
52
|
+
it "does a post request to the specified path at the github server, adds token, and payload as json" do
|
53
|
+
data = {:title => 'omgbbq'}
|
54
|
+
json = JSON.generate(data)
|
55
|
+
RestClient.should_receive(:post) \
|
56
|
+
.with('https://api.github.com/some/path', json, {:accept => :json, :authorization => 'token abcde'}) \
|
57
|
+
.and_return('{}')
|
58
|
+
api = GitHubV3API.new('abcde')
|
59
|
+
api.post('/some/path', data)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#patch" do
|
64
|
+
it "does a post request to the specified path at the github server, adds token, and payload as json" do
|
65
|
+
data = {:title => 'omgbbq'}
|
66
|
+
json = JSON.generate(data)
|
67
|
+
RestClient.should_receive(:post) \
|
68
|
+
.with('https://api.github.com/some/path', json, {:accept => :json, :authorization => 'token abcde'}) \
|
69
|
+
.and_return('{}')
|
70
|
+
api = GitHubV3API.new('abcde')
|
71
|
+
api.patch('/some/path', data)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "#delete" do
|
76
|
+
it 'does a delete request to the specified path at the GitHub API server and adds the access token' do
|
77
|
+
RestClient.should_receive(:delete) \
|
78
|
+
.with('https://api.github.com/some/path', {:accept => :json, :authorization => 'token abcde'}) \
|
79
|
+
.and_return('{}')
|
80
|
+
api = GitHubV3API.new('abcde')
|
81
|
+
api.delete('/some/path')
|
82
|
+
end
|
83
|
+
end
|
43
84
|
end
|
data/spec/issue_spec.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GitHubV3API::Issue do
|
4
|
+
describe 'attr_readers' do
|
5
|
+
it 'should define attr_readers that pull values from the issue data' do
|
6
|
+
fields = %w(url html_url number state title body user labels assignee
|
7
|
+
milestone comments pull_request closed_at created_at updated_at)
|
8
|
+
fields.each do |f|
|
9
|
+
repo = GitHubV3API::Issue.new_with_all_data(stub('api'), {f.to_s => 'foo'})
|
10
|
+
repo.methods.should include(f.to_sym)
|
11
|
+
repo.send(f).should == 'foo'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GitHubV3API::IssuesAPI do
|
4
|
+
describe "#list" do
|
5
|
+
context "options = nil" do
|
6
|
+
it "returns issues for a user" do
|
7
|
+
connection = mock(GitHubV3API)
|
8
|
+
connection.should_receive(:get).with('/issues', {}).and_return([:issue_hash1, :issue_hash2])
|
9
|
+
api = GitHubV3API::IssuesAPI.new(connection)
|
10
|
+
GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash1).and_return(:issue1)
|
11
|
+
GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash2).and_return(:issue2)
|
12
|
+
issues = api.list
|
13
|
+
issues.should == [:issue1, :issue2]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "options = {:user => 'octocat', :repo => 'hello-world'}" do
|
18
|
+
it "returns issues for a repo" do
|
19
|
+
connection = mock(GitHubV3API)
|
20
|
+
connection.should_receive(:get).with("/repos/octocat/hello-world/issues", {}).and_return([:issue_hash1, :issue_hash2])
|
21
|
+
api = GitHubV3API::IssuesAPI.new(connection)
|
22
|
+
GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash1).and_return(:issue1)
|
23
|
+
GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash2).and_return(:issue2)
|
24
|
+
issues = api.list({:user => 'octocat', :repo => 'hello-world'})
|
25
|
+
issues.should == [:issue1, :issue2]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#get' do
|
31
|
+
it 'returns a fully-hydrated Issue object for the specified user, repo, and issue id' do
|
32
|
+
connection = mock(GitHubV3API)
|
33
|
+
connection.should_receive(:get).with('/repos/octocat/hello-world/issues/1234', {}).and_return(:issue_hash)
|
34
|
+
api = GitHubV3API::IssuesAPI.new(connection)
|
35
|
+
GitHubV3API::Issue.should_receive(:new_with_all_data).with(api, :issue_hash).and_return(:issue)
|
36
|
+
api.get('octocat', 'hello-world', 1234).should == :issue
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'raises GitHubV3API::NotFound instead of a RestClient::ResourceNotFound' do
|
40
|
+
connection = mock(GitHubV3API)
|
41
|
+
connection.should_receive(:get) \
|
42
|
+
.and_raise(RestClient::ResourceNotFound)
|
43
|
+
api = GitHubV3API::IssuesAPI.new(connection)
|
44
|
+
lambda { api.get('octocat', 'hello-world', 4321) }.should raise_error(GitHubV3API::NotFound)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#create" do
|
49
|
+
it 'returns a fully-hydrated Issue object for the specified user, repo, and issue that was created' do
|
50
|
+
connection = mock(GitHubV3API)
|
51
|
+
data = {:title => "omgbbq"}
|
52
|
+
connection.should_receive(:post).with('/repos/octocat/hello-world/issues', data).and_return(:issue_hash)
|
53
|
+
api = GitHubV3API::IssuesAPI.new(connection)
|
54
|
+
GitHubV3API::Issue.should_receive(:new_with_all_data).with(api, :issue_hash).and_return(:issue)
|
55
|
+
api.create('octocat', 'hello-world', data).should == :issue
|
56
|
+
end
|
57
|
+
|
58
|
+
it "raises GitHubV3API::MissingRequiredData when data[:title] is missing" do
|
59
|
+
connection = mock(GitHubV3API)
|
60
|
+
connection.should_not_receive(:post)
|
61
|
+
api = GitHubV3API::IssuesAPI.new(connection)
|
62
|
+
lambda { api.create('octocat', 'hello-world', {}) }.should raise_error(GitHubV3API::MissingRequiredData)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "#update" do
|
67
|
+
it 'returns a fully-hydrated Issue object for the specified user, repo, and issue that was updated' do
|
68
|
+
connection = mock(GitHubV3API)
|
69
|
+
data = {:body => "lol, wtf"}
|
70
|
+
connection.should_receive(:patch).with('/repos/octocat/hello-world/issues/1234', data).and_return(:issue_hash)
|
71
|
+
api = GitHubV3API::IssuesAPI.new(connection)
|
72
|
+
GitHubV3API::Issue.should_receive(:new_with_all_data).with(api, :issue_hash).and_return(:issue)
|
73
|
+
api.update('octocat', 'hello-world', 1234, data).should == :issue
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,10 +3,6 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
3
3
|
require 'rspec'
|
4
4
|
require 'github_v3_api'
|
5
5
|
|
6
|
-
# Requires supporting files with custom matchers and macros, etc,
|
7
|
-
# in ./support/ and its subdirectories.
|
8
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
-
|
10
6
|
RSpec.configure do |config|
|
11
|
-
|
7
|
+
|
12
8
|
end
|
metadata
CHANGED
@@ -1,116 +1,112 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-v3-api
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.0.5
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- John Wilger
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-10-18 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: rest-client
|
18
|
-
requirement: &
|
16
|
+
requirement: &2159155400 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
20
|
+
- !ruby/object:Gem::Version
|
23
21
|
version: 1.6.3
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
|
-
version_requirements: *
|
27
|
-
- !ruby/object:Gem::Dependency
|
24
|
+
version_requirements: *2159155400
|
25
|
+
- !ruby/object:Gem::Dependency
|
28
26
|
name: json
|
29
|
-
requirement: &
|
27
|
+
requirement: &2159154920 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
29
|
+
requirements:
|
32
30
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
31
|
+
- !ruby/object:Gem::Version
|
34
32
|
version: 1.5.3
|
35
33
|
type: :runtime
|
36
34
|
prerelease: false
|
37
|
-
version_requirements: *
|
38
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *2159154920
|
36
|
+
- !ruby/object:Gem::Dependency
|
39
37
|
name: rspec
|
40
|
-
requirement: &
|
38
|
+
requirement: &2159154440 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
40
|
+
requirements:
|
43
41
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
42
|
+
- !ruby/object:Gem::Version
|
45
43
|
version: 2.3.0
|
46
44
|
type: :development
|
47
45
|
prerelease: false
|
48
|
-
version_requirements: *
|
49
|
-
- !ruby/object:Gem::Dependency
|
46
|
+
version_requirements: *2159154440
|
47
|
+
- !ruby/object:Gem::Dependency
|
50
48
|
name: bundler
|
51
|
-
requirement: &
|
49
|
+
requirement: &2159153960 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
51
|
+
requirements:
|
54
52
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
53
|
+
- !ruby/object:Gem::Version
|
56
54
|
version: 1.0.0
|
57
55
|
type: :development
|
58
56
|
prerelease: false
|
59
|
-
version_requirements: *
|
60
|
-
- !ruby/object:Gem::Dependency
|
57
|
+
version_requirements: *2159153960
|
58
|
+
- !ruby/object:Gem::Dependency
|
61
59
|
name: jeweler
|
62
|
-
requirement: &
|
60
|
+
requirement: &2159153480 !ruby/object:Gem::Requirement
|
63
61
|
none: false
|
64
|
-
requirements:
|
62
|
+
requirements:
|
65
63
|
- - ~>
|
66
|
-
- !ruby/object:Gem::Version
|
64
|
+
- !ruby/object:Gem::Version
|
67
65
|
version: 1.6.0
|
68
66
|
type: :development
|
69
67
|
prerelease: false
|
70
|
-
version_requirements: *
|
71
|
-
- !ruby/object:Gem::Dependency
|
68
|
+
version_requirements: *2159153480
|
69
|
+
- !ruby/object:Gem::Dependency
|
72
70
|
name: rcov
|
73
|
-
requirement: &
|
71
|
+
requirement: &2159153000 !ruby/object:Gem::Requirement
|
74
72
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version:
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
79
77
|
type: :development
|
80
78
|
prerelease: false
|
81
|
-
version_requirements: *
|
82
|
-
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: *2159153000
|
80
|
+
- !ruby/object:Gem::Dependency
|
83
81
|
name: reek
|
84
|
-
requirement: &
|
82
|
+
requirement: &2159152520 !ruby/object:Gem::Requirement
|
85
83
|
none: false
|
86
|
-
requirements:
|
84
|
+
requirements:
|
87
85
|
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
86
|
+
- !ruby/object:Gem::Version
|
89
87
|
version: 1.2.8
|
90
88
|
type: :development
|
91
89
|
prerelease: false
|
92
|
-
version_requirements: *
|
93
|
-
- !ruby/object:Gem::Dependency
|
90
|
+
version_requirements: *2159152520
|
91
|
+
- !ruby/object:Gem::Dependency
|
94
92
|
name: roodi
|
95
|
-
requirement: &
|
93
|
+
requirement: &2159152040 !ruby/object:Gem::Requirement
|
96
94
|
none: false
|
97
|
-
requirements:
|
95
|
+
requirements:
|
98
96
|
- - ~>
|
99
|
-
- !ruby/object:Gem::Version
|
97
|
+
- !ruby/object:Gem::Version
|
100
98
|
version: 2.1.0
|
101
99
|
type: :development
|
102
100
|
prerelease: false
|
103
|
-
version_requirements: *
|
101
|
+
version_requirements: *2159152040
|
104
102
|
description: Ponies
|
105
103
|
email: johnwilger@gmail.com
|
106
104
|
executables: []
|
107
|
-
|
108
105
|
extensions: []
|
109
|
-
|
110
|
-
extra_rdoc_files:
|
106
|
+
extra_rdoc_files:
|
111
107
|
- LICENSE.txt
|
112
108
|
- README.rdoc
|
113
|
-
files:
|
109
|
+
files:
|
114
110
|
- .document
|
115
111
|
- .rspec
|
116
112
|
- .rvmrc
|
@@ -125,46 +121,46 @@ files:
|
|
125
121
|
- lib/github-v3-api.rb
|
126
122
|
- lib/github_v3_api.rb
|
127
123
|
- lib/github_v3_api/entity.rb
|
124
|
+
- lib/github_v3_api/issue.rb
|
125
|
+
- lib/github_v3_api/issues_api.rb
|
128
126
|
- lib/github_v3_api/org.rb
|
129
127
|
- lib/github_v3_api/orgs_api.rb
|
130
128
|
- lib/github_v3_api/repo.rb
|
131
129
|
- lib/github_v3_api/repos_api.rb
|
132
130
|
- spec/github_v3_api_spec.rb
|
131
|
+
- spec/issue_spec.rb
|
132
|
+
- spec/issues_api_spec.rb
|
133
133
|
- spec/org_spec.rb
|
134
134
|
- spec/orgs_api_spec.rb
|
135
135
|
- spec/repo_spec.rb
|
136
136
|
- spec/repos_api_spec.rb
|
137
137
|
- spec/spec_helper.rb
|
138
|
-
has_rdoc: true
|
139
138
|
homepage: http://github.com/jwilger/github-v3-api
|
140
|
-
licenses:
|
139
|
+
licenses:
|
141
140
|
- MIT
|
142
141
|
post_install_message:
|
143
142
|
rdoc_options: []
|
144
|
-
|
145
|
-
require_paths:
|
143
|
+
require_paths:
|
146
144
|
- lib
|
147
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
146
|
none: false
|
149
|
-
requirements:
|
150
|
-
- -
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
|
153
|
-
segments:
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
segments:
|
154
152
|
- 0
|
155
|
-
|
156
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
+
hash: 3092793002911622780
|
154
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
155
|
none: false
|
158
|
-
requirements:
|
159
|
-
- -
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
version:
|
156
|
+
requirements:
|
157
|
+
- - ! '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
162
160
|
requirements: []
|
163
|
-
|
164
161
|
rubyforge_project:
|
165
|
-
rubygems_version: 1.
|
162
|
+
rubygems_version: 1.8.10
|
166
163
|
signing_key:
|
167
164
|
specification_version: 3
|
168
165
|
summary: Ruby Client for the GitHub v3 API
|
169
166
|
test_files: []
|
170
|
-
|