class BacklogBulk::CLI

Public Instance Methods

close() click to toggle source
# File lib/backlog_bulk/cli.rb, line 87
def close
  conf = BacklogBulk::Config.new(options)
  @client = BacklogJp::Client.new(space: conf.space, api_key: conf.api_key)
  $stderr.puts @client.inspect if conf.debug
  ss = get_statuses(@client)

  open(conf.issuekeys, 'r').each_line do |issuekey|
    issuekey.chomp!
    begin
      result = @client.patch "issues/#{issuekey}", statusId: ss['完了']
      puts "#{issuekey}\t#{result[:status][:name]}"
    rescue BacklogJp::Client::APIException => e
      $stderr.puts "show issue failed: issuekey => #{issuekey} #{e}"
    end
  end
end
comment() click to toggle source
# File lib/backlog_bulk/cli.rb, line 50
def comment
  conf = BacklogBulk::Config.new(options)
  @client = BacklogJp::Client.new(space: conf.space, api_key: conf.api_key)
  $stderr.puts @client.inspect if conf.debug

  open(conf.issuekeys, 'r').each_line do |issuekey|
    issuekey.chomp!

    begin
      @client.post "issues/#{issuekey}/comments", content: conf[conf.content]
      puts "post new comment\tsuccess\t#{issuekey}\t"
    rescue BacklogJp::Client::APIException => e
      $stderr.puts "post new comment failed: project_key => #{project_key} #{e}"
    end
  end
end
issue() click to toggle source
# File lib/backlog_bulk/cli.rb, line 14
def issue
  conf = BacklogBulk::Config.new(options)
  @client = BacklogJp::Client.new(space: conf.space, api_key: conf.api_key)
  $stderr.puts @client.inspect if conf.debug
  priority_id = get_priority_id(@client)
  unless priority_id
    $stderr.puts "initialize failed: priority_id => nil"
    exit 1
  end

  open(conf.projects, 'r').each_line do |project_key|
    project_key.chomp!
    project_id, issue_type_id = init_project(@client, project_key)
    unless project_id && issue_type_id
      $stderr.puts "initialize failed: project_key =>#{project_key}, projec_id => #{project_id.inspect}, issue_type => #{issue_type_id.inspect}"
      exit 1
    end

    begin
      result = @client.post 'issues',
        'projectId': project_id,
        'issueTypeId': issue_type_id,
        'summary': conf.summary,
        'startDate': conf.startDate,
        'priorityId': priority_id,
        'description': conf.description
      puts "post new issue success: project_key => #{project_key} issueKey => #{result[:issueKey]}"
    rescue BacklogJp::Client::APIException => e
      $stderr.puts "post new issue failed: project_key => #{project_key} #{e}"
    end
  end
end
showissue() click to toggle source
# File lib/backlog_bulk/cli.rb, line 69
def showissue
  conf = BacklogBulk::Config.new(options)
  @client = BacklogJp::Client.new(space: conf.space, api_key: conf.api_key)
  $stderr.puts @client.inspect if conf.debug

  open(conf.issuekeys, 'r').each_line do |issuekey|
    issuekey.chomp!
    begin
      result = @client.get "issues/#{issuekey}"
      puts "#{issuekey}\t#{result[:summary]}"
    rescue BacklogJp::Client::APIException => e
      $stderr.puts "show issue failed: issuekey => #{issuekey} #{e}"
    end
  end
end

Private Instance Methods

get_last_issue_type_id(client, project_key) click to toggle source
# File lib/backlog_bulk/cli.rb, line 140
def get_last_issue_type_id(client, project_key)
  begin
    issue_types = client.get "projects/#{project_key}/issueTypes"
    issue_type = issue_types.max_by {|ts| ts[:displayOrder]}
    return issue_type[:id]
  rescue BacklogJp::Client::APIException => e
    $stderr.puts "get issueTypes failed: project_key => #{project_key} #{e}"
  end
end
get_priority_id(client) click to toggle source
# File lib/backlog_bulk/cli.rb, line 130
def get_priority_id(client)
  begin
    priorities = client.get 'priorities'
    priority = priorities.find {|pri| pri[:name] == '中'}
    return priority[:id]
  rescue BacklogJp::Client::APIException => e
    $stderr.puts "get priorities failed: #{e}"
  end
end
get_project_id(client, project_key) click to toggle source
# File lib/backlog_bulk/cli.rb, line 120
def get_project_id(client, project_key)
  p project_key
  begin
    project = client.get "projects/#{project_key}"
    return project[:id]
  rescue BacklogJp::Client::APIException => e
    $stderr.puts "get projects failed: project_key => #{project_key} #{e}"
  end
end
get_statuses(client) click to toggle source
# File lib/backlog_bulk/cli.rb, line 105
def get_statuses(client)
  begin
    r = client.get 'statuses'
    ss = {}
    r.each {|s| ss[s[:name]] = s[:id]}
    return ss
  rescue BacklogJp::Client::APIException => e
    $stderr.puts "get statuses failed: #{e}"
  end
end
init_project(client, project_key) click to toggle source
# File lib/backlog_bulk/cli.rb, line 116
def init_project(client, project_key)
  [get_project_id(client, project_key), get_last_issue_type_id(client, project_key)]
end