Class: GitStoryid::JiraConfiguration

Inherits:
Configuration show all
Defined in:
lib/git_storyid.rb

Constant Summary

Constants inherited from Configuration

Configuration::FILENAME

Instance Method Summary collapse

Methods inherited from Configuration

#all_stories, build, engine, ensure_full_config, find_project_config, load_config, load_config_from, output, project_config_path, read_configuration_value, #reset

Constructor Details

#initialize(config) ⇒ JiraConfiguration

Returns a new instance of JiraConfiguration.



284
285
286
# File 'lib/git_storyid.rb', line 284

def initialize(config)
  super(config)
end

Instance Method Details

#clientObject



299
300
301
# File 'lib/git_storyid.rb', line 299

def client
  @client
end

#fetch_all_storiesObject



307
308
309
# File 'lib/git_storyid.rb', line 307

def fetch_all_stories
  client.Issue.jql("assignee=#{username} and status not in (done) and project = #{@config[:project_id]}")
end

#find_story_by_id(key) ⇒ Object



311
312
313
314
315
316
317
318
319
320
321
322
# File 'lib/git_storyid.rb', line 311

def find_story_by_id(key)
  if key.to_i.to_s == key.to_s # no project_id in key
    key = [@config[:project_id], key].join("-")
  end
  serialize_issue(client.Issue.find(key))
rescue JIRA::HTTPError => e
  if e.code.to_i == 404
    nil
  else
    raise e
  end
end

#serialize_issue(issue) ⇒ Object



324
325
326
# File 'lib/git_storyid.rb', line 324

def serialize_issue(issue)
  SerializedIssue.new(issue.key, issue.issuetype.name, issue.summary)
end

#setup_api_clientObject



288
289
290
291
292
293
294
295
296
297
# File 'lib/git_storyid.rb', line 288

def setup_api_client
  require 'jira-ruby'
  @client ||= JIRA::Client.new(
    :username     => username,
    :password     => @config[:password],
    :site         => @config[:site],
    :context_path => '',
    :auth_type    => :basic,
  )
end

#usernameObject



303
304
305
# File 'lib/git_storyid.rb', line 303

def username
  @username ||= @config[:username]
end