github_heroku_deployer 0.2.1 → 0.3.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.
@@ -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