heroku-api 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/changelog.txt +7 -0
- data/heroku-api.gemspec +1 -1
- data/lib/heroku/api.rb +1 -1
- data/lib/heroku/api/ssl_endpoints.rb +62 -0
- data/lib/heroku/api/version.rb +1 -1
- data/test/data/server.crt +20 -0
- data/test/data/server.key +27 -0
- data/test/test_helper.rb +9 -0
- data/test/test_ssl_endpoints.rb +125 -0
- metadata +18 -11
data/changelog.txt
CHANGED
data/heroku-api.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
19
|
-
s.add_runtime_dependency 'excon', '~>0.15.
|
19
|
+
s.add_runtime_dependency 'excon', '~>0.15.5'
|
20
20
|
|
21
21
|
s.add_development_dependency 'minitest'
|
22
22
|
s.add_development_dependency 'rake'
|
data/lib/heroku/api.rb
CHANGED
@@ -26,6 +26,7 @@ require "heroku/api/login"
|
|
26
26
|
require "heroku/api/logs"
|
27
27
|
require "heroku/api/processes"
|
28
28
|
require "heroku/api/releases"
|
29
|
+
require "heroku/api/ssl_endpoints"
|
29
30
|
require "heroku/api/stacks"
|
30
31
|
require "heroku/api/user"
|
31
32
|
|
@@ -48,7 +49,6 @@ module Heroku
|
|
48
49
|
#'Accept-Language' => 'en-US, en;q=0.8',
|
49
50
|
'Authorization' => "Basic #{Base64.encode64(user_pass).gsub("\n", '')}",
|
50
51
|
'User-Agent' => "heroku-rb/#{Heroku::API::VERSION}",
|
51
|
-
'X-Heroku-API-Version' => '3',
|
52
52
|
'X-Ruby-Version' => RUBY_VERSION,
|
53
53
|
'X-Ruby-Platform' => RUBY_PLATFORM
|
54
54
|
}.merge(options[:headers])
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Heroku
|
2
|
+
class API
|
3
|
+
|
4
|
+
# DELETE /apps/:app/ssl-endpoint/:cname
|
5
|
+
def delete_ssl_endpoint(app, cname)
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => :delete,
|
9
|
+
:path => "/apps/#{app}/ssl-endpoints/#{escape(cname)}"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
# GET /apps/:app/ssl-endpoint/:cname
|
14
|
+
def get_ssl_endpoint(app, cname)
|
15
|
+
request(
|
16
|
+
:expects => 200,
|
17
|
+
:method => :get,
|
18
|
+
:path => "/apps/#{app}/ssl-endpoints/#{escape(cname)}"
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
# GET /apps/:app/ssl-endpoints
|
23
|
+
def get_ssl_endpoints(app)
|
24
|
+
request(
|
25
|
+
:expects => 200,
|
26
|
+
:method => :get,
|
27
|
+
:path => "/apps/#{app}/ssl-endpoints"
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
# POST /apps/:app/ssl-endpoints
|
32
|
+
def post_ssl_endpoint(app, pem, key)
|
33
|
+
request(
|
34
|
+
:expects => 200,
|
35
|
+
:method => :post,
|
36
|
+
:path => "/apps/#{app}/ssl-endpoints",
|
37
|
+
:query => { 'key' => key, 'pem' => pem }
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
# POST /apps/:app/ssl-endpoints/:cname/rollback
|
42
|
+
def post_ssl_endpoint_rollback(app, cname)
|
43
|
+
request(
|
44
|
+
:expects => 200,
|
45
|
+
:method => :post,
|
46
|
+
:path => "/apps/#{app}/ssl-endpoints/#{escape(cname)}/rollback"
|
47
|
+
)
|
48
|
+
end
|
49
|
+
|
50
|
+
# PUT /apps/:app/ssl-endpoints/:cname
|
51
|
+
def put_ssl_endpoint(app, cname, pem, key)
|
52
|
+
request(
|
53
|
+
:expects => 200,
|
54
|
+
:method => :put,
|
55
|
+
:path => "/apps/#{app}/ssl-endpoints/#{escape(cname)}",
|
56
|
+
:query => { 'key' => key, 'pem' => pem }
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
data/lib/heroku/api/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDPDCCAiQCCQCh/jTWfdrzuDANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJV
|
3
|
+
UzEPMA0GA1UEChMGSGVyb2t1MR4wHAYDVQQDExVnZWVtdXMgKFdlc2xleSBCZWFy
|
4
|
+
eSkxIDAeBgkqhkiG9w0BCQEWEXdlc2xleUBoZXJva3UuY29tMB4XDTEyMDczMDIy
|
5
|
+
MTkzMFoXDTEzMDczMDIyMTkzMFowYDELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkhl
|
6
|
+
cm9rdTEeMBwGA1UEAxMVZ2VlbXVzIChXZXNsZXkgQmVhcnkpMSAwHgYJKoZIhvcN
|
7
|
+
AQkBFhF3ZXNsZXlAaGVyb2t1LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
8
|
+
AQoCggEBAOLKtOae7E8zilNDZfdrg943Q6UOpV9+0i/LHR38vMcgbWJ1KO/ei/d7
|
9
|
+
i0Ei6krOJjrLcxZH4ixxSRTHeKv8iYqH+IUXnDAxoLSi64/0xrCo+EQibDWx7dFy
|
10
|
+
zgDqE2CCsf9LJmU3O2gshiTnuyZPyxAHumDp9uyf56T1L3tCyjTyjagigkxOcR9/
|
11
|
+
Hff7aV1Emtu4pQvza2mFIxL8PA2FYm850dHQod3TtSrL+HtUZOxS4wBZD6Pw+3vA
|
12
|
+
i0jemuFXBszgwDQl0zF1zQ8u1dQmo5PETr8Swnx7LN7G/BauUZ3iXt91M83kE0Pw
|
13
|
+
tFNIAAVvajUFDi42jWdOBwXQE7XlEdUCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
14
|
+
3K5EOBNclZzlrrGU+vrawhoERPGShMDqA8Xqk7wXnYFhtj/3432+SRxSfrNEatqD
|
15
|
+
+lTdSdzERvJBWXHX5xJyu2GmenMNbA4WleqUKPhCXjyCz7dPUUp5hYNcCeAFENYl
|
16
|
+
6MJX0NNrfgRLC8guWseerCAosPAr7Tw4SjMLYVl2yakV5O4e3E5rwazFOr15aMN/
|
17
|
+
oUp0RjkkgqqVCNua2zwXk23OSnqO+quKSbpmjRI5e00qFyp70n0T3+ODl+1GFczJ
|
18
|
+
iTPDEBkW7A4q/lNMlKful7kEeEOhRXfXoGwoSVracDD/bBngXKu0Epgv8LzQVQkK
|
19
|
+
IZf1KG3pPS7kiGgk31G4Wg==
|
20
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpAIBAAKCAQEA4sq05p7sTzOKU0Nl92uD3jdDpQ6lX37SL8sdHfy8xyBtYnUo
|
3
|
+
796L93uLQSLqSs4mOstzFkfiLHFJFMd4q/yJiof4hRecMDGgtKLrj/TGsKj4RCJs
|
4
|
+
NbHt0XLOAOoTYIKx/0smZTc7aCyGJOe7Jk/LEAe6YOn27J/npPUve0LKNPKNqCKC
|
5
|
+
TE5xH38d9/tpXUSa27ilC/NraYUjEvw8DYVibznR0dCh3dO1Ksv4e1Rk7FLjAFkP
|
6
|
+
o/D7e8CLSN6a4VcGzODANCXTMXXNDy7V1Cajk8ROvxLCfHss3sb8Fq5RneJe33Uz
|
7
|
+
zeQTQ/C0U0gABW9qNQUOLjaNZ04HBdATteUR1QIDAQABAoIBAQCJDqPgs65v9t/j
|
8
|
+
jdmzeuBIjPFucLl0SrpPc9p24uRbGrfARrmkrMO9noX7qVQaPRdRdN5qWqrO3O+j
|
9
|
+
hSDiH04n0CBanngfj/5k7AicCPuCi7rtwjfPA2aLq2vflZZ8Pr+/XvUnOgfG3xF6
|
10
|
+
gCjT8GjxmRoDs6EsQz7ErAAz55s3/zJjYp25bauULPML9/KVNaGM87ynAK+2NEki
|
11
|
+
QEBydo/BzxtuMYu/sUPd1eAj1UyIVW+h6K01H0xmU5Vx2xD/+prHcYidTzFPyDWz
|
12
|
+
3A96Yj9xl8QuiF9h8st919ot80I0V8LOjJ0yuCpNq3Qu9zV6OHW+SPRkYrUQf6o3
|
13
|
+
6Mty5zQJAoGBAPS1R6MY7B1yO+OkLTY1ibAzmdK/G6pvFNC/dbl5VFfTgxi4sjth
|
14
|
+
Sg44jd1Ttd/LnqQ4SQBRXm/UI3CxoYsF6BQFG8WDdQ+Kn1wB9SzBQl+bz/KYUBbQ
|
15
|
+
r/mwWW9F91aavz8NAALIjRk3wz+PtN4aV2M7BOlEmVxHVQ8K3piqEZI3AoGBAO1B
|
16
|
+
yGQ8Uh9VxFnghqgJY2gWPXLq4ju3sef+16nSVvS0+ypOq55w3uXX8zfa9riKyTau
|
17
|
+
J4QIJYGtYR9dVWyn3mp2F7AesL9Qk5+g3q6hMpFGamaiL+GaEbjfKWjxdp1EC6qs
|
18
|
+
LwYHYuo9DrCkApbPnFoHpbaOYPQ+BhxzdVFYNaZTAoGBAKQVCbvq8ieseUviwg4f
|
19
|
+
R/vGHdaaHkrhwOtX9fAv0sYxJS5madw3GBkBAt7tSn6NYgprU0fLR69kZ38hHFjD
|
20
|
+
1SHXaw+9XbjWEpT3GxavX3oMWBsq1kj2FYkvHkjmeTqw+Jumc+Np5nKKWXk9OuHS
|
21
|
+
d9YptNlVDiA6FGbJuwhSwQVxAoGAcB0qzbr3b5k+3N3No/AzykbgKMK3v1Jxvlhd
|
22
|
+
nwEnWCGBop9kV82sdt5SL23IMrJanP007R5QYvQENicLq/mzj4lYbkBCc1VnPQJu
|
23
|
+
2ASSebXVp8QybiA5CaxizBV2YKB8Bt2wpt+srVXG8E/AbXWTw7Njal3jkOcSSjWB
|
24
|
+
FbxiNcMCgYApDMoIJRshdDUbnAmHBiejBxAbyrnhjs5LIklDb3R5OBm2OdgtpDPX
|
25
|
+
OEQVS9jHW2rBsLKHTi5bqFfVV1UsIH0nw3aTj4qhEzlVwoGIrrkKN5HG0TK991Y+
|
26
|
+
nMZF5DpWRpXGilpBqD3ZYExmDvPW8DkvxCSH7O2tuaAMg9djm/wyzw==
|
27
|
+
-----END RSA PRIVATE KEY-----
|
data/test/test_helper.rb
CHANGED
@@ -5,8 +5,17 @@ gem 'minitest' # ensure we are using the gem version
|
|
5
5
|
require 'minitest/autorun'
|
6
6
|
require 'time'
|
7
7
|
|
8
|
+
DATA_PATH = File.expand_path("#{File.dirname(__FILE__)}/data")
|
8
9
|
MOCK = ENV['MOCK'] != 'false'
|
9
10
|
|
11
|
+
def data_server_crt
|
12
|
+
@data_server_crt ||= File.read(File.join(DATA_PATH, 'server.crt'))
|
13
|
+
end
|
14
|
+
|
15
|
+
def data_server_key
|
16
|
+
@data_server_key ||= File.read(File.join(DATA_PATH, 'server.key'))
|
17
|
+
end
|
18
|
+
|
10
19
|
def heroku
|
11
20
|
# ENV['HEROKU_API_KEY'] used for :api_key
|
12
21
|
Heroku::API.new(:mock => MOCK)
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
|
2
|
+
|
3
|
+
class TestSslEndpoints < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def test_delete_ssl_endpoint
|
6
|
+
skip if MOCK
|
7
|
+
with_app do |app_data|
|
8
|
+
heroku.post_addon(app_data['name'], 'ssl:endpoint')
|
9
|
+
ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_server_crt, data_server_key).body
|
10
|
+
|
11
|
+
response = heroku.delete_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'])
|
12
|
+
|
13
|
+
assert_equal(' ', response.body)
|
14
|
+
assert_equal(200, response.status)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_delete_ssl_endpoint_app_not_found
|
19
|
+
skip if MOCK
|
20
|
+
assert_raises(Heroku::API::Errors::NotFound) do
|
21
|
+
heroku.delete_ssl_endpoint(random_name, 'key')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_get_ssl_endpoint
|
26
|
+
skip if MOCK
|
27
|
+
with_app do |app_data|
|
28
|
+
heroku.post_addon(app_data['name'], 'ssl:endpoint')
|
29
|
+
ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_server_crt, data_server_key).body
|
30
|
+
|
31
|
+
response = heroku.get_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'])
|
32
|
+
|
33
|
+
data = response.body['ssl_cert']
|
34
|
+
assert_equal(false, data['ca_signed?'])
|
35
|
+
assert_equal(true, data['self_signed?'])
|
36
|
+
assert_equal(['geemus (wesley beary)'], data['cert_domains'])
|
37
|
+
assert_equal('2013/07/30 15:19:30 -0700', data['expires_at'])
|
38
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['issuer'])
|
39
|
+
assert_equal('2012/07/30 15:19:30 -0700', data['starts_at'])
|
40
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['subject'])
|
41
|
+
assert_equal(200, response.status)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_get_ssl_endpoints
|
46
|
+
skip if MOCK
|
47
|
+
with_app do |app_data|
|
48
|
+
heroku.post_addon(app_data['name'], 'ssl:endpoint')
|
49
|
+
heroku.post_ssl_endpoint(app_data['name'], data_server_crt, data_server_key)
|
50
|
+
|
51
|
+
response = heroku.get_ssl_endpoints(app_data['name'])
|
52
|
+
|
53
|
+
data = response.body.first['ssl_cert']
|
54
|
+
assert_equal(false, data['ca_signed?'])
|
55
|
+
assert_equal(true, data['self_signed?'])
|
56
|
+
assert_equal(['geemus (wesley beary)'], data['cert_domains'])
|
57
|
+
assert_equal('2013/07/30 15:19:30 -0700', data['expires_at'])
|
58
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['issuer'])
|
59
|
+
assert_equal('2012/07/30 15:19:30 -0700', data['starts_at'])
|
60
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['subject'])
|
61
|
+
assert_equal(200, response.status)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_post_ssl_endpoint
|
66
|
+
skip if MOCK
|
67
|
+
with_app do |app_data|
|
68
|
+
heroku.post_addon(app_data['name'], 'ssl:endpoint')
|
69
|
+
|
70
|
+
response = heroku.post_ssl_endpoint(app_data['name'], data_server_crt, data_server_key)
|
71
|
+
|
72
|
+
data = response.body['ssl_cert']
|
73
|
+
assert_equal(false, data['ca_signed?'])
|
74
|
+
assert_equal(true, data['self_signed?'])
|
75
|
+
assert_equal(['geemus (wesley beary)'], data['cert_domains'])
|
76
|
+
assert_equal('2013/07/30 15:19:30 -0700', data['expires_at'])
|
77
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['issuer'])
|
78
|
+
assert_equal('2012/07/30 15:19:30 -0700', data['starts_at'])
|
79
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['subject'])
|
80
|
+
assert_equal(200, response.status)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_post_ssl_endpoint_rollback
|
85
|
+
skip if MOCK
|
86
|
+
with_app do |app_data|
|
87
|
+
heroku.post_addon(app_data['name'], 'ssl:endpoint')
|
88
|
+
ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_server_crt, data_server_key).body
|
89
|
+
heroku.put_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'], data_server_crt, data_server_key)
|
90
|
+
|
91
|
+
response = heroku.post_ssl_endpoint_rollback(app_data['name'], ssl_endpoint_data['cname'])
|
92
|
+
|
93
|
+
data = response.body['ssl_cert']
|
94
|
+
assert_equal(false, data['ca_signed?'])
|
95
|
+
assert_equal(true, data['self_signed?'])
|
96
|
+
assert_equal(['geemus (wesley beary)'], data['cert_domains'])
|
97
|
+
assert_equal('2013/07/30 15:19:30 -0700', data['expires_at'])
|
98
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['issuer'])
|
99
|
+
assert_equal('2012/07/30 15:19:30 -0700', data['starts_at'])
|
100
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['subject'])
|
101
|
+
assert_equal(200, response.status)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_put_ssl_endpoint
|
106
|
+
skip if MOCK
|
107
|
+
with_app do |app_data|
|
108
|
+
heroku.post_addon(app_data['name'], 'ssl:endpoint')
|
109
|
+
ssl_endpoint_data = heroku.post_ssl_endpoint(app_data['name'], data_server_crt, data_server_key).body
|
110
|
+
|
111
|
+
response = heroku.put_ssl_endpoint(app_data['name'], ssl_endpoint_data['cname'], data_server_crt, data_server_key)
|
112
|
+
|
113
|
+
data = response.body['ssl_cert']
|
114
|
+
assert_equal(false, data['ca_signed?'])
|
115
|
+
assert_equal(true, data['self_signed?'])
|
116
|
+
assert_equal(['geemus (wesley beary)'], data['cert_domains'])
|
117
|
+
assert_equal('2013/07/30 15:19:30 -0700', data['expires_at'])
|
118
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['issuer'])
|
119
|
+
assert_equal('2012/07/30 15:19:30 -0700', data['starts_at'])
|
120
|
+
assert_equal('/C=US/O=Heroku/CN=geemus (Wesley Beary)/emailAddress=wesley@heroku.com', data['subject'])
|
121
|
+
assert_equal(200, response.status)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroku-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: excon
|
16
|
-
requirement: &
|
16
|
+
requirement: &70119193362320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.15.
|
21
|
+
version: 0.15.5
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70119193362320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: minitest
|
27
|
-
requirement: &
|
27
|
+
requirement: &70119193360480 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70119193360480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70119193355000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70119193355000
|
47
47
|
description: Ruby Client for the Heroku API
|
48
48
|
email:
|
49
49
|
- wesley@heroku.com
|
@@ -89,10 +89,13 @@ files:
|
|
89
89
|
- lib/heroku/api/mock/user.rb
|
90
90
|
- lib/heroku/api/processes.rb
|
91
91
|
- lib/heroku/api/releases.rb
|
92
|
+
- lib/heroku/api/ssl_endpoints.rb
|
92
93
|
- lib/heroku/api/stacks.rb
|
93
94
|
- lib/heroku/api/user.rb
|
94
95
|
- lib/heroku/api/vendor/okjson.rb
|
95
96
|
- lib/heroku/api/version.rb
|
97
|
+
- test/data/server.crt
|
98
|
+
- test/data/server.key
|
96
99
|
- test/test_addons.rb
|
97
100
|
- test/test_apps.rb
|
98
101
|
- test/test_collaborators.rb
|
@@ -105,6 +108,7 @@ files:
|
|
105
108
|
- test/test_logs.rb
|
106
109
|
- test/test_processes.rb
|
107
110
|
- test/test_releases.rb
|
111
|
+
- test/test_ssl_endpoints.rb
|
108
112
|
- test/test_stacks.rb
|
109
113
|
- test/test_user.rb
|
110
114
|
homepage: http://github.com/heroku/heroku.rb
|
@@ -121,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
121
125
|
version: '0'
|
122
126
|
segments:
|
123
127
|
- 0
|
124
|
-
hash: -
|
128
|
+
hash: -2298175570851415714
|
125
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
130
|
none: false
|
127
131
|
requirements:
|
@@ -130,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
134
|
version: '0'
|
131
135
|
segments:
|
132
136
|
- 0
|
133
|
-
hash: -
|
137
|
+
hash: -2298175570851415714
|
134
138
|
requirements: []
|
135
139
|
rubyforge_project:
|
136
140
|
rubygems_version: 1.8.15
|
@@ -138,6 +142,8 @@ signing_key:
|
|
138
142
|
specification_version: 3
|
139
143
|
summary: Ruby Client for the Heroku API
|
140
144
|
test_files:
|
145
|
+
- test/data/server.crt
|
146
|
+
- test/data/server.key
|
141
147
|
- test/test_addons.rb
|
142
148
|
- test/test_apps.rb
|
143
149
|
- test/test_collaborators.rb
|
@@ -150,5 +156,6 @@ test_files:
|
|
150
156
|
- test/test_logs.rb
|
151
157
|
- test/test_processes.rb
|
152
158
|
- test/test_releases.rb
|
159
|
+
- test/test_ssl_endpoints.rb
|
153
160
|
- test/test_stacks.rb
|
154
161
|
- test/test_user.rb
|