neetodeploy 1.0.6 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38aaafe1332d72299302a1e8e23b51c9bb331247855747ff89447a78e096c3db
4
- data.tar.gz: de0682177ba35603b9a324557a7e3a1447595815895d01ce0b02790991e74236
3
+ metadata.gz: 4ea4f99fbeaf0fbd93641b5efb3d492d16417095156ead2075b38f9554aed01e
4
+ data.tar.gz: 0d209c71f40f53589929a71d741025fc44bafd4f4c2ad13bc80a5d4265e1d77b
5
5
  SHA512:
6
- metadata.gz: 61c4a3349bdcb2adea201d5df0111a4299532b4693280ad59466b827d0b6b6f4e96133671d65933de9ef9e1f06a04a63dcc89afca2dda50b0f41fd9db2aea4b6
7
- data.tar.gz: 76de2334e8b337aff37239e8e167e27e05d75a6a6112e3b15e6e9480229a9c1d22ccc1dd9b70c6124408578f336df1047b6a25909bacbb43c6cd51e29828896b
6
+ metadata.gz: 31defc5670116331de581587d1e235a08026f5b58833eca0bff8a0eb7d6750303cd9dc6571fd057e04191433b6d21bee3dc3db92d044f36722a015161e2e393c
7
+ data.tar.gz: 3bcdcda2d127a42aded214d4e8fac649762b6e26e599c09fb35d564615410185646bd1ded577bcd2104523ed040cd9d7f90c7f46d1d07efaded2c6a4a596a0d0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neetodeploy (1.0.6)
4
+ neetodeploy (1.0.7)
5
5
  dotenv (~> 2.8.1)
6
6
  httparty (~> 0.21.0)
7
7
  launchy (~> 2.5.0)
@@ -5,7 +5,7 @@ require_relative "../version"
5
5
 
6
6
  module NeetoDeploy
7
7
  class CLI
8
- NEETO_DEPLOY_HOST = ENV["NEETO_DEPLOY_HOST"] || "https://neeto-engineering.neetodeploy.net" # TODO make this org generic
8
+ NEETO_DEPLOY_HOST = ENV["NEETO_DEPLOY_HOST"] || "https://app.neetodeploy.net"
9
9
  NEETO_DEPLOY_CLI_API_BASE_URL = "#{NEETO_DEPLOY_HOST}/api/cli/#{CLI_API_VERSION}"
10
10
 
11
11
  CLI_CONFIG_DIR = "~/.config/neetodeploy".freeze
@@ -3,19 +3,38 @@ require "websocket-client-simple"
3
3
  require "thor"
4
4
  require "readline"
5
5
 
6
+ require_relative "../session"
7
+ require_relative "./constants"
8
+
6
9
  module NeetoDeploy
7
10
  class CLI
8
11
  module Exec
9
12
  class Base < CLI::Base
13
+ include Constants
14
+ include Session
15
+
10
16
  attr_reader :app_name
17
+
11
18
  def initialize(app_name)
19
+ super()
12
20
  @app_name = app_name
13
21
  end
14
22
 
15
23
  def process!
16
24
  puts "Opening console for #{app_name}"
17
25
 
18
- ws = WebSocket::Client::Simple.connect "wss://neeto-deploy-lc.neetoreviewapp.net/cli_console?deployment_name=#{app_name}-web-deployment"
26
+ response = send_post_request(
27
+ console_session_create_url, {
28
+ # TODO refactor app_slug to app_name in dashboard app
29
+ app_slug: app_name,
30
+ }
31
+ )
32
+
33
+ ui.error(response) and return unless response.success?
34
+
35
+ console_token = response.parsed_response["console_token"]
36
+
37
+ ws = WebSocket::Client::Simple.connect "wss://neeto-deploy-lc.neetoreviewapp.net/cli_console?deployment_name=#{app_name}&console_token=#{console_token}"
19
38
 
20
39
  prompt = ''
21
40
 
@@ -46,6 +65,10 @@ module NeetoDeploy
46
65
  exit 1
47
66
  end
48
67
 
68
+ trap("SIGINT") do
69
+ Thread.new { ws.send "4" }
70
+ end
71
+
49
72
  loop do
50
73
  sleep 0.1
51
74
  input = Readline.readline(prompt, true)
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NeetoDeploy
4
+ class CLI
5
+ module Exec
6
+ module Constants
7
+ NEETO_DEPLOY_CLI_API_CONSOLE_SESSION_CREATE_URL = "#{NEETO_DEPLOY_CLI_API_BASE_URL}/console_sessions".freeze
8
+
9
+ def console_session_create_url
10
+ NEETO_DEPLOY_CLI_API_CONSOLE_SESSION_CREATE_URL
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -12,10 +12,11 @@ module NeetoDeploy
12
12
  class Base < CLI::Base
13
13
  include Constants
14
14
 
15
- attr_accessor :login_token
15
+ attr_accessor :login_token, :org_subdomain
16
16
 
17
17
  def process!
18
18
  init_session
19
+ ask_for_org_subdomain
19
20
  show_login_link_and_open_in_browser
20
21
  wait_until_user_authenticates!
21
22
  end
@@ -27,14 +28,27 @@ module NeetoDeploy
27
28
  self.login_token = response["login_token"]
28
29
  end
29
30
 
31
+ def ask_for_org_subdomain
32
+ ui.say(
33
+ <<~EOF
34
+ Welcome to neetoDeploy CLI. To get started, we need your organization's subdomain.
35
+
36
+ If your organization URL is "myorg.neetodeploy.com", your organization subdomain is "myorg".
37
+ More information: https://help.neetodeploy.com/articles/neetodeploy-cli
38
+
39
+ EOF
40
+ )
41
+ self.org_subdomain = ui.ask("Please enter the subdomain of your organization:")
42
+ end
43
+
30
44
  def show_login_link_and_open_in_browser
31
45
  ui.say(
32
46
  <<~EOF
33
- A webpage will be opened in a browser. If it didn't, please open this URL in browser:
34
- #{session_login_url}
47
+ The login page will be opened in your browser. If it didn't, please open this URL in your browser:
48
+ #{session_login_url(org_subdomain)}
35
49
  EOF
36
50
  )
37
- Launchy.open(session_login_url)
51
+ Launchy.open(session_login_url(org_subdomain))
38
52
  end
39
53
 
40
54
  def wait_until_user_authenticates!
@@ -11,8 +11,9 @@ module NeetoDeploy
11
11
  NEETO_DEPLOY_CLI_API_SESSIONS_URL
12
12
  end
13
13
 
14
- def session_login_url
15
- "#{NEETO_DEPLOY_CLI_API_BASE_URL}/sessions/#{login_token}/authenticate"
14
+ def session_login_url(org_subdomain)
15
+ org_url = NEETO_DEPLOY_HOST.sub("app.", "#{org_subdomain}.")
16
+ "#{org_url}/cli/login?token=#{login_token}"
16
17
  end
17
18
 
18
19
  def session_login_status_url
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NeetoDeploy
4
- VERSION = "1.0.6"
4
+ VERSION = "1.0.8"
5
5
  CLI_API_VERSION = "v1"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neetodeploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Subin Siby
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-15 00:00:00.000000000 Z
11
+ date: 2023-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -115,6 +115,7 @@ files:
115
115
  - lib/neeto_deploy/cli/config/set.rb
116
116
  - lib/neeto_deploy/cli/config/unset.rb
117
117
  - lib/neeto_deploy/cli/exec/base.rb
118
+ - lib/neeto_deploy/cli/exec/constants.rb
118
119
  - lib/neeto_deploy/cli/login/base.rb
119
120
  - lib/neeto_deploy/cli/login/constants.rb
120
121
  - lib/neeto_deploy/cli/logs/base.rb