dpl 1.7.4.travis.600.1 → 1.7.4.travis.619.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTdlODdlMDM1NmNkODg4YzRiMjc1ZWNhODU2OTQ3NDEwMzFiYTE4Mw==
4
+ ZTdkMTFmMTFjMmQ4ZGJhYzI0M2NiN2EzYzk2MjVlZTQ1MjU1NGUxOQ==
5
5
  data.tar.gz: !binary |-
6
- ZjdiZGRjNWE2MWZlMjBmMWI4ZjExNDQ1Mzc4MGEwOTc4YzQwMmNlNw==
6
+ MTg4YjllYzYzZjJmNjQ4YWY4YTdhMzVhNGM1Mzk1ZGY0ZWY2YWI1Yg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjYwOWIzZjFhYmIxM2RlMzM3NzQ5MTk2Zjg0ZGE1ZDJhODljNDg2YWNmMWU0
10
- MzhiYmJmYTM3OGQ2ZTIzZjJiY2U1Zjc1N2U0YmU3ZDdiYjA2MWE0OTEyMmYx
11
- NmI5MDUwZjcyYmEyZDZlNmIyNGRkNjhkMDA3MTdlZDdhZWRiODM=
9
+ N2I3MGI2NDA1ZTE0ZjUwOTViOWE5ZDVhZTQwMjljOTZkYjE5ODEwNDViOTRj
10
+ ZTQ5M2ZiOWIwZDE1Y2ExZTU2MmEzNjY0YmM4YjhmY2Q3Mjc3YjM1YWJhOWVj
11
+ NjNkOWI2MzFmNDlkNjQzODQ3M2U4MjI5MzU4MDllMjYyM2RlYTE=
12
12
  data.tar.gz: !binary |-
13
- MzYwM2JiNmNkMWNlOWQzODkwYzJlYjVhM2Q3OGIwZWU4YzcxYWM0ZDllZWFh
14
- NDY5ZWMwMTVmODExNWU3NmMyOTViNzExMGExZDk5MzE1ZjYzNDhjNGVkZTc2
15
- NmRhYWMxMzAwZmYxYWE0Zjc4YWNlYjFjZTdlM2Y0OGMzY2MzZWE=
13
+ MzU3NjI4Y2Y3ZDdhNDliZmU5ZWEyYTUzYTQyM2Y2YzIzMDA1YjMxZTFkODMy
14
+ NjUyYTVlOGZiNzA1YzQ2ZWVmODYxZjUwYzk3NmYyM2FkZjkyOTRjMTdiZjg5
15
+ ZjQ0NTAyNTljZjViZDhlODU2NGI0MDMzMWRiMWE4MzNiYTQzNTA=
data/lib/dpl/cli.rb CHANGED
@@ -58,5 +58,9 @@ module DPL
58
58
  $stderr.puts(message)
59
59
  exit 1
60
60
  end
61
+
62
+ def env
63
+ ENV
64
+ end
61
65
  end
62
66
  end
data/lib/dpl/provider.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'dpl/error'
2
+ require 'dpl/version'
2
3
  require 'fileutils'
3
4
 
4
5
  module DPL
@@ -84,6 +85,14 @@ module DPL
84
85
 
85
86
  def initialize(context, options)
86
87
  @context, @options = context, options
88
+ context.env['GIT_HTTP_USER_AGENT'] = user_agent(git: `git --version`[/[\d\.]+/])
89
+ end
90
+
91
+ def user_agent(*strings)
92
+ strings.unshift "dpl/#{DPL::VERSION}"
93
+ strings.unshift "travis/0.1.0" if context.env['TRAVIS']
94
+ strings = strings.flat_map { |e| Hash === e ? e.map { |k,v| "#{k}/#{v}" } : e }
95
+ strings.join(" ").gsub(/\s+/, " ").strip
87
96
  end
88
97
 
89
98
  def option(name, *alternatives)
@@ -127,7 +136,7 @@ module DPL
127
136
  end
128
137
 
129
138
  def sha
130
- @sha ||= ENV['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip
139
+ @sha ||= context.env['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip
131
140
  end
132
141
 
133
142
  def commit_msg
@@ -172,7 +181,7 @@ module DPL
172
181
  end
173
182
 
174
183
  chmod(0740, path)
175
- ENV['GIT_SSH'] = path
184
+ context.env['GIT_SSH'] = path
176
185
  end
177
186
 
178
187
  def detect_encoding?
@@ -49,8 +49,8 @@ module DPL
49
49
  {
50
50
  revision_type: 'GitHub',
51
51
  git_hub_location: {
52
- commit_id: options[:commit_id] || ENV['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip,
53
- repository: options[:repository] || ENV['TRAVIS_REPO_SLUG'] || option(:repository)
52
+ commit_id: options[:commit_id] || context.env['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip,
53
+ repository: options[:repository] || context.env['TRAVIS_REPO_SLUG'] || option(:repository)
54
54
  }
55
55
  }
56
56
  end
@@ -80,7 +80,7 @@ module DPL
80
80
  end
81
81
 
82
82
  def default_description
83
- "Deploy build #{ENV['TRAVIS_BUILD_NUMBER']} via Travis CI"
83
+ "Deploy build #{context.env['TRAVIS_BUILD_NUMBER']} via Travis CI"
84
84
  end
85
85
 
86
86
  def check_auth
@@ -53,7 +53,7 @@ module DPL
53
53
  end
54
54
 
55
55
  def app_dir
56
- options[:app_dir] || ENV['TRAVIS_BUILD_DIR'] || Dir.pwd
56
+ options[:app_dir] || context.env['TRAVIS_BUILD_DIR'] || Dir.pwd
57
57
  end
58
58
 
59
59
  def push_app
@@ -3,15 +3,17 @@ module DPL
3
3
  module Heroku
4
4
  autoload :Anvil, 'dpl/provider/heroku/anvil'
5
5
  autoload :API, 'dpl/provider/heroku/api'
6
+ autoload :Generic, 'dpl/provider/heroku/generic'
6
7
  autoload :Git, 'dpl/provider/heroku/git'
8
+ autoload :GitSSH, 'dpl/provider/heroku/git_ssh'
7
9
  autoload :GitDeployKey, 'dpl/provider/heroku/git_deploy_key'
8
10
 
9
11
  extend self
10
12
 
11
13
  def new(context, options)
12
- strategy = options[:strategy] || 'anvil'
13
- constant = constants.detect { |c| c.to_s.downcase == strategy }
14
- raise Error, 'unknown strategy %p' % strategy unless constant
14
+ strategy = options[:strategy] || 'api'
15
+ constant = constants.detect { |c| c.to_s.downcase == strategy.downcase.gsub(/\W/, '') }
16
+ raise Error, 'unknown strategy %p' % strategy unless constant and constant != Generic
15
17
  const_get(constant).new(context, options)
16
18
  end
17
19
  end
@@ -13,10 +13,6 @@ module DPL
13
13
  super
14
14
  end
15
15
 
16
- def needs_key?
17
- false
18
- end
19
-
20
16
  def deploy
21
17
  warn ''
22
18
  if options[:strategy]
@@ -34,7 +30,7 @@ module DPL
34
30
  end
35
31
 
36
32
  def push_app
37
- sha = ENV['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip
33
+ sha = context.env['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip
38
34
  response = Excon.post release_url,
39
35
  :body => { "slug_url" => slug_url, "description" => "Deploy #{sha} via Travis CI" }.to_json,
40
36
  :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
@@ -4,15 +4,7 @@ require 'shellwords'
4
4
  module DPL
5
5
  class Provider
6
6
  module Heroku
7
- class API < Git
8
- def needs_key?
9
- false
10
- end
11
-
12
- def user
13
- @user ||= api.get_user.body["email"]
14
- end
15
-
7
+ class API < Generic
16
8
  def push_app
17
9
  pack_archive
18
10
  upload_archive
@@ -20,7 +12,7 @@ module DPL
20
12
  end
21
13
 
22
14
  def archive_file
23
- Shellwords.escape("#{ENV['HOME']}/.dpl.#{option(:app)}.tgz")
15
+ Shellwords.escape("#{context.env['HOME']}/.dpl.#{option(:app)}.tgz")
24
16
  end
25
17
 
26
18
  def pack_archive
@@ -53,7 +45,7 @@ module DPL
53
45
  end
54
46
 
55
47
  def version
56
- @version ||= options[:version] || ENV['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip
48
+ @version ||= options[:version] || context.env['TRAVIS_COMMIT'] || `git rev-parse HEAD`.strip
57
49
  end
58
50
 
59
51
  def post(subpath, body = nil, options = {})
@@ -0,0 +1,63 @@
1
+ module DPL
2
+ class Provider
3
+ module Heroku
4
+ class Generic < Provider
5
+ requires 'heroku-api'
6
+ requires 'rendezvous'
7
+
8
+ def needs_key?
9
+ false
10
+ end
11
+
12
+ def api
13
+ @api ||= ::Heroku::API.new(api_options)
14
+ end
15
+
16
+ def api_options
17
+ api_options = { headers: { 'User-Agent' => user_agent(::Heroku::API::HEADERS.fetch('User-Agent')) } }
18
+ if options[:user] and options[:password]
19
+ api_options[:user] = options[:user]
20
+ api_options[:password] = options[:password]
21
+ else
22
+ api_options[:api_key] = option(:api_key)
23
+ end
24
+ api_options
25
+ end
26
+
27
+ def user
28
+ @user ||= api.get_user.body["email"]
29
+ end
30
+
31
+ def check_auth
32
+ log "authenticated as %s" % user
33
+ end
34
+
35
+ def check_app
36
+ log "checking for app '#{option(:app)}'"
37
+ info = api.get_app(option(:app)).body
38
+ log "found app '#{info['name']}'"
39
+ rescue ::Heroku::API::Errors::Forbidden => error
40
+ raise Error, "#{error.message} (does the app '#{option(:app)}' exist and does your account have access to it?)", error.backtrace
41
+ end
42
+
43
+ def run(command)
44
+ data = api.post_ps(option(:app), command, :attach => true).body
45
+ rendezvous_url = data['rendezvous_url']
46
+ Rendezvous.start(:url => rendezvous_url) unless rendezvous_url.nil?
47
+ end
48
+
49
+ def restart
50
+ api.post_ps_restart option(:app)
51
+ end
52
+
53
+ def deploy
54
+ super
55
+ rescue ::Heroku::API::Errors::NotFound => error
56
+ raise Error, "#{error.message} (wrong app #{options[:app].inspect}?)", error.backtrace
57
+ rescue ::Heroku::API::Errors::Unauthorized => error
58
+ raise Error, "#{error.message} (wrong API key?)", error.backtrace
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -1,60 +1,23 @@
1
1
  module DPL
2
2
  class Provider
3
3
  module Heroku
4
- class Git < Provider
5
- requires 'heroku-api'
6
- requires 'rendezvous'
4
+ class Git < Generic
5
+ require 'netrc'
7
6
 
8
- def api
9
- @api ||= ::Heroku::API.new(:api_key => option(:api_key)) unless options[:user] and options[:password]
10
- @api ||= ::Heroku::API.new(:user => options[:user], :password => options[:password])
11
- end
12
-
13
- def user
14
- @user ||= api.get_user.body["email"]
15
- end
16
-
17
- def check_auth
18
- log "authenticated as %s" % user
19
- end
20
-
21
- def check_app
22
- log "checking for app '#{option(:app)}'"
23
- info = api.get_app(option(:app)).body
24
- options[:git] ||= info['git_url']
25
- log "found app '#{info['name']}'"
26
- rescue ::Heroku::API::Errors::Forbidden => error
27
- raise Error, "#{error.message} (does the app '#{option(:app)}' exist and does your account have access to it?)", error.backtrace
28
- end
29
-
30
- def setup_key(file)
31
- api.post_key File.read(file)
32
- end
33
-
34
- def remove_key
35
- api.delete_key(option(:key_name))
7
+ def git_url
8
+ "https://git.heroku.com/#{option(:app)}.git"
36
9
  end
37
10
 
38
11
  def push_app
39
- context.shell "git push #{option(:git)} HEAD:refs/heads/master -f"
40
- end
41
-
42
- def run(command)
43
- data = api.post_ps(option(:app), command, :attach => true).body
44
- rendezvous_url = data['rendezvous_url']
45
- Rendezvous.start(:url => rendezvous_url) unless rendezvous_url.nil?
46
- end
47
-
48
- def restart
49
- api.post_ps_restart option(:app)
12
+ git_remote = options[:git] || git_url
13
+ write_netrc if git_remote.start_with?("https://")
14
+ context.shell "git push #{git_remote} HEAD:refs/heads/master -f"
50
15
  end
51
16
 
52
- def deploy
53
- super
54
- rescue ::Heroku::API::Errors::NotFound => error
55
- raise Error, "#{error.message} (wrong app #{options[:app].inspect}?)", error.backtrace
56
- rescue ::Heroku::API::Errors::Unauthorized => error
57
- raise Error, "#{error.message} (wrong API key?)", error.backtrace
17
+ def write_netrc
18
+ n = Netrc.read
19
+ n['git.heroku.com'] = [user, option(:api_key)]
20
+ n.save
58
21
  end
59
22
  end
60
23
  end
@@ -1,7 +1,7 @@
1
1
  module DPL
2
2
  class Provider
3
3
  module Heroku
4
- class GitDeployKey < Git
4
+ class GitDeployKey < GitSSH
5
5
  def needs_key?
6
6
  false
7
7
  end
@@ -20,7 +20,7 @@ module DPL
20
20
  end
21
21
 
22
22
  chmod(0740, path)
23
- ENV['GIT_SSH'] = path
23
+ context.env['GIT_SSH'] = path
24
24
  end
25
25
  end
26
26
  end
@@ -0,0 +1,23 @@
1
+ module DPL
2
+ class Provider
3
+ module Heroku
4
+ class GitSSH < Git
5
+ def git_url
6
+ info['git_url']
7
+ end
8
+
9
+ def needs_key?
10
+ true
11
+ end
12
+
13
+ def setup_key(file)
14
+ api.post_key File.read(file)
15
+ end
16
+
17
+ def remove_key
18
+ api.delete_key(option(:key_name))
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -101,7 +101,7 @@ module DPL
101
101
  end
102
102
 
103
103
  def travis_deploy_comment
104
- "Deploy build #{ENV['TRAVIS_BUILD_NUMBER'] || current_sha} via Travis CI"
104
+ "Deploy build #{context.env['TRAVIS_BUILD_NUMBER'] || current_sha} via Travis CI"
105
105
  end
106
106
 
107
107
  def deploy
@@ -8,10 +8,10 @@ module DPL
8
8
 
9
9
  def travis_tag
10
10
  # Check if $TRAVIS_TAG is unset or set but empty
11
- if ENV.fetch('TRAVIS_TAG','') == ''
11
+ if context.env.fetch('TRAVIS_TAG','') == ''
12
12
  nil
13
13
  else
14
- ENV['TRAVIS_TAG']
14
+ context.env['TRAVIS_TAG']
15
15
  end
16
16
  end
17
17
 
@@ -32,7 +32,7 @@ module DPL
32
32
  end
33
33
 
34
34
  def slug
35
- options.fetch(:repo) { ENV['TRAVIS_REPO_SLUG'] }
35
+ options.fetch(:repo) { context.env['TRAVIS_REPO_SLUG'] }
36
36
  end
37
37
 
38
38
  def releases
@@ -51,7 +51,7 @@ describe DPL::Provider::Deis do
51
51
  let(:ssh_config) { File.join(Dir.home, '.ssh', 'config') }
52
52
  let(:identity_file) { File.join(Dir.pwd, 'key_file') }
53
53
  let(:git_ssh) { File.join(Dir.pwd, 'foo') }
54
- after { FileUtils.rm ENV.delete('GIT_SSH') }
54
+ after { FileUtils.rm provider.context.env.delete('GIT_SSH') }
55
55
 
56
56
  example do
57
57
  expect(File).to receive(:open).with(git_ssh, 'w').and_call_original
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # describe '#push_app' do
12
12
  # example 'with default app_dir' do
13
- # ENV['TRAVIS_BUILD_DIR'] = Dir.pwd
13
+ # provider.context.env['TRAVIS_BUILD_DIR'] = Dir.pwd
14
14
  # provider.options.update(:oauth_refresh_token => token)
15
15
  # expect(provider.context).to receive(:shell).with("#{DPL::Provider::GAE::APPCFG_BIN} --oauth2_refresh_token=#{token} update #{Dir.pwd}").and_return(true)
16
16
  # provider.push_app
@@ -44,7 +44,7 @@ describe DPL::Provider::Heroku do
44
44
 
45
45
  allow(provider).to receive_messages(:slug_url => "http://slug-url")
46
46
 
47
- expect(ENV).to receive(:[]).with('TRAVIS_COMMIT').and_return('123')
47
+ expect(provider.context.env).to receive(:[]).with('TRAVIS_COMMIT').and_return('123')
48
48
  expect(::Excon).to receive(:post).with(provider.release_url,
49
49
  :body => {"slug_url" => "http://slug-url", "description" => "Deploy 123 via Travis CI" }.to_json,
50
50
  :headers => {"Content-Type" => 'application/json', 'Accept' => 'application/json'}).and_return(response)
@@ -7,6 +7,10 @@ describe DPL::Provider::Heroku do
7
7
  described_class.new(DummyContext.new, :app => 'example', :key_name => 'key', :api_key => "foo", :strategy => "api")
8
8
  end
9
9
 
10
+ let(:expected_headers) do
11
+ { "User-Agent" => "dpl/#{DPL::VERSION} heroku-rb/#{Heroku::API::VERSION}" }
12
+ end
13
+
10
14
  describe "#ssh" do
11
15
  it "doesn't require an ssh key" do
12
16
  expect(provider.needs_key?).to eq(false)
@@ -16,14 +20,14 @@ describe DPL::Provider::Heroku do
16
20
  describe "#api" do
17
21
  it 'accepts an api key' do
18
22
  api = double(:api)
19
- expect(::Heroku::API).to receive(:new).with(:api_key => "foo").and_return(api)
23
+ expect(::Heroku::API).to receive(:new).with(:api_key => "foo", :headers => expected_headers).and_return(api)
20
24
  expect(provider.api).to eq(api)
21
25
  end
22
26
 
23
27
  it 'accepts a user and a password' do
24
28
  api = double(:api)
25
29
  provider.options.update(:user => "foo", :password => "bar")
26
- expect(::Heroku::API).to receive(:new).with(:user => "foo", :password => "bar").and_return(api)
30
+ expect(::Heroku::API).to receive(:new).with(:user => "foo", :password => "bar", :headers => expected_headers).and_return(api)
27
31
  expect(provider.api).to eq(api)
28
32
  end
29
33
  end
@@ -4,20 +4,24 @@ require 'dpl/provider/heroku'
4
4
 
5
5
  describe DPL::Provider::Heroku do
6
6
  subject :provider do
7
- described_class.new(DummyContext.new, :app => 'example', :key_name => 'key', :api_key => "foo", :strategy => "git")
7
+ described_class.new(DummyContext.new, :app => 'example', :key_name => 'key', :api_key => "foo", :strategy => "git-ssh")
8
+ end
9
+
10
+ let(:expected_headers) do
11
+ { "User-Agent" => "dpl/#{DPL::VERSION} heroku-rb/#{Heroku::API::VERSION}" }
8
12
  end
9
13
 
10
14
  describe "#api" do
11
15
  it 'accepts an api key' do
12
16
  api = double(:api)
13
- expect(::Heroku::API).to receive(:new).with(:api_key => "foo").and_return(api)
17
+ expect(::Heroku::API).to receive(:new).with(:api_key => "foo", :headers => expected_headers).and_return(api)
14
18
  expect(provider.api).to eq(api)
15
19
  end
16
20
 
17
21
  it 'accepts a user and a password' do
18
22
  api = double(:api)
19
23
  provider.options.update(:user => "foo", :password => "bar")
20
- expect(::Heroku::API).to receive(:new).with(:user => "foo", :password => "bar").and_return(api)
24
+ expect(::Heroku::API).to receive(:new).with(:user => "foo", :password => "bar", :headers => expected_headers).and_return(api)
21
25
  expect(provider.api).to eq(api)
22
26
  end
23
27
  end
@@ -47,7 +51,6 @@ describe DPL::Provider::Heroku do
47
51
  example do
48
52
  expect(provider).to receive(:log).at_least(1).times.with(/example/)
49
53
  provider.check_app
50
- expect(provider.options[:git]).to eq("GIT URL")
51
54
  end
52
55
  end
53
56
 
@@ -71,6 +74,7 @@ describe DPL::Provider::Heroku do
71
74
  provider.options[:git] = "git://something"
72
75
  expect(provider.context).to receive(:shell).with("git push git://something HEAD:refs/heads/master -f")
73
76
  provider.push_app
77
+ expect(provider.context.env['GIT_HTTP_USER_AGENT']).to include("dpl/#{DPL::VERSION}")
74
78
  end
75
79
  end
76
80
 
@@ -40,7 +40,7 @@ describe DPL::Provider::OpsWorks do
40
40
  before do
41
41
  expect(provider).to receive(:current_sha).and_return('sha')
42
42
  expect(provider.api).to receive(:client).and_return(client)
43
- expect(ENV).to receive(:[]).with('TRAVIS_BUILD_NUMBER').and_return('123')
43
+ expect(provider.context.env).to receive(:[]).with('TRAVIS_BUILD_NUMBER').and_return('123')
44
44
  end
45
45
 
46
46
  let(:custom_json) { "{\"deploy\":{\"app\":{\"migrate\":false,\"scm\":{\"revision\":\"sha\"}}}}" }
@@ -9,19 +9,19 @@ describe DPL::Provider::Releases do
9
9
 
10
10
  describe "#travis_tag" do
11
11
  example "When $TRAVIS_TAG is nil" do
12
- ENV['TRAVIS_TAG'] = nil
12
+ provider.context.env['TRAVIS_TAG'] = nil
13
13
 
14
14
  expect(provider.travis_tag).to eq(nil)
15
15
  end
16
16
 
17
17
  example "When $TRAVIS_TAG if set but empty" do
18
- ENV['TRAVIS_TAG'] = nil
18
+ provider.context.env['TRAVIS_TAG'] = nil
19
19
 
20
20
  expect(provider.travis_tag).to eq(nil)
21
21
  end
22
22
 
23
23
  example "When $TRAVIS_TAG if set" do
24
- ENV['TRAVIS_TAG'] = "foo"
24
+ provider.context.env['TRAVIS_TAG'] = "foo"
25
25
 
26
26
  expect(provider.travis_tag).to eq("foo")
27
27
  end
@@ -118,11 +118,11 @@ describe DPL::Provider do
118
118
  end
119
119
 
120
120
  describe "#setup_git_ssh" do
121
- after { FileUtils.rm ENV.delete('GIT_SSH') }
121
+ after { FileUtils.rm provider.context.env.delete('GIT_SSH') }
122
122
 
123
123
  example do
124
124
  provider.setup_git_ssh('foo', 'bar')
125
- expect(ENV['GIT_SSH']).to eq(File.expand_path('foo'))
125
+ expect(provider.context.env['GIT_SSH']).to eq(File.expand_path('foo'))
126
126
  end
127
127
  end
128
128
 
data/spec/spec_helper.rb CHANGED
@@ -17,4 +17,8 @@ class DummyContext
17
17
  def fold(message)
18
18
  yield
19
19
  end
20
+
21
+ def env
22
+ @env ||= {}
23
+ end
20
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.4.travis.600.1
4
+ version: 1.7.4.travis.619.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-12 00:00:00.000000000 Z
11
+ date: 2014-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -119,8 +119,10 @@ files:
119
119
  - lib/dpl/provider/heroku.rb
120
120
  - lib/dpl/provider/heroku/anvil.rb
121
121
  - lib/dpl/provider/heroku/api.rb
122
+ - lib/dpl/provider/heroku/generic.rb
122
123
  - lib/dpl/provider/heroku/git.rb
123
124
  - lib/dpl/provider/heroku/git_deploy_key.rb
125
+ - lib/dpl/provider/heroku/git_ssh.rb
124
126
  - lib/dpl/provider/modulus.rb
125
127
  - lib/dpl/provider/ninefold.rb
126
128
  - lib/dpl/provider/nodejitsu.rb