Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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
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
@ioquatix

This comment has been minimized.

Copy link

@ioquatix ioquatix commented Apr 24, 2020

@mame this ignores some markdown like this:

- [Feature ...] ...
 - Point 1

When there is only one space before the point 1, the entire feature is ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.