Class: Ocak::Commands::Issue::Close

Inherits:
Dry::CLI::Command
  • Object
show all
Defined in:
lib/ocak/commands/issue/close.rb

Instance Method Summary collapse

Instance Method Details

#call(issue:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ocak/commands/issue/close.rb', line 14

def call(issue:, **)
  config = Config.load
  fetcher = LocalIssueFetcher.new(config: config)
  issue_number = issue.to_i

  data = fetcher.view(issue_number)
  unless data
    warn "Issue ##{issue} not found."
    exit 1
  end

  fetcher.remove_label(issue_number, config.label_ready)
  fetcher.remove_label(issue_number, config.label_in_progress)
  fetcher.add_label(issue_number, config.label_completed)

  puts "Closed issue ##{issue_number}: #{data['title']}"
rescue Config::ConfigNotFound => e
  warn "Error: #{e.message}"
  exit 1
end