github_api 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/features/arguments_parsing.feature +35 -0
- data/features/cassettes/arguments/orgs/get.yml +69 -0
- data/features/cassettes/arguments/pulls/get.yml +112 -0
- data/features/cassettes/arguments/repo_commits/get.yml +89 -0
- data/features/step_definitions/github_api_steps.rb +1 -1
- data/lib/github_api/api.rb +7 -7
- data/lib/github_api/version.rb +1 -1
- data/spec/integration/multiple_invocations_spec.rb +42 -0
- metadata +39 -34
@@ -0,0 +1,35 @@
|
|
1
|
+
Feature: Github API arguments parsing
|
2
|
+
|
3
|
+
The gem permits flexible arguments parsing, which means, the arguments can
|
4
|
+
be passed in as values or named hash key parameters. Properties are dynamically
|
5
|
+
assigned when executing requests.
|
6
|
+
|
7
|
+
Scenario: Invoking multiple calls for organization information
|
8
|
+
|
9
|
+
Given I have "Github::Orgs" instance
|
10
|
+
When I want to get resource with the following arguments:
|
11
|
+
| org |
|
12
|
+
| thoughtbot |
|
13
|
+
And I make request within a cassette named "arguments/orgs/get"
|
14
|
+
And I make request within a cassette named "arguments/orgs/get"
|
15
|
+
Then the response status should be 200
|
16
|
+
|
17
|
+
Scenario: Invoking multiple calls for repository commits
|
18
|
+
|
19
|
+
Given I have "Github::Repos::Commits" instance
|
20
|
+
When I want to get resource with the following arguments:
|
21
|
+
| user | repo | sha |
|
22
|
+
| rubinius | rubinius | 7ac2bd74e8b6f16362fb3b7e6f3d139c48bb1c12 |
|
23
|
+
And I make request within a cassette named "arguments/repo_commits/get"
|
24
|
+
And I make request within a cassette named "arguments/repo_commits/get"
|
25
|
+
Then the response status should be 200
|
26
|
+
|
27
|
+
Scenario: Invoking multiple calls for fetching pull request
|
28
|
+
|
29
|
+
Given I have "Github::PullRequests" instance
|
30
|
+
When I want to get resource with the following arguments:
|
31
|
+
| user | repo | number |
|
32
|
+
| rubinius | rubinius | 2193 |
|
33
|
+
And I make request within a cassette named "arguments/pulls/get"
|
34
|
+
And I make request within a cassette named "arguments/pulls/get"
|
35
|
+
Then the response status should be 200
|
@@ -0,0 +1,69 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://<BASIC_AUTH>@api.github.com/orgs/thoughtbot?access_token=<TOKEN>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/vnd.github.v3.full+json,application/vnd.github.beta.full+json;q=0.7,application/vnd.github+json;q=0.5,application/json;q=0.1
|
12
|
+
Accept-Charset:
|
13
|
+
- utf-8
|
14
|
+
User-Agent:
|
15
|
+
- Github Ruby Gem 0.9.2
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- GitHub.com
|
27
|
+
Date:
|
28
|
+
- Sat, 09 Mar 2013 15:31:09 GMT
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Status:
|
36
|
+
- 200 OK
|
37
|
+
X-Ratelimit-Limit:
|
38
|
+
- '5000'
|
39
|
+
X-Ratelimit-Remaining:
|
40
|
+
- '4998'
|
41
|
+
Vary:
|
42
|
+
- Accept, Authorization, Cookie
|
43
|
+
Cache-Control:
|
44
|
+
- private, max-age=60, s-maxage=60
|
45
|
+
Last-Modified:
|
46
|
+
- Sat, 09 Mar 2013 14:37:58 GMT
|
47
|
+
Etag:
|
48
|
+
- ! '"ee447f8914b401051d8b55170da404a9"'
|
49
|
+
X-Github-Media-Type:
|
50
|
+
- github.v3; param=full; format=json
|
51
|
+
X-Content-Type-Options:
|
52
|
+
- nosniff
|
53
|
+
Content-Encoding:
|
54
|
+
- gzip
|
55
|
+
body:
|
56
|
+
encoding: ASCII-8BIT
|
57
|
+
string: !binary |-
|
58
|
+
H4sIAAAAAAAAA52SP0/DMBDFvwqyxJY4zp+2iSWExMDK0omlujjGtXDsyHZA
|
59
|
+
pep359q0kLIVKcNF53c+v/fbE+OUtoSTuHWj2sbWRZIQ3RG+zOsyIaM32NzG
|
60
|
+
OASeZTBoqnTcji0Vrs+cVyG7Eno5uLC5RZSdJHin/JA23qidNCjuZd9Kf6P6
|
61
|
+
LNpnU3HAOcPYGi02/xp3rZ1PhQ+I4P/YEqQYvaTKT92ToVOZQbMAVnVvRQdy
|
62
|
+
ycpmJcpaNG3HqqopxKJ87B5+EimqmkoK79CDplbGDEKQMcxiui+edQ9KBiwu
|
63
|
+
t83rFGNMq4LRwSq0wEIvr3hI7rQVFDu44QB2R7gdjUlIi+ic2UA0vEN0Av2l
|
64
|
+
4fggFBknIGp3ROzJhYgFRo27IlbTmLNtEwZ8ufwJQekQA+GrepGQN2eM+8SE
|
65
|
+
Cc8vfxrX5SxBOHvzx9sZo1d4Ci8hym4DEdcpGKtTVqU5W+c1Z4wX7BWXG4du
|
66
|
+
fiYvU4Zfs84rXq74oj6eibvh6NGLV2D11/S+wzcEdtvNTAMAAA==
|
67
|
+
http_version: !!null
|
68
|
+
recorded_at: Sat, 09 Mar 2013 15:31:10 GMT
|
69
|
+
recorded_with: VCR 2.4.0
|
@@ -0,0 +1,112 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://<BASIC_AUTH>@api.github.com/repos/rubinius/rubinius/pulls/2193?access_token=<TOKEN>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/vnd.github.v3.full+json,application/vnd.github.beta.full+json;q=0.7,application/vnd.github+json;q=0.5,application/json;q=0.1
|
12
|
+
Accept-Charset:
|
13
|
+
- utf-8
|
14
|
+
User-Agent:
|
15
|
+
- Github Ruby Gem 0.9.2
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- GitHub.com
|
27
|
+
Date:
|
28
|
+
- Sat, 09 Mar 2013 17:49:33 GMT
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Status:
|
36
|
+
- 200 OK
|
37
|
+
X-Ratelimit-Limit:
|
38
|
+
- '5000'
|
39
|
+
X-Ratelimit-Remaining:
|
40
|
+
- '4998'
|
41
|
+
Vary:
|
42
|
+
- Accept, Authorization, Cookie
|
43
|
+
Cache-Control:
|
44
|
+
- private, max-age=60, s-maxage=60
|
45
|
+
Last-Modified:
|
46
|
+
- Sat, 09 Mar 2013 07:32:16 GMT
|
47
|
+
Etag:
|
48
|
+
- ! '"31ec316b758b2e5c24ddacee5fd26999"'
|
49
|
+
X-Github-Media-Type:
|
50
|
+
- github.v3; param=full; format=json
|
51
|
+
X-Content-Type-Options:
|
52
|
+
- nosniff
|
53
|
+
Content-Encoding:
|
54
|
+
- gzip
|
55
|
+
body:
|
56
|
+
encoding: ASCII-8BIT
|
57
|
+
string: !binary |-
|
58
|
+
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
|
109
|
+
EDcAAA==
|
110
|
+
http_version: !!null
|
111
|
+
recorded_at: Sat, 09 Mar 2013 17:49:33 GMT
|
112
|
+
recorded_with: VCR 2.4.0
|
@@ -0,0 +1,89 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://<BASIC_AUTH>@api.github.com/repos/rubinius/rubinius/commits/7ac2bd74e8b6f16362fb3b7e6f3d139c48bb1c12?access_token=<TOKEN>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/vnd.github.v3.full+json,application/vnd.github.beta.full+json;q=0.7,application/vnd.github+json;q=0.5,application/json;q=0.1
|
12
|
+
Accept-Charset:
|
13
|
+
- utf-8
|
14
|
+
User-Agent:
|
15
|
+
- Github Ruby Gem 0.9.2
|
16
|
+
Content-Type:
|
17
|
+
- application/json
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- GitHub.com
|
27
|
+
Date:
|
28
|
+
- Sat, 09 Mar 2013 17:40:08 GMT
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Status:
|
36
|
+
- 200 OK
|
37
|
+
X-Ratelimit-Limit:
|
38
|
+
- '5000'
|
39
|
+
X-Ratelimit-Remaining:
|
40
|
+
- '4999'
|
41
|
+
Vary:
|
42
|
+
- Accept, Authorization, Cookie
|
43
|
+
Cache-Control:
|
44
|
+
- private, max-age=60, s-maxage=60
|
45
|
+
Last-Modified:
|
46
|
+
- Fri, 08 Mar 2013 14:43:46 GMT
|
47
|
+
Etag:
|
48
|
+
- ! '"704fbf54f76c483a606a9d0d0709debc"'
|
49
|
+
X-Github-Media-Type:
|
50
|
+
- github.v3; param=full; format=json
|
51
|
+
X-Content-Type-Options:
|
52
|
+
- nosniff
|
53
|
+
Content-Encoding:
|
54
|
+
- gzip
|
55
|
+
body:
|
56
|
+
encoding: ASCII-8BIT
|
57
|
+
string: !binary |-
|
58
|
+
H4sIAAAAAAAAA+1X/U/bOBj+V3w5bQKtNJ9N007cKKxDaFCmMqTtBoqc5E3r
|
59
|
+
o3Ui24FxVf/3e52kpbCD0e72w0lDSHWS93m//Nh+PDPkmBpdo01jJ0raHgSR
|
60
|
+
n9q+6ztp5EZt8FM3sd1O7AVRZMe2YzSMOJtOmTK6M4MWapwJPeJ0CujlLRNX
|
61
|
+
f1FO9gspGb9CY5hSNsEvSTOq3u2N9JsmOsGvCVUa5li2u2Phf/DR9rqe2/X8
|
62
|
+
P435IpKCnxhiClLSkU5iCErcEgEj+JoTTC9nE6pYxgnjxG4GZJolQG6YGpPe
|
63
|
+
2cHREXl/cPq2f8Ev+Dv2FST53bE7HpakBKC3Wd3WJHWpbyeUuhakPoDvpkng
|
64
|
+
WWkU0dQOAJyWnUapnyCwELpPY6Vy2TVNmrPmCIMVkW6VKSDPpCmKiHFWrAzQ
|
65
|
+
xNQRpfnsSNjXjUNVUy/NNdkCXIVxVnAkjbVp+M1Dy3CjetcNaGoAVipxLu8W
|
66
|
+
xiQbMa75X9MfP7LE6LaDlo1m11RR8SA9CXEhoDkS1ddy+quhGVm2Y3W8yG3T
|
67
|
+
yO94fux5QKlnJ+3ACbx28CbZXfLH8YImNOkVxeXW5KBMKiUouUKqF847NkXu
|
68
|
+
Sxwsoq2OdwoJYsdzrGbOR5j3wibUBRjfy+V7jNbOkbV3bRmr6eRBK1YWwIph
|
69
|
+
mk0m2Q2in57X+wHMJQoTq8aMjzbwgCjdCybVevFLxMzUP9jAOfqQOPcCkrVy
|
70
|
+
qDEzM7vhIOazcmMonRWRjAXL9Y61XmL3kOgpEyPK2d/l3reeJ0Rq8pd71VpV
|
71
|
+
lQhEwrVeP2tBK8jMzAW7pvGtboWAGNg1NnYDdw+w6E3d5vp0OEe6fnMk/Vrc
|
72
|
+
jxxXvxb3r8Vd7+yVdPl/LO6civIA735Z6LcWtCjKN9fpgOM5bctxrbgdoxqm
|
73
|
+
CXh2RK0oavu2RbG+HxIZz44zvywPDp3kzFCZoigaHQelRJKwcsc2uraPwhom
|
74
|
+
UD/6qLhSNoHVstppJ6C+n7SjlEIH0qDT8mKaJpEfB57rUtu3Yh9aLSxLQ2t1
|
75
|
+
fz01o4JNFOM4qVomN+M8RxOdT4HuDZTILGWg1ewT+aCuH1OOuqPKPJpk0ePn
|
76
|
+
/reSV9s/W4Caj+Us6M06QdH8x2PGGVffP+Aek/oL9L+X9EZAuruGLM+pisc4
|
77
|
+
ZXt7ZMe1Ww3bJa/0r+OSvb0LTvQf44qAEGSXZJyNQg43Wy/VmMmdP8pnvLzR
|
78
|
+
BkFHDQI8aZAsV5K8JKcfPh6dDsKT3tl7/SFukNPB0WF49nnwsfcpHJ7vf26Q
|
79
|
+
l+g2ZDzNtl9jrEW4dEtH+223AgxOhye9420yu+A7ZTrk/GBMRZWLxkdF+qV0
|
80
|
+
fYJ++8Ph6TA86Z+d9Q774XF/cImeaxzSTehCSsSwf9j/9CEsgU+ByhIRlAm8
|
81
|
+
uiQQqiyUSmwtXmtfWJ4QD4qpQ0qOgoSrsqLK9Mm4DXJhvJBd8kJeGNjIOnQF
|
82
|
+
xAbXXap997/GUOq8brdahlWaW3oZQpmTBmpMDRCgCsGJhW9eVZ1k6dZxb3B4
|
83
|
+
rntlB2F/0Ns/7r+tPGyXLa8NCTFNUt2My6uvGoOeU1znfESytHzGBPGKfv+e
|
84
|
+
PAYBK04Qgiyqej7Ae/PR4DAsb9F3KRGS4j0aRVvtPUSAEgWsWmh6/GQy1nXP
|
85
|
+
MfnVbj1CzGWX1qbmErkeOZewDem5xP/3BL3rFyHPp+gyoW9JinNQslX/1sNq
|
86
|
+
95FZIWJY8L2m3/ZrY345/wc4lzd/zxIAAA==
|
87
|
+
http_version: !!null
|
88
|
+
recorded_at: Sat, 09 Mar 2013 17:40:08 GMT
|
89
|
+
recorded_with: VCR 2.4.0
|
@@ -34,7 +34,7 @@ When /^I want(?: to|) (.*) (?:resource|resources)$/ do |method|
|
|
34
34
|
@method = method
|
35
35
|
end
|
36
36
|
|
37
|
-
When /^I want(?: to|) (.*) (?:resource|resources) with the following params:$/ do |method, table|
|
37
|
+
When /^I want(?: to|) (.*) (?:resource|resources) with the following (?:params|arguments):$/ do |method, table|
|
38
38
|
table.hashes.each do |attributes|
|
39
39
|
@method = method.to_sym
|
40
40
|
@attributes = attributes
|
data/lib/github_api/api.rb
CHANGED
@@ -112,7 +112,7 @@ module Github
|
|
112
112
|
end
|
113
113
|
|
114
114
|
# Set an option to a given value
|
115
|
-
def set(option, value=(not_set
|
115
|
+
def set(option, value=(not_set=true), ignore_setter=false, &block)
|
116
116
|
raise ArgumentError, 'value not set' if block and !not_set
|
117
117
|
return self if !not_set and value.nil?
|
118
118
|
|
@@ -121,7 +121,7 @@ module Github
|
|
121
121
|
return self
|
122
122
|
end
|
123
123
|
|
124
|
-
if respond_to?("#{option}=")
|
124
|
+
if respond_to?("#{option}=") and not ignore_setter
|
125
125
|
return __send__("#{option}=", value)
|
126
126
|
end
|
127
127
|
|
@@ -141,7 +141,7 @@ module Github
|
|
141
141
|
end
|
142
142
|
|
143
143
|
def define_accessors(option, value)
|
144
|
-
setter = proc { |val|
|
144
|
+
setter = proc { |val| set option, val, true }
|
145
145
|
getter = proc { value }
|
146
146
|
|
147
147
|
define_singleton_method("#{option}=", setter) if setter
|
@@ -150,13 +150,13 @@ module Github
|
|
150
150
|
|
151
151
|
# Dynamically define a method for setting request option
|
152
152
|
#
|
153
|
-
def define_singleton_method(
|
153
|
+
def define_singleton_method(method_name, content=Proc.new)
|
154
154
|
(class << self; self; end).class_eval do
|
155
|
-
undef_method(
|
155
|
+
undef_method(method_name) if method_defined?(method_name)
|
156
156
|
if String === content
|
157
|
-
class_eval("def #{
|
157
|
+
class_eval("def #{method_name}() #{content}; end")
|
158
158
|
else
|
159
|
-
define_method(
|
159
|
+
define_method(method_name, &content)
|
160
160
|
end
|
161
161
|
end
|
162
162
|
end
|
data/lib/github_api/version.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github, 'invocations' do
|
6
|
+
|
7
|
+
context 'repo commits with sha' do
|
8
|
+
let(:user) { "peter-murach" }
|
9
|
+
let(:repo) { "github" }
|
10
|
+
let(:sha) { "ceb66b61264657898cd6608c7e9ed78072169664" }
|
11
|
+
|
12
|
+
let(:request_path) { "/repos/#{user}/#{repo}/commits/#{sha}" }
|
13
|
+
|
14
|
+
before {
|
15
|
+
stub_get(request_path).to_return(:body => nil, :status => 200,
|
16
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
17
|
+
}
|
18
|
+
|
19
|
+
it 'requests commit information twice' do
|
20
|
+
subject.repos.commits.get user, repo, sha
|
21
|
+
subject.repos.commits.get user, repo, sha
|
22
|
+
a_get(request_path).should have_been_made.times(2)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'organization info' do
|
27
|
+
let(:org) { "thoughtbot" }
|
28
|
+
|
29
|
+
let(:request_path) { "/orgs/#{org}" }
|
30
|
+
|
31
|
+
before {
|
32
|
+
stub_get(request_path).to_return(:body => nil, :status => 200,
|
33
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
34
|
+
}
|
35
|
+
|
36
|
+
it 'requests organization information twice' do
|
37
|
+
subject.orgs.get org
|
38
|
+
subject.orgs.get org
|
39
|
+
a_get(request_path).should have_been_made.times(2)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-09 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|
16
|
-
requirement: &
|
16
|
+
requirement: &2155028260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '2.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2155028260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: faraday
|
27
|
-
requirement: &
|
27
|
+
requirement: &2155027760 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.8.1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2155027760
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: multi_json
|
38
|
-
requirement: &
|
38
|
+
requirement: &2155027300 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '1.4'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2155027300
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: oauth2
|
49
|
-
requirement: &
|
49
|
+
requirement: &2155026920 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2155026920
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: nokogiri
|
60
|
-
requirement: &
|
60
|
+
requirement: &2155026380 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.5.2
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2155026380
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &2155025880 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2155025880
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: cucumber
|
82
|
-
requirement: &
|
82
|
+
requirement: &2155025420 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2155025420
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: webmock
|
93
|
-
requirement: &
|
93
|
+
requirement: &2155024960 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 1.9.0
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2155024960
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: vcr
|
104
|
-
requirement: &
|
104
|
+
requirement: &2155024500 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 2.4.0
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2155024500
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: simplecov
|
115
|
-
requirement: &
|
115
|
+
requirement: &2155024040 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ~>
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: 0.7.1
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2155024040
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: coveralls
|
126
|
-
requirement: &
|
126
|
+
requirement: &2155023580 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ~>
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: 0.5.8
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *2155023580
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: guard
|
137
|
-
requirement: &
|
137
|
+
requirement: &2155023200 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *2155023200
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: guard-rspec
|
148
|
-
requirement: &
|
148
|
+
requirement: &2155022740 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,10 +153,10 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *2155022740
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: guard-cucumber
|
159
|
-
requirement: &
|
159
|
+
requirement: &2155022320 !ruby/object:Gem::Requirement
|
160
160
|
none: false
|
161
161
|
requirements:
|
162
162
|
- - ! '>='
|
@@ -164,10 +164,10 @@ dependencies:
|
|
164
164
|
version: '0'
|
165
165
|
type: :development
|
166
166
|
prerelease: false
|
167
|
-
version_requirements: *
|
167
|
+
version_requirements: *2155022320
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: rake
|
170
|
-
requirement: &
|
170
|
+
requirement: &2155021900 !ruby/object:Gem::Requirement
|
171
171
|
none: false
|
172
172
|
requirements:
|
173
173
|
- - ! '>='
|
@@ -175,10 +175,10 @@ dependencies:
|
|
175
175
|
version: '0'
|
176
176
|
type: :development
|
177
177
|
prerelease: false
|
178
|
-
version_requirements: *
|
178
|
+
version_requirements: *2155021900
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
180
|
name: bundler
|
181
|
-
requirement: &
|
181
|
+
requirement: &2155021480 !ruby/object:Gem::Requirement
|
182
182
|
none: false
|
183
183
|
requirements:
|
184
184
|
- - ! '>='
|
@@ -186,7 +186,7 @@ dependencies:
|
|
186
186
|
version: '0'
|
187
187
|
type: :development
|
188
188
|
prerelease: false
|
189
|
-
version_requirements: *
|
189
|
+
version_requirements: *2155021480
|
190
190
|
description: ! ' Ruby wrapper that supports all of the GitHub API v3 methods(nearly
|
191
191
|
200). It''s build in a modular way, that is, you can either instantiate the whole
|
192
192
|
api wrapper Github.new or use parts of it e.i. Github::Repos.new if working solely
|
@@ -201,6 +201,7 @@ files:
|
|
201
201
|
- features/activity/notifications.feature
|
202
202
|
- features/activity/starring.feature
|
203
203
|
- features/activity/watching.feature
|
204
|
+
- features/arguments_parsing.feature
|
204
205
|
- features/auto_pagination.feature
|
205
206
|
- features/cassettes/activity/events/issue.yml
|
206
207
|
- features/cassettes/activity/events/network.yml
|
@@ -221,6 +222,9 @@ files:
|
|
221
222
|
- features/cassettes/activity/watching/watch.yml
|
222
223
|
- features/cassettes/activity/watching/watched.yml
|
223
224
|
- features/cassettes/activity/watching/watching.yml
|
225
|
+
- features/cassettes/arguments/orgs/get.yml
|
226
|
+
- features/cassettes/arguments/pulls/get.yml
|
227
|
+
- features/cassettes/arguments/repo_commits/get.yml
|
224
228
|
- features/cassettes/auto_pagination/repos/global_list.yml
|
225
229
|
- features/cassettes/auto_pagination/repos/list.yml
|
226
230
|
- features/cassettes/emojis/list.yml
|
@@ -822,6 +826,7 @@ files:
|
|
822
826
|
- spec/integration/gists_spec.rb
|
823
827
|
- spec/integration/git_data_spec.rb
|
824
828
|
- spec/integration/issues_spec.rb
|
829
|
+
- spec/integration/multiple_invocations_spec.rb
|
825
830
|
- spec/integration/options_spec.rb
|
826
831
|
- spec/integration/orgs_spec.rb
|
827
832
|
- spec/integration/pull_requests_spec.rb
|