hiiro 0.1.242 → 0.1.243
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/bin/h-pr +40 -14
- data/lib/hiiro/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 451f995a33a97fcc96f14d46d9e5db921bd0fd7d3c82e3398f36b38c11acdcbe
|
|
4
|
+
data.tar.gz: 297b009bba497838b4c9c2b1958632feb84e4348fcbd5027e7663f146e3c3cf1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c7c71c733b7be2b9a12ba342d681bef838a3a79b54eda8e4f0ca05a996f7738104a709079591d36465d9dc52eddcca0a3e681ea54b5433c2c82b38a97b9c1c40
|
|
7
|
+
data.tar.gz: '0295aa80f43ab13e2b8f1bae5a0a1fa37f1527d90384bc4167365eb183ab42d5743338f4aab8c4c9d754b8de5625f638434e79358595e44f9316dd0f9ef28514'
|
data/bin/h-pr
CHANGED
|
@@ -341,8 +341,16 @@ class PinnedPRManager
|
|
|
341
341
|
{ 'approved' => approved, 'changes_requested' => changes_requested, 'commented' => commented, 'reviewers' => latest_by_author }
|
|
342
342
|
end
|
|
343
343
|
|
|
344
|
-
def display_pinned(pr, idx = nil)
|
|
345
|
-
|
|
344
|
+
def display_pinned(pr, idx = nil, widths: {})
|
|
345
|
+
slot_w = widths[:slot] || 1
|
|
346
|
+
succ_w = widths[:succ] || 1
|
|
347
|
+
total_w = widths[:total] || 1
|
|
348
|
+
as_w = widths[:as] || 1
|
|
349
|
+
crs_w = widths[:crs] || 1
|
|
350
|
+
|
|
351
|
+
slot_num = (pr['slot'] || (idx ? idx + 1 : 1)).to_s
|
|
352
|
+
num = "#{slot_num.rjust(slot_w)}."
|
|
353
|
+
indent = " " * (slot_w + 2)
|
|
346
354
|
|
|
347
355
|
check_emoji, checks_count_str =
|
|
348
356
|
if pr['checks']
|
|
@@ -352,13 +360,15 @@ class PinnedPRManager
|
|
|
352
360
|
emoji = if has_failed && has_pending
|
|
353
361
|
"⏳❌"
|
|
354
362
|
elsif has_failed
|
|
355
|
-
"❌"
|
|
363
|
+
" ❌"
|
|
356
364
|
elsif has_pending
|
|
357
|
-
"⏳"
|
|
365
|
+
"⏳ "
|
|
358
366
|
else
|
|
359
|
-
"✅"
|
|
367
|
+
" ✅"
|
|
360
368
|
end
|
|
361
|
-
|
|
369
|
+
succ = c['success'].to_i.to_s.rjust(succ_w)
|
|
370
|
+
total = c['total'].to_i.to_s.rjust(total_w)
|
|
371
|
+
[emoji, "#{succ}/#{total}"]
|
|
362
372
|
else
|
|
363
373
|
["", nil]
|
|
364
374
|
end
|
|
@@ -373,21 +383,31 @@ class PinnedPRManager
|
|
|
373
383
|
state_icon = "[#{bracket_parts.join(' ')}]"
|
|
374
384
|
|
|
375
385
|
r = pr['reviews'] || {}
|
|
376
|
-
as
|
|
386
|
+
as = r['approved'].to_i
|
|
377
387
|
crs = r['changes_requested'].to_i
|
|
378
388
|
|
|
379
|
-
|
|
380
|
-
|
|
389
|
+
as_val = as > 0 ? as.to_s : '-'
|
|
390
|
+
crs_val = crs > 0 ? crs.to_s : '-'
|
|
391
|
+
as_colored = as > 0 ? "\e[30;102m#{as_val}\e[0m" : as_val
|
|
392
|
+
crs_colored = crs > 0 ? "\e[30;103m#{crs_val}\e[0m" : crs_val
|
|
393
|
+
as_pad = " " * [as_w - as_val.length, 0].max
|
|
394
|
+
crs_pad = " " * [crs_w - crs_val.length, 0].max
|
|
381
395
|
conflict_str = pr['mergeable'] == 'CONFLICTING' ? " \e[30;101mC\e[0m" : ""
|
|
382
|
-
reviews_str = "#{
|
|
396
|
+
reviews_str = "#{as_pad}#{as_colored}a/#{crs_pad}#{crs_colored}cr#{conflict_str}"
|
|
383
397
|
|
|
384
398
|
repo = pr_repo(pr)
|
|
385
|
-
repo_label = (repo && repo != 'instacart/carrot') ? "
|
|
399
|
+
repo_label = (repo && repo != 'instacart/carrot') ? "[#{repo}] " : ""
|
|
386
400
|
|
|
387
401
|
tags = Array(pr['tags'])
|
|
388
|
-
tags_str = tags.any? ?
|
|
402
|
+
tags_str = tags.any? ? tags.map { |t| "\e[30;104m#{t}\e[0m" }.join(' ') : nil
|
|
403
|
+
|
|
404
|
+
branch_str = pr['headRefName'] ? " #{pr['headRefName']}" : ""
|
|
405
|
+
line1 = "#{num} ##{pr['number']} #{state_icon} #{reviews_str}#{branch_str}"
|
|
406
|
+
line2 = "#{indent}#{repo_label}#{pr['title']}"
|
|
407
|
+
line3 = pr['url'] ? "#{indent}#{pr['url']}" : nil
|
|
408
|
+
line4 = tags_str ? "#{indent}#{tags_str}" : nil
|
|
389
409
|
|
|
390
|
-
|
|
410
|
+
[line1, line2, line3, line4].compact.join("\n")
|
|
391
411
|
end
|
|
392
412
|
|
|
393
413
|
def filter_active?(opts)
|
|
@@ -767,7 +787,13 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
|
|
|
767
787
|
if opts.numbers
|
|
768
788
|
results.each { |pr| puts pr['number'] }
|
|
769
789
|
else
|
|
770
|
-
results.
|
|
790
|
+
slot_w = results.map { |pr| (pr['slot'] || 1).to_s.length }.max
|
|
791
|
+
succ_w = results.filter_map { |pr| pr.dig('checks', 'success')&.to_i&.to_s&.length }.max || 1
|
|
792
|
+
total_w = results.filter_map { |pr| pr.dig('checks', 'total')&.to_i&.to_s&.length }.max || 1
|
|
793
|
+
as_w = results.map { |pr| [pr.dig('reviews', 'approved').to_i.to_s.length, 1].max }.max
|
|
794
|
+
crs_w = results.map { |pr| [pr.dig('reviews', 'changes_requested').to_i.to_s.length, 1].max }.max
|
|
795
|
+
widths = { slot: slot_w, succ: succ_w, total: total_w, as: as_w, crs: crs_w }
|
|
796
|
+
results.each_with_index { |pr, idx| puts pinned_manager.display_pinned(pr, idx, widths: widths) }
|
|
771
797
|
last_checked = pinned.filter_map { |pr| pr['last_checked'] }.max
|
|
772
798
|
puts "---"
|
|
773
799
|
puts "Last updated: #{last_checked || 'never'}"
|
data/lib/hiiro/version.rb
CHANGED