github-v3-api 0.0.5 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
|