class JiraReporting::SLAReport
Attributes
conn[RW]
Public Class Methods
new()
click to toggle source
# File lib/jira_reporting/sla_report.rb, line 8 def initialize @conn = Connection.instance @debug = true end
show_report()
click to toggle source
# File lib/jira_reporting/sla_report.rb, line 4 def self.show_report self.new.show_report end
Public Instance Methods
custom_fields()
click to toggle source
# File lib/jira_reporting/sla_report.rb, line 76 def custom_fields @custom_fields ||= Hash[[ [10812, "Support xt Can't Reproduce"], [10808, 'Support xt In Progress'], [10809, 'Support xt Not Accepted'], [10817, 'Support xt Requester Denied'], [10814, 'Support xt Requester Review'], [10816, 'Support xt Resolved'], [10815, 'Support xt Reverify'], [10813, 'Support xt Review'], [10810, 'Support xt Triaged'], [10811, 'Support xt Verified'], ].map{|k,v| ["customfield_#{k}", v]}] end
find_all(query, offset = 0)
click to toggle source
# File lib/jira_reporting/sla_report.rb, line 40 def find_all(query, offset = 0) ask = 100 result = Jiralicious.search(query, start_at: offset, max_results: ask) issues = result.issues_raw if issues.count == ask && result.num_results > issues.count issues += find_all(query, offset + ask) end # puts "found #{issues.count}" issues end
log(str)
click to toggle source
# File lib/jira_reporting/sla_report.rb, line 15 def log(str) puts "#{Time.now} #{str}" if @debug end
prio_report(name, group)
click to toggle source
# File lib/jira_reporting/sla_report.rb, line 51 def prio_report(name, group) puts "\n#{name}:" cur_week = Time.now.to_date.cweek week_groups = group.group_by{|t| t.created_at.to_date.cweek } wgs = week_groups.to_a.select{|week, set| week >= (cur_week - 27) } wgs.sort!{|a,b| a[0] <=> b[0] } puts "Week: #{wgs.map{|w,s| "%12i" % w }.join(" | ")}" o = [] wgs.each do |week, set| sla_rate = set.select{|t| t.sla_diff <= 0 }.length.to_f / set.length o << "%11.2f%" % (sla_rate*100) end puts "SLA Hit Rate: #{o.join " | "}" o = [] wgs.each do |week, set| over_under = set.map(&:sla_diff).sum o << "%12i" % over_under end puts "Over Under: #{o.join " | "}" end
show_report()
click to toggle source
# File lib/jira_reporting/sla_report.rb, line 19 def show_report log 'querying' #query = %q{project = "Tech Support" AND ("Support xt Can't Reproduce" > startOfDay(-7d) OR "Support xt Not Accepted" > startOfDay(-7d) OR "Support xt Resolved" > startOfDay(-7d)) AND status not in ("Not Accepted", "Can't Reproduce")} query = %q{ project = "Tech Support" AND status not in ("Not Accepted", "Can't Reproduce")} #issues = Jiralicious.search(query).issues_raw issues = find_all(query) #log 'unmapping custom fields' #unmap_custom_fields(issues.first) rept = issues.map{|i| ReportIssue.new(i, custom_fields) } prios = rept.group_by(&:priority) prio_report("P1", prios[:p1]) prio_report("P2", prios[:p2]) prio_report("P3", prios[:p3]) prio_report("P4", prios[:p4]) end