github_heroku_deployer 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: 2e112b6159eb9fd1c9249c5757b688ab330ddec9
4
+ data.tar.gz: 0d92b301adf5d354f0a694a0ea56ded4c1dbbe12
5
+ SHA512:
6
+ metadata.gz: fd7dca8afa4d96332cf5073fcef7fc58def6afb68d0159e183977d2787a569926965dce04d0563b50e4bb0923cedb5db37c952023fe445b13753e3023c186fe4
7
+ data.tar.gz: 3cafa0b7b9f22c9612fcfb47cc08bdd03614b26d2b070d0782936dd1d6ca73c5adec9f2134abb2d80fedead7ef2484b54a2be2e14db72b45c2fc86e82a745127
@@ -1,4 +1,10 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.9.3"
4
- script: bundle exec rspec spec
3
+ - 1.9.3
4
+ script: bundle exec rspec
5
+ notifications:
6
+ campfire:
7
+ rooms:
8
+ secure: UwsCEilVpBakyB+/A84lOS0Gp7KsNEZOGOXdWuS4M0L2BtmHYEYzO5DM3KrQuBmeCPoBQKfZRGGmAAXoHIinD+ziRczfknzL8lesAFcEVLs9ZMwtTdkk3FyCyOWcNu+Q6Iw5s9bz8Jpuz9u2iIC1knyAePhWSH76zg9R0DZrYmI=
9
+ on_success: change
10
+ on_failure: always
@@ -4,7 +4,7 @@ require File.expand_path('../lib/github_heroku_deployer/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.name = "github_heroku_deployer"
6
6
  gem.version = GithubHerokuDeployer::VERSION
7
- gem.authors = ["Jessica Lynn Suttles"]
7
+ gem.authors = ["Jessica Lynn Suttles", "Michael Mitchell"]
8
8
  gem.email = ["jlsuttles@gmail.com"]
9
9
  gem.description = %q{Deploys Github repos to Heroku}
10
10
  gem.summary = %q{Deploys public and private Github repos to Heroku}
@@ -16,6 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ["lib"]
17
17
 
18
18
  gem.add_dependency "heroku-api", "~> 0.3.5"
19
+ gem.add_dependency "platform-api", "~> 0.2"
19
20
  gem.add_dependency "git", "~> 1.2.5"
20
21
  gem.add_dependency "git-ssh-wrapper", "~> 0.1.0"
21
22
 
@@ -23,5 +24,4 @@ Gem::Specification.new do |gem|
23
24
  gem.add_development_dependency "rspec", "~> 2.11.0"
24
25
  gem.add_development_dependency "guard-rspec", "~> 2.1.0"
25
26
  gem.add_development_dependency "rb-fsevent", "~> 0.9.2"
26
- gem.add_development_dependency "debugger", "~> 1.2.1"
27
27
  end
@@ -1,4 +1,5 @@
1
1
  require "heroku-api"
2
+ require "platform-api"
2
3
 
3
4
  module GithubHerokuDeployer
4
5
  class Heroku
@@ -6,12 +7,14 @@ module GithubHerokuDeployer
6
7
  def initialize(options)
7
8
  @heroku_api_key = options[:heroku_api_key]
8
9
  @heroku_app_name = options[:heroku_app_name]
10
+ @heroku_organization_name = options[:heroku_organization_name]
9
11
  end
10
12
 
11
13
  def heroku
12
14
  @heroku ||= ::Heroku::API.new(api_key: @heroku_api_key)
13
15
  end
14
16
 
17
+
15
18
  def app
16
19
  @app ||= find_or_create_app
17
20
  end
@@ -27,7 +30,7 @@ module GithubHerokuDeployer
27
30
  end
28
31
 
29
32
  def create_app
30
- heroku.post_app(name: @heroku_app_name)
33
+ heroku_platform_api.organization_app.create(platform_api_options)
31
34
  end
32
35
 
33
36
  def restart_app
@@ -61,5 +64,17 @@ module GithubHerokuDeployer
61
64
  # def add_deployhooks_http(url)
62
65
  # add_addon("deployhooks:http", url: url)
63
66
  # end
67
+
68
+ private
69
+
70
+ def platform_api_options
71
+ { name: @heroku_app_name,
72
+ organization: @heroku_organization_name }
73
+ end
74
+
75
+ def heroku_platform_api
76
+ @heroku_platform_api ||= ::PlatformAPI.connect_oauth(@heroku_api_key)
77
+ end
64
78
  end
65
79
  end
80
+
@@ -1,3 +1,3 @@
1
1
  module GithubHerokuDeployer
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,15 +1,29 @@
1
1
  require 'spec_helper'
2
2
  require 'github_heroku_deployer/heroku'
3
+ require 'platform-api'
3
4
 
4
5
  describe GithubHerokuDeployer::Heroku do
5
6
  context "#find_or_create" do
7
+ before do
8
+ PlatformAPI.stub(:connect_oauth)
9
+ end
10
+
6
11
  it "creates app if it does not find it" do
7
12
  heroku = GithubHerokuDeployer::Heroku.new(
13
+ heroku_organization_name: "test-org",
8
14
  heroku_api_key: "asdfghjkl",
9
15
  heroku_app_name: "asdfghjkl")
10
- heroku.stub("find_app").and_raise(::Heroku::API::Errors::NotFound.new("", ""))
11
- heroku.stub("create_app").and_return true
12
- heroku.find_or_create_app.should be true
16
+ response = mock(body: 'error')
17
+ heroku.stub("find_app").and_raise(::Heroku::API::Errors::NotFound.new('',response))
18
+
19
+ organization_app = double(:organization_app, create: "created")
20
+ platform_api = double(:mock, :organization_app => organization_app)
21
+ PlatformAPI.stub(:connect_oauth).and_return(platform_api)
22
+
23
+ organization_app.should_receive(:create).with(hash_including(organization: "test-org"))
24
+
25
+ heroku.find_or_create_app
13
26
  end
14
27
  end
15
28
  end
29
+
@@ -104,6 +104,18 @@ describe GithubHerokuDeployer do
104
104
  override.should_not equal GithubHerokuDeployer.configuration[:github_repo]
105
105
  @deployer.deploy(github_repo: override).should be true
106
106
  end
107
+
108
+ context "passing an organization" do
109
+ before do
110
+ GithubHerokuDeployer::Heroku.any_instance.stub(:new)
111
+ GithubHerokuDeployer::Git.any_instance.stub(:push_app_to_heroku)
112
+ end
113
+ it "accepts organization option" do
114
+ GithubHerokuDeployer.should_receive(:heroku_find_or_create_app).with(hash_including(organization: "test-org"))
115
+ GithubHerokuDeployer.deploy({organization: "test-org"})
116
+ end
117
+ end
107
118
  end
108
119
  end
109
120
  end
121
+
@@ -5,7 +5,17 @@ require 'rubygems'
5
5
  require 'rspec'
6
6
  require 'rspec/autorun'
7
7
 
8
-
9
8
  RSpec.configure do |config|
10
9
  config.order = "random"
11
10
  end
11
+
12
+ ENV['GITHUB_REPO']="git@github.com:G5/static-sinatra-prototype.git"
13
+ ENV['HEROKU_API_KEY']="heroku_api_key"
14
+ ENV['HEROKU_APP_NAME']="static-sinatra-prototype"
15
+ ENV['HEROKU_REPO']="git@heroku.com:static-sinatra-prototype.git"
16
+ ENV['HEROKU_USERNAME']="heroku_username"
17
+ ENV['ID_RSA']="id_rsa"
18
+ ENV['PRIVATE_GITHUB_REPO']="git@github.com:g5search/g5-client-location.git"
19
+ ENV['PUBLIC_GITHUB_REPO']="git@github.com:G5/static-sinatra-prototype.git"
20
+ ENV['REPO_DIR']="foo"
21
+
metadata CHANGED
@@ -1,20 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github_heroku_deployer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jessica Lynn Suttles
8
+ - Michael Mitchell
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-06 00:00:00.000000000 Z
12
+ date: 2014-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: heroku-api
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
18
  - - ~>
20
19
  - !ruby/object:Gem::Version
@@ -22,15 +21,27 @@ dependencies:
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ~>
28
26
  - !ruby/object:Gem::Version
29
27
  version: 0.3.5
28
+ - !ruby/object:Gem::Dependency
29
+ name: platform-api
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: '0.2'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: '0.2'
30
42
  - !ruby/object:Gem::Dependency
31
43
  name: git
32
44
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
45
  requirements:
35
46
  - - ~>
36
47
  - !ruby/object:Gem::Version
@@ -38,7 +49,6 @@ dependencies:
38
49
  type: :runtime
39
50
  prerelease: false
40
51
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
52
  requirements:
43
53
  - - ~>
44
54
  - !ruby/object:Gem::Version
@@ -46,7 +56,6 @@ dependencies:
46
56
  - !ruby/object:Gem::Dependency
47
57
  name: git-ssh-wrapper
48
58
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
59
  requirements:
51
60
  - - ~>
52
61
  - !ruby/object:Gem::Version
@@ -54,7 +63,6 @@ dependencies:
54
63
  type: :runtime
55
64
  prerelease: false
56
65
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
66
  requirements:
59
67
  - - ~>
60
68
  - !ruby/object:Gem::Version
@@ -62,7 +70,6 @@ dependencies:
62
70
  - !ruby/object:Gem::Dependency
63
71
  name: simplecov
64
72
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
73
  requirements:
67
74
  - - ~>
68
75
  - !ruby/object:Gem::Version
@@ -70,7 +77,6 @@ dependencies:
70
77
  type: :development
71
78
  prerelease: false
72
79
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
80
  requirements:
75
81
  - - ~>
76
82
  - !ruby/object:Gem::Version
@@ -78,7 +84,6 @@ dependencies:
78
84
  - !ruby/object:Gem::Dependency
79
85
  name: rspec
80
86
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
87
  requirements:
83
88
  - - ~>
84
89
  - !ruby/object:Gem::Version
@@ -86,7 +91,6 @@ dependencies:
86
91
  type: :development
87
92
  prerelease: false
88
93
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
94
  requirements:
91
95
  - - ~>
92
96
  - !ruby/object:Gem::Version
@@ -94,7 +98,6 @@ dependencies:
94
98
  - !ruby/object:Gem::Dependency
95
99
  name: guard-rspec
96
100
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
101
  requirements:
99
102
  - - ~>
100
103
  - !ruby/object:Gem::Version
@@ -102,7 +105,6 @@ dependencies:
102
105
  type: :development
103
106
  prerelease: false
104
107
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
108
  requirements:
107
109
  - - ~>
108
110
  - !ruby/object:Gem::Version
@@ -110,7 +112,6 @@ dependencies:
110
112
  - !ruby/object:Gem::Dependency
111
113
  name: rb-fsevent
112
114
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
115
  requirements:
115
116
  - - ~>
116
117
  - !ruby/object:Gem::Version
@@ -118,27 +119,10 @@ dependencies:
118
119
  type: :development
119
120
  prerelease: false
120
121
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
122
  requirements:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
125
  version: 0.9.2
126
- - !ruby/object:Gem::Dependency
127
- name: debugger
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- version: 1.2.1
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: 1.2.1
142
126
  description: Deploys Github repos to Heroku
143
127
  email:
144
128
  - jlsuttles@gmail.com
@@ -167,27 +151,26 @@ files:
167
151
  - spec/spec_helper.rb
168
152
  homepage: https://github.com/G5/github_heroku_deployer
169
153
  licenses: []
154
+ metadata: {}
170
155
  post_install_message:
171
156
  rdoc_options: []
172
157
  require_paths:
173
158
  - lib
174
159
  required_ruby_version: !ruby/object:Gem::Requirement
175
- none: false
176
160
  requirements:
177
161
  - - ! '>='
178
162
  - !ruby/object:Gem::Version
179
163
  version: '0'
180
164
  required_rubygems_version: !ruby/object:Gem::Requirement
181
- none: false
182
165
  requirements:
183
166
  - - ! '>='
184
167
  - !ruby/object:Gem::Version
185
168
  version: '0'
186
169
  requirements: []
187
170
  rubyforge_project:
188
- rubygems_version: 1.8.24
171
+ rubygems_version: 2.4.1
189
172
  signing_key:
190
- specification_version: 3
173
+ specification_version: 4
191
174
  summary: Deploys public and private Github repos to Heroku
192
175
  test_files:
193
176
  - spec/lib/github_heroku_deployer/configuration_spec.rb