jirametrics 2.2.1 → 2.4pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jirametrics/aggregate_config.rb +13 -25
- data/lib/jirametrics/aging_work_bar_chart.rb +57 -39
- data/lib/jirametrics/aging_work_in_progress_chart.rb +1 -1
- data/lib/jirametrics/aging_work_table.rb +9 -26
- data/lib/jirametrics/blocked_stalled_change.rb +24 -4
- data/lib/jirametrics/board_config.rb +2 -2
- data/lib/jirametrics/change_item.rb +13 -5
- data/lib/jirametrics/chart_base.rb +27 -39
- data/lib/jirametrics/columns_config.rb +4 -0
- data/lib/jirametrics/cycletime_histogram.rb +1 -1
- data/lib/jirametrics/cycletime_scatterplot.rb +1 -1
- data/lib/jirametrics/daily_wip_by_age_chart.rb +1 -1
- data/lib/jirametrics/daily_wip_by_blocked_stalled_chart.rb +3 -16
- data/lib/jirametrics/daily_wip_chart.rb +1 -13
- data/lib/jirametrics/data_quality_report.rb +4 -1
- data/lib/jirametrics/dependency_chart.rb +1 -1
- data/lib/jirametrics/{story_point_accuracy_chart.rb → estimate_accuracy_chart.rb} +31 -25
- data/lib/jirametrics/examples/standard_project.rb +1 -1
- data/lib/jirametrics/expedited_chart.rb +3 -1
- data/lib/jirametrics/exporter.rb +3 -3
- data/lib/jirametrics/file_config.rb +12 -8
- data/lib/jirametrics/file_system.rb +11 -2
- data/lib/jirametrics/groupable_issue_chart.rb +2 -4
- data/lib/jirametrics/hierarchy_table.rb +4 -4
- data/lib/jirametrics/html/aging_work_table.erb +3 -3
- data/lib/jirametrics/html/index.erb +1 -0
- data/lib/jirametrics/html_report_config.rb +61 -74
- data/lib/jirametrics/issue.rb +129 -57
- data/lib/jirametrics/project_config.rb +13 -7
- data/lib/jirametrics/sprint_burndown.rb +11 -0
- data/lib/jirametrics/status_collection.rb +4 -1
- data/lib/jirametrics/throughput_chart.rb +1 -1
- data/lib/jirametrics.rb +1 -1
- metadata +5 -7
- data/lib/jirametrics/experimental/generator.rb +0 -210
- data/lib/jirametrics/experimental/info.rb +0 -77
- /data/lib/jirametrics/html/{story_point_accuracy_chart.erb → estimate_accuracy_chart.erb} +0 -0
@@ -1,77 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'require_all'
|
4
|
-
require_all 'lib'
|
5
|
-
|
6
|
-
class InfoDumper
|
7
|
-
def initialize
|
8
|
-
@target_dir = 'target/'
|
9
|
-
end
|
10
|
-
|
11
|
-
def run key
|
12
|
-
find_file_prefixes.each do |prefix|
|
13
|
-
path = "#{@target_dir}#{prefix}_issues/#{key}.json"
|
14
|
-
path = "#{@target_dir}#{prefix}_issues"
|
15
|
-
Dir.foreach path do |file|
|
16
|
-
if file.match?(/^#{key}.+\.json$/)
|
17
|
-
issue = Issue.new raw: JSON.parse(File.read(File.join(path, file))), board: nil
|
18
|
-
dump issue
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def find_file_prefixes
|
25
|
-
prefixes = []
|
26
|
-
Dir.foreach @target_dir do |file|
|
27
|
-
prefixes << $1 if file =~ /^(.+)_issues$/
|
28
|
-
end
|
29
|
-
prefixes
|
30
|
-
end
|
31
|
-
|
32
|
-
def dump issue
|
33
|
-
puts "#{issue.key} (#{issue.type}): #{compact_text issue.summary, 200}"
|
34
|
-
|
35
|
-
assignee = issue.raw['fields']['assignee']
|
36
|
-
puts " [assignee] #{assignee['name'].inspect} <#{assignee['emailAddress']}>" unless assignee.nil?
|
37
|
-
|
38
|
-
issue.raw['fields']['issuelinks'].each do |link|
|
39
|
-
puts " [link] #{link['type']['outward']} #{link['outwardIssue']['key']}" if link['outwardIssue']
|
40
|
-
puts " [link] #{link['type']['inward']} #{link['inwardIssue']['key']}" if link['inwardIssue']
|
41
|
-
end
|
42
|
-
issue.changes.each do |change|
|
43
|
-
value = change.value
|
44
|
-
old_value = change.old_value
|
45
|
-
|
46
|
-
# Description fields get pretty verbose so reduce the clutter
|
47
|
-
if change.field == 'description' || change.field == 'summary'
|
48
|
-
value = compact_text value
|
49
|
-
old_value = compact_text old_value
|
50
|
-
end
|
51
|
-
|
52
|
-
author = change.author
|
53
|
-
author = "(#{author})" if author
|
54
|
-
message = " [change] #{change.time} [#{change.field}] "
|
55
|
-
message << "#{compact_text(old_value).inspect} -> " unless old_value.nil? || old_value.empty?
|
56
|
-
message << compact_text(value).inspect
|
57
|
-
message << " #{author}" if author
|
58
|
-
message << ' <<artificial entry>>' if change.artificial?
|
59
|
-
puts message
|
60
|
-
end
|
61
|
-
puts ''
|
62
|
-
end
|
63
|
-
|
64
|
-
def compact_text text, max = 60
|
65
|
-
return nil if text.nil?
|
66
|
-
|
67
|
-
text = text.gsub(/\s+/, ' ').strip
|
68
|
-
text = "#{text[0..max]}..." if text.length > max
|
69
|
-
text
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
if __FILE__ == $PROGRAM_NAME
|
74
|
-
ARGV.each do |key|
|
75
|
-
InfoDumper.new.run key
|
76
|
-
end
|
77
|
-
end
|
File without changes
|