class Jira

Attributes

all[RW]
db[RW]
url[RW]
user[RW]

Public Class Methods

new(config) click to toggle source
# File lib/jira.rb, line 7
def initialize (config)
  @url = config['jira']['host']
  @user = config['jira']['user']
  @db = Influx.new(config['influxdb']['host'], config['jira']['dbname'], config['influxdb']['port'], config['influxdb']['user'], config['influxdb']['password'])
  jira_options = {
    :site         => @url,
    :username     => @user,
    :password     => config['jira']['password'],
    :context_path => '',
    :auth_type    => :basic,
    :read_timeout => 60,
  }
  @connection = JIRA::Client.new(jira_options)
  max_results_per_query = -1
  issues = []
  begin
    issues_v = @connection.Issue.jql('', max_results: max_results_per_query, start_at: issues.size)
    issues = issues + issues_v
  end until issues_v.empty?
  @all = issues.flatten.sort_by(&:id)
  return @connection
end

Public Instance Methods

by_overdue() click to toggle source
# File lib/jira.rb, line 84
def by_overdue()
  issues = self.all.select{|issue| issue.duedate != nil}.select{|issue| Time.parse(issue.duedate) < Time.now}.select{|issue| issue.status.name != "Done"}.select{|issue| issue.status.name != "Closed"}
end
by_owner(owner) click to toggle source
# File lib/jira.rb, line 72
def by_owner(owner)
  issues = self.all.select{|issue| issue.assignee != nil}.select{|issue| issue.assignee.displayName == owner}
end
by_owner_and_priority(owner, priority) click to toggle source
# File lib/jira.rb, line 96
def by_owner_and_priority(owner, priority)
  issues = self.all.select{|issue| issue.assignee != nil}.select{|issue| issue.assignee.displayName == owner}.select{|issue| issue.priority.name == priority}
end
by_owner_and_status(owner, status) click to toggle source
# File lib/jira.rb, line 92
def by_owner_and_status(owner, status)
  issues = self.all.select{|issue| issue.assignee != nil}.select{|issue| issue.assignee.displayName == owner}.select{|issue| issue.status.name == status}
end
by_owner_nid(owner) click to toggle source
# File lib/jira.rb, line 88
def by_owner_nid(owner)
  issues = self.all.select{|issue| issue.assignee != nil}.select{|issue| issue.assignee.name == owner}
end
by_priority(priority) click to toggle source
# File lib/jira.rb, line 76
def by_priority(priority)
  issues = self.all.select{|issue| issue.priority != nil}.select{|issue| issue.priority.name == priority}
end
by_project(project) click to toggle source
# File lib/jira.rb, line 80
def by_project(project)
  issues = self.all.select{|issue| issue.project != nil}.select{|issue| issue.project.name == project}
end
by_status(status) click to toggle source
# File lib/jira.rb, line 68
def by_status(status)
  issues = self.all.select{|issue| issue.status != nil}.select{|issue| issue.status.name == status}
end
own() click to toggle source
# File lib/jira.rb, line 100
def own()
  self.by_owner_nid(self.user)
end
owner_list() click to toggle source
# File lib/jira.rb, line 30
def owner_list()
  owners = []
  self.all.each do |issue|
    if issue.assignee != nil
      owners << issue.assignee.displayName
    end
  end
  owners.uniq!.sort!
end
priority_list() click to toggle source
# File lib/jira.rb, line 48
def priority_list()
  priority_list = []
  self.all.each do |issue|
    if issue.priority != nil
      priority_list << issue.priority.name
    end
  end
  priority_list.uniq!.sort!
end
project_list() click to toggle source
# File lib/jira.rb, line 58
def project_list()
  project_list = []
  self.all.each do |issue|
    if issue.project != nil
      project_list << issue.project.name
    end
  end
  project_list.uniq!.sort!
end
status_list() click to toggle source
# File lib/jira.rb, line 40
def status_list()
  status_list = []
  self.all.each do |issue|
    status_list << issue.status.name
  end
  status_list.uniq!.sort!
end