hiiro 0.1.162 → 0.1.163

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/h-pr +51 -7
  3. data/lib/hiiro/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94166320c8a5582f581f61b180c0980ff7e52b83ac06b47bc0cb79c1613dfd40
4
- data.tar.gz: c3c6f3e52b9b9295bb6fed5af84ddac5d024fea4914c944847a400af4280ccf3
3
+ metadata.gz: 2c3b8a7ef37a2274bf4b52e02065157b4b8594acfc46247515567a70a72d4358
4
+ data.tar.gz: f82e3af631f319bcfaf44ad0fee394af8e06047efa9c90643e3566a299e2ba7a
5
5
  SHA512:
6
- metadata.gz: 9d9658c04a99611e45494f4312b97f610a1d268069e90c4351a1ecfa8a03df2a155f10a75852ebce08c021cf0ecba1d63a87bd73796e33b2648b06951179922f
7
- data.tar.gz: 6caa150c70b3dcbe1da7160a8531015b9575d6972d1c8082865105ea9b5777d7b4ac54403cd758e1f40987a601ca85245af5181d0564c2f39457643f617621d3
6
+ metadata.gz: f19c0547afbd4b7daed0b32e53698eb03ec7e561608a4da56dc7f988afed623048e8085868190917e5f08f640fd7c41b42119465dad98922f44a5ba67c32b83e
7
+ data.tar.gz: 6ea2b1d2cfa23b14e78684647f373452682a2996dd957f17f641f018c4434df54950f902fb9c5b03425dc134de38368eaa35107aca98f8d0852e2ee3f78f969e
data/bin/h-pr CHANGED
@@ -245,14 +245,20 @@ class PinnedPRManager
245
245
  JSON.parse(output) rescue []
246
246
  end
247
247
 
248
+ def fetch_assigned_prs
249
+ output = `gh pr list --assignee @me --state open --json number,title,headRefName,url 2>/dev/null`.strip
250
+ return [] if output.empty?
251
+ JSON.parse(output) rescue []
252
+ end
253
+
248
254
  def fetch_my_and_assigned_prs
249
- authored = `gh pr list --author @me --state open --json number,title,headRefName,url 2>/dev/null`.strip
250
- assigned = `gh pr list --assignee @me --state open --json number,title,headRefName,url 2>/dev/null`.strip
255
+ authored_prs = fetch_my_prs
256
+ assigned_prs = fetch_assigned_prs
251
257
 
252
- authored_prs = authored.empty? ? [] : (JSON.parse(authored) rescue [])
253
- assigned_prs = assigned.empty? ? [] : (JSON.parse(assigned) rescue [])
258
+ authored_numbers = authored_prs.map { |pr| pr['number'] }.to_set
259
+ assigned_prs.each { |pr| pr['assigned'] = true unless authored_numbers.include?(pr['number']) }
260
+ authored_prs.each { |pr| pr['authored'] = true }
254
261
 
255
- # Dedupe by PR number
256
262
  (authored_prs + assigned_prs).uniq { |pr| pr['number'] }
257
263
  end
258
264
 
@@ -953,6 +959,40 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
953
959
  filtered.each_with_index { |pr, i| puts pinned_manager.display_pinned(pr, i) }
954
960
  end
955
961
 
962
+ add_subcmd(:assigned) do
963
+ prs = pinned_manager.fetch_assigned_prs
964
+
965
+ if prs.empty?
966
+ puts "No PRs assigned to you"
967
+ next
968
+ end
969
+
970
+ pinned_numbers = pinned_manager.load_pinned.map { |p| p['number'] }.to_set
971
+ puts "PRs assigned to you (#{prs.count}):"
972
+ puts
973
+ prs.each_with_index do |pr, i|
974
+ tracked = pinned_numbers.include?(pr['number']) ? ' [tracked]' : ''
975
+ puts " #{i + 1}. ##{pr['number']} #{pr['title']} [#{pr['headRefName']}]#{tracked}"
976
+ end
977
+ end
978
+
979
+ add_subcmd(:created) do
980
+ prs = pinned_manager.fetch_my_prs
981
+
982
+ if prs.empty?
983
+ puts "No open PRs created by you"
984
+ next
985
+ end
986
+
987
+ pinned_numbers = pinned_manager.load_pinned.map { |p| p['number'] }.to_set
988
+ puts "PRs created by you (#{prs.count}):"
989
+ puts
990
+ prs.each_with_index do |pr, i|
991
+ tracked = pinned_numbers.include?(pr['number']) ? ' [tracked]' : ''
992
+ puts " #{i + 1}. ##{pr['number']} #{pr['title']} [#{pr['headRefName']}]#{tracked}"
993
+ end
994
+ end
995
+
956
996
  add_subcmd(:missing) do
957
997
  my_prs = pinned_manager.fetch_my_and_assigned_prs
958
998
  pinned_numbers = pinned_manager.load_pinned.map { |p| p['number'] }
@@ -965,7 +1005,10 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
965
1005
 
966
1006
  puts "Untracked PRs (#{missing.count}):"
967
1007
  puts
968
- missing.each { |pr| puts " ##{pr['number']} [#{pr['headRefName']}] #{pr['title']}" }
1008
+ missing.each do |pr|
1009
+ relationship = pr['assigned'] ? 'assigned' : 'authored'
1010
+ puts " ##{pr['number']} [#{pr['headRefName']}] #{pr['title']} (#{relationship})"
1011
+ end
969
1012
  end
970
1013
 
971
1014
  add_subcmd(:amissing) do
@@ -983,8 +1026,9 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
983
1026
  tmpfile = Tempfile.new(['missing-prs-', '.yml'])
984
1027
  lines = ['---']
985
1028
  missing.each do |pr|
1029
+ relationship = pr['assigned'] ? 'assigned' : 'authored'
986
1030
  lines << ''
987
- lines << "# [#{pr['headRefName']}] #{pr['title']}"
1031
+ lines << "# [#{relationship}] [#{pr['headRefName']}] #{pr['title']}"
988
1032
  lines << "# url: #{pr['url']}"
989
1033
  lines << "- #{pr['number']}"
990
1034
  end
data/lib/hiiro/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Hiiro
2
- VERSION = "0.1.162"
2
+ VERSION = "0.1.163"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiiro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.162
4
+ version: 0.1.163
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Toyota