Class: Dpl::Providers::Heroku
- Inherits:
-
Dpl::Provider
- Object
- Cl::Cmd
- Dpl::Provider
- Dpl::Providers::Heroku
- Defined in:
- lib/dpl/providers/heroku.rb,
lib/dpl/providers/heroku/api.rb,
lib/dpl/providers/heroku/git.rb
Defined Under Namespace
Constant Summary collapse
- URL =
'https://api.heroku.com'
- HEADERS =
{ 'Accept': 'application/vnd.heroku+json; version=3', 'User-Agent': user_agent }.freeze
Constants inherited from Dpl::Provider
Dpl::Provider::FOLDS, Dpl::Provider::STAGES
Instance Attribute Summary collapse
-
#email ⇒ Object
readonly
Returns the value of attribute email.
Attributes inherited from Dpl::Provider
Instance Method Summary collapse
Methods inherited from Dpl::Provider
#before_finish, #before_init, #before_install, #before_prepare, #before_setup, #chmod, #cleanup, #cmd, #compact, #err, #error, #escape, examples, #expand, #file?, #finish?, #fold, #fold?, #info, #initialize, install_deps, install_deps?, #mkdir_p, move_files, #msg, #mv, #only, #open, #opt_for, #opt_key, #opts_for, #print, #quote, #read, #remove_dpl_dir, #rm_rf, #run, #run_cmds, #run_stage, #run_stage?, #script, #setup_dpl_dir, #setup_git_config, #setup_git_http_user_agent, #setup_git_ssh, #setup_ssh_key, #shell, #sq, #ssh_keygen, #symbolize, #try_ssh_access, #uncleanup, unmove_files, validate_runtimes, #wait_for_ssh_access, #warn
Methods included from Dpl::Provider::Dsl
#apt, #apt?, #cmds, #description, #env, #errs, #full_name, #gem, #gem?, #keep, #move, #msgs, #needs, #needs?, #node_js, #npm, #npm?, #opt, #path, #pip, #pip?, #python, #ruby_pre?, #ruby_version, #runtimes, #status, #strs, #summary, #user_agent, #vars
Methods included from Squiggle
Methods included from Assets
Methods included from Env
Methods included from ConfigFile
Methods included from Interpolate
#interpolate, #obfuscate, #vars
Methods included from Memoize
Constructor Details
This class inherits a constructor from Dpl::Provider
Instance Attribute Details
#email ⇒ Object (readonly)
Returns the value of attribute email.
35 36 37 |
# File 'lib/dpl/providers/heroku.rb', line 35 def email @email end |
Instance Method Details
#login ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/dpl/providers/heroku.rb', line 37 def login print :login res = http.get('/account') handle_error(res) unless res.success? @email = JSON.parse(res.body)['email'] info :success end |
#restart ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/dpl/providers/heroku.rb', line 52 def restart print :restart res = http.delete "/apps/#{app}/dynos" do |req| req.headers['Content-Type'] = 'application/json' end handle_error(res) unless res.success? info :success end |
#run_cmd(cmd) ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/dpl/providers/heroku.rb', line 61 def run_cmd(cmd) print :run_cmd, cmd res = http.post "/apps/#{app}/dynos" do |req| req.headers['Content-Type'] = 'application/json' req.body = { command: cmd, attach: true }.to_json end handle_error(res) unless res.success? rendezvous(JSON.parse(res.body)['attach_url']) end |
#validate ⇒ Object
45 46 47 48 49 50 |
# File 'lib/dpl/providers/heroku.rb', line 45 def validate print :validate res = http.get("/apps/#{app}") handle_error(res) unless res.success? info :success end |