heroku_tool 0.9.0 → 0.9.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54667e338f64d0555965c42828d5e5363bded258cb60e55af76e5a2339bb9c03
4
- data.tar.gz: c1d86d98c1ade53354d5e7f1d54d3bac19d6749e57bdd24cd17400d2172cd6d4
3
+ metadata.gz: 4b5e399a4542b07992fbc0e896bf8b1f6fca73cb3abf66647c0c741e013ee910
4
+ data.tar.gz: b06141618a185a433edbb74786d6ea572a0079220bf22f4f6724b87a86e8ac30
5
5
  SHA512:
6
- metadata.gz: bfcd540d5d6072385d293792819d519a5bf717a7eeca4bde76eac45975e9e967ef2fca9a85b38c173d7a5088f5e76d0e9e76c39dd6adff810f869ea6a60167e8
7
- data.tar.gz: 15dde81dbe811594f2abdc88ed79b9d60c5b5e76b0c920b1ecf97de93c92d493a72776b0f3e2e9b3f456ec5f2d25eb5bc232edb4ec29b19ac845407d19853d21
6
+ metadata.gz: 54d7a075669af48e1a62a59cf077ce577114e565487b1997f0bad47edb2f26c74250a82ea9b501f058ef66ec4ec4157086ba3c96aaed66f163b24c70aa2b7096
7
+ data.tar.gz: ea5187d7722b88eb0cf01065ae624f65effa27457257a3e6081b22294dbc3e893a0d3d74c0cff36cbd7a38c01c51a1b68db057688c9a1fc27789fab6c8dde047
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.9.1
4
+
5
+ support url in heroku targets
6
+
3
7
  ## v0.9.0
4
8
 
5
9
  - BREAKING CHANGE: Heroku::Configuration has been renamed to HerokuTool::Configuration and is now must be an instance not a class method
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "open3"
4
+
3
5
  module HerokuTool
4
6
  class Commander
5
7
  # @return [HerokuTool::HerokuTargets::HerokuTarget]
@@ -65,10 +67,10 @@ module HerokuTool
65
67
  end
66
68
 
67
69
  # @return [Boolean] true if the command was successful
68
- def puts_and_system(cmd)
69
- puts cmd
70
+ def puts_and_system(cmd, *args)
71
+ puts([cmd, *args].join(" "))
70
72
  puts "-------------"
71
- system_with_clean_env(cmd).tap do |result|
73
+ system_with_clean_env(cmd, *args).tap do |result|
72
74
  if result
73
75
  puts "-------------"
74
76
  else
@@ -77,30 +79,31 @@ module HerokuTool
77
79
  end
78
80
  end
79
81
 
80
- def puts_and_exec(cmd)
81
- puts cmd
82
- exec_with_clean_env(cmd)
82
+ def puts_and_exec(cmd, *args)
83
+ puts([cmd, *args].join(" "))
84
+ exec_with_clean_env(cmd, *args)
83
85
  end
84
86
 
85
- def exec_with_clean_env(cmd)
86
- if defined?(Bundler) && Bundler.respond_to?(:with_unbundled_env)
87
- Bundler.with_unbundled_env { `#{cmd}` }
87
+ def exec_with_clean_env(cmd, *args)
88
+ output, _status = if defined?(Bundler) && Bundler.respond_to?(:with_unbundled_env)
89
+ Bundler.with_unbundled_env { Open3.capture2(cmd, *args) }
88
90
  elsif defined?(Bundler)
89
- Bundler.with_clean_env { `#{cmd}` }
91
+ Bundler.with_clean_env { Open3.capture2(cmd, *args) }
90
92
  else
91
- `#{cmd}`
93
+ Open3.capture2(cmd, *args)
92
94
  end
95
+ output
93
96
  end
94
97
 
95
98
  protected
96
99
 
97
- def system_with_clean_env(cmd)
100
+ def system_with_clean_env(cmd, *args)
98
101
  if defined?(Bundler) && Bundler.respond_to?(:with_unbundled_env)
99
- Bundler.with_unbundled_env { system cmd }
102
+ Bundler.with_unbundled_env { system(cmd, *args) }
100
103
  elsif defined?(Bundler)
101
- Bundler.with_clean_env { system cmd }
104
+ Bundler.with_clean_env { system(cmd, *args) }
102
105
  else
103
- system cmd
106
+ system(cmd, *args)
104
107
  end
105
108
  end
106
109
  end
@@ -103,6 +103,10 @@ module HerokuTool
103
103
  @values[:migrate_in_release_phase]
104
104
  end
105
105
 
106
+ def url
107
+ @values[:url]
108
+ end
109
+
106
110
  def to_s
107
111
  display_name
108
112
  end
@@ -194,24 +194,35 @@ class Heroku < Thor
194
194
  end
195
195
 
196
196
  def notify_bugsnag_of_deploy_tracking(deploy_ref:, revision:)
197
- api_key = ENV["BUGSNAG_API_KEY"]
198
- data = %W[
199
- apiKey=#{api_key}
200
- releaseStage=#{target.trackable_release_stage}
201
- repository=#{target.repository}
202
- revision=#{revision}
203
- appVersion=#{deploy_ref_describe(deploy_ref)}
204
- ].join("&")
205
- if api_key.blank?
197
+ api_key = ENV["BUGSNAG_API_KEY"].presence || "API_KEY"
198
+
199
+ app_version = deploy_ref_describe(deploy_ref)
200
+ json_data = {
201
+ apiKey: api_key,
202
+ appVersion: app_version,
203
+ sourceControl: {
204
+ repository: target.repository,
205
+ revision: revision
206
+ },
207
+ releaseStage: target.trackable_release_stage
208
+ }
209
+
210
+ args = [
211
+ "-H", "Content-Type: application/json",
212
+ "-H", "apiKey: #{api_key}",
213
+ "-H", "appVersion: #{app_version}",
214
+ "-d", json_data.to_json,
215
+ "https://build.bugsnag.com"
216
+ ]
217
+ if api_key == "API_KEY"
206
218
  puts "\n" + ("*" * 80) + "\n"
207
- command = "curl -d #{data} http://notify.bugsnag.com/deploy"
208
- puts command
219
+ puts("curl #{args.join(" ")}")
209
220
  puts "\n" + ("*" * 80) + "\n"
210
221
  puts "NB: can't notify unless you specify BUGSNAG_API_KEY and rerun"
211
222
  puts " thor heroku:deploy_tracking #{target.name} #{deploy_ref}"
212
- else
213
- puts_and_system "curl -d \"#{data}\" http://notify.bugsnag.com/deploy"
223
+ return
214
224
  end
225
+ puts_and_system("curl", *args)
215
226
  end
216
227
  end
217
228
 
@@ -1,3 +1,3 @@
1
1
  module HerokuTool
2
- VERSION = "0.9.0"
2
+ VERSION = "0.9.2"
3
3
  end
@@ -0,0 +1,4 @@
1
+ $VERSION Release Notes
2
+
3
+ *Changes since $PREVIOUS*
4
+
@@ -0,0 +1,5 @@
1
+ v0.9.2 Release Notes
2
+
3
+ *Changes since v0.9.1*
4
+
5
+ - update and fix bugsnag deploy tracking (#17)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku_tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Diggins
@@ -150,6 +150,8 @@ files:
150
150
  - lib/heroku_tool/tasks/db_drop_all_tables.rake
151
151
  - lib/heroku_tool/tasks/heroku.thor
152
152
  - lib/heroku_tool/version.rb
153
+ - release_notes/__TEMPLATE__.md
154
+ - release_notes/v0.9.2.md
153
155
  - templates/Rakefile
154
156
  - templates/heroku.thor
155
157
  - templates/heroku_targets.yml
@@ -171,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
173
  - !ruby/object:Gem::Version
172
174
  version: '0'
173
175
  requirements: []
174
- rubygems_version: 3.6.9
176
+ rubygems_version: 4.0.11
175
177
  specification_version: 4
176
178
  summary: Tool for configurable one-shot deployment and db managment with heroku and
177
179
  rails