Skip to content

Instantly share code, notes, and snippets.

@mame
Last active May 14, 2021 00:09
Show Gist options
  • Save mame/b0390509ce1491b43610b9ebb665eb86 to your computer and use it in GitHub Desktop.
Save mame/b0390509ce1491b43610b9ebb665eb86 to your computer and use it in GitHub Desktop.
A script to create an agenda for dev-meeting https://bugs.ruby-lang.org/issues/14770
#!/usr/bin/env ruby
require "open-uri"
require "json"
unless ARGV[0] =~ %r{\Ahttps://bugs.ruby-lang.org/issues/(\d+)\z}
puts "Usage: #$0 https://bugs.ruby-lang.org/issues/XXXX"
exit 1
end
URI.open("https://bugs.ruby-lang.org/issues/#$1.json?include=journals") do |f|
comments = JSON.parse(f.read, symbolize_names: true)[:issue][:journals]
comments.each do |comment|
comment[:notes].gsub("\r\n", "\n").scan(/^[*\-] (\[(?:Bug|Feature|Misc) #(\d+)\]) (.*?)( \(\w+\))?\s*\n((?: [*\-] .*(?:\n|$))+)/) do
issue, nb, title, author, summary = $~.captures
author = " (#{comment[:user][:name].split(' ').first})" unless author
puts "### [#{issue}](https://bugs.ruby-lang.org/issues/#{nb}) #{title}#{author}"
puts
puts summary.gsub(/^ /, "")
puts
puts "Discussion:"
puts
puts "* in short: "
puts
end
end
end
@XrXr
Copy link

XrXr commented May 13, 2021

@mame I tried running the script on Ruby 3 and it didn't work because calling Kernel#open to use URI.open stopped working. Had to fix it like this:

diff --git a/orig.rb b/patched.rb
index 5587203..4aea74a 100644
--- a/orig.rb
+++ b/patched.rb
@@ -8,7 +8,7 @@ unless ARGV[0] =~ %r{\Ahttps://bugs.ruby-lang.org/issues/(\d+)\z}
   exit 1
 end
 
-open("https://bugs.ruby-lang.org/issues/#$1.json?include=journals") do |f|
+URI.open("https://bugs.ruby-lang.org/issues/#$1.json?include=journals") do |f|
   comments = JSON.parse(f.read, symbolize_names: true)[:issue][:journals]
   comments.each do |comment|
     comment[:notes].gsub("\r\n", "\n").scan(/^[*\-] (\[(?:Bug|Feature|Misc) #(\d+)\]) (.*?)( \(\w+\))?\s*\n((?:  [*\-] .*(?:\n|$))+)/) do

@mame
Copy link
Author

mame commented May 14, 2021

@XrXr Yeah, I have fixed the issue only on my local machine :-) Fixed, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment