Module: JiraIssue::TriageTracker

Included in:
JiraIssue
Defined in:
lib/jira_reporting/triage_tracker.rb

Instance Method Summary collapse

Instance Method Details

#over_triage_sla?Boolean

Returns:

  • (Boolean)


50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/jira_reporting/triage_tracker.rb', line 50

def over_triage_sla?
  case
  when over_triage_sla == API_OVER_TRIAGE_SLA_FIELD_NO
    false
  when triage_sla_target.nil?
    false
  when triaged.nil? && Time.now > triage_sla_target
    true
  when triaged.nil? && Time.now < triage_sla_target
    false
  when sla_triaged_at.nil? && triaged < triage_sla_target
    false
  when sla_triaged_at.nil? && triaged > triage_sla_target
    true
  when triaged && sla_triaged_at > triage_sla_target
    true
  end
end

#set_over_triage_sla!(over_triage = nil) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/jira_reporting/triage_tracker.rb', line 11

def set_over_triage_sla!(over_triage = nil)
  over_triage ||= over_triage_sla?
  return if over_triage.nil? || over_triage == false
  jira_issue = jiralicious_issue
  jira_issue.fields.set_id(OVER_TRIAGE_SLA_FIELD, OVER_TRIAGE_SLA_FIELD_YES)
  jira_issue.save!
end

#set_sla_triaged_at!(sla_triaged = nil) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/jira_reporting/triage_tracker.rb', line 3

def set_sla_triaged_at!(sla_triaged = nil)
  sla_triaged ||= triaged
  return if sla_triaged.nil?
  jira_issue = jiralicious_issue
  jira_issue.fields.set(SLA_TRIAGED_AT_FIELD, sla_triaged.iso8601)
  jira_issue.save!
end

#time_to_triageObject



19
20
21
22
23
24
25
# File 'lib/jira_reporting/triage_tracker.rb', line 19

def time_to_triage
  if triaged
    triaged - sla_base
  else
    nil
  end
end

#triage_sla_remaining_timeObject



46
47
48
# File 'lib/jira_reporting/triage_tracker.rb', line 46

def triage_sla_remaining_time
  triage_sla_target - Time.now
end

#triage_sla_targetObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/jira_reporting/triage_tracker.rb', line 27

def triage_sla_target
  case priority
  when :p1
    sla_base + 0.5.hours
  when :p2
    sla_base + 1.hours
  when :p3
      2.business_hours.after(sla_base)
  when :p4
      1.business_day.after(sla_base)
  else
    nil
  end
end

#triage_sla_total_available_timeObject



42
43
44
# File 'lib/jira_reporting/triage_tracker.rb', line 42

def triage_sla_total_available_time
  triage_sla_target - sla_base
end