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.
- checksums.yaml +7 -0
- data/.travis.yml +8 -2
- data/github_heroku_deployer.gemspec +2 -2
- data/lib/github_heroku_deployer/heroku.rb +16 -1
- data/lib/github_heroku_deployer/version.rb +1 -1
- data/spec/lib/github_heroku_deployer/heroku_spec.rb +17 -3
- data/spec/lib/github_heroku_deployer_spec.rb +12 -0
- data/spec/spec_helper.rb +11 -1
- metadata +20 -37
checksums.yaml
ADDED
@@ -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
|
data/.travis.yml
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
-
|
4
|
-
script: bundle exec rspec
|
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
|
-
|
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,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
|
-
|
11
|
-
heroku.stub("
|
12
|
-
|
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
|
+
|
data/spec/spec_helper.rb
CHANGED
@@ -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.
|
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:
|
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:
|
171
|
+
rubygems_version: 2.4.1
|
189
172
|
signing_key:
|
190
|
-
specification_version:
|
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
|