38 lines
877 B
Ruby
38 lines
877 B
Ruby
#!/usr/bin/env ruby
|
|
|
|
require 'json'
|
|
require 'net/https'
|
|
require 'uri'
|
|
|
|
def uri_for(project, milestone)
|
|
return URI("https://api.github.com/repos/jruby-gradle/#{project}/issues?state=closed&milestone=#{milestone}")
|
|
end
|
|
|
|
def changelog_for(project, milestone)
|
|
uri = uri_for(project, milestone)
|
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
http.use_ssl = true
|
|
response = http.get(uri.request_uri)
|
|
|
|
raise "Status #{response.code}" unless response.code.to_i == 200
|
|
|
|
body = JSON.parse(response.body)
|
|
|
|
body.reverse.each do |issue|
|
|
puts "* [##{issue['number']}](#{issue['html_url']}) - #{issue['title']}"
|
|
end
|
|
end
|
|
|
|
print 'What project? > '
|
|
project = STDIN.gets.chomp
|
|
|
|
print 'What milestone? > '
|
|
milestone = STDIN.gets.chomp
|
|
|
|
puts
|
|
puts "Computing changelog for '#{project}' and milestone '#{milestone}'"
|
|
puts
|
|
puts '-------------------'
|
|
|
|
changelog_for(project, milestone)
|