Sha256: 9ba8cdf091bd72fbe9787002a6ddcb04b055e264ed05a78c11684f973a951d21

Contents?: true

Size: 573 Bytes

Versions: 7

Compression:

Stored size: 573 Bytes

Contents

# frozen_string_literal: true

module Dude
  module Commands
    class Checkout < Dry::CLI::Command
      desc 'Checkout to branch named as current issue'

      argument :id, required: true, desc: 'The card short ID'

      def call(id:)
        client = ProjectManagement::Client.new
        issue_title = client.get_task_name_by_id(id)
        Dude::Git::Checkout.new.call(branch_name(issue_title, id))
      end

      private

      def branch_name(issue_title, id)
        issue_title.downcase.gsub(/[^a-z0-9\-_]+/, '-').prepend("#{id}-")
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dude-cli-2.1.0 lib/dude/commands/checkout.rb
dude-cli-2.1.0.alpha5 lib/dude/commands/checkout.rb
dude-cli-2.1.0.alpha4 lib/dude/commands/checkout.rb
dude-cli-2.1.0.alpha3 lib/dude/commands/checkout.rb
dude-cli-2.1.0.alpha2 lib/dude/commands/checkout.rb
dude-cli-2.1.0.alpha1 lib/dude/commands/checkout.rb
dude-cli-2.0.7 lib/dude/commands/checkout.rb