Class: SchwarmCli::Commands::Configure

Inherits:
Base
  • Object
show all
Defined in:
lib/schwarm_cli/commands/configure.rb

Instance Method Summary collapse

Instance Method Details

#setupObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/schwarm_cli/commands/configure.rb', line 11

def setup
  url = Gum.input(header: "Schwarm Server URL", value: "https://schwarm.getdexter.net")
  abort "Cancelled." unless url

  api_key = Gum.input(header: "API Key", password: true, placeholder: "sk-schwarm-...")
  abort "Cancelled." unless api_key

  config = SchwarmCli::Config.new(url:, api_key:)
  client = SchwarmCli::Client.new(url:, api_key:)
  Gum.spin("Testing connection...") { client.repositories.list(per_page: 1) }

  config.save
  puts "Configuration saved to #{config.config_path}"
rescue Faraday::UnauthorizedError
  abort "Error: Invalid API key."
rescue Faraday::Error => e
  abort "Error: Could not connect to server (#{e.message})."
end