class Durt::JiraBugTracker

Attributes

client[RW]

Public Instance Methods

after_initialize() click to toggle source
# File lib/durt/jira_bug_tracker.rb, line 10
def after_initialize
  @client = JIRA::Client.new(@config)
end
fetch_issues() click to toggle source
# File lib/durt/jira_bug_tracker.rb, line 14
def fetch_issues
  fetched_issues = @client.Issue.jql(fetch_issues_query)

  fetched_issues.map do |issue|
    {
      key: issue.key,
      summary: issue.summary,
      source: source_name,
      project: project
    }
  end
end
fetch_statuses() click to toggle source
# File lib/durt/jira_bug_tracker.rb, line 27
def fetch_statuses
  statuses = @client.Status.all

  statuses.map do |status|
    Durt::Status
      .find_or_create_by(source_id: status.id, source: 'Jira') do |s|
      s.name = status.name
      s.active = false
    end
  end
end

Private Instance Methods

fetch_issues_query() click to toggle source

def estimate(key, estimation)

comment(key, "Total seconds estimated for this task: #{estimation}")

end

def comment(key, content)

issue = client.Issue.find(key)

comment = issue.comments.build
comment.save(body: content)

end

# File lib/durt/jira_bug_tracker.rb, line 52
def fetch_issues_query
  statuses_query = statuses.active.map { |s| "\"#{s.name}\"" }.join(', ')
  query = "assignee=currentUser() AND status in (#{statuses_query})"
  puts query
  query
end