#!/usr/bin/env perl # Licensed to Elasticsearch under one or more contributor # license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright # ownership. Elasticsearch licenses this file to you under # the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on # an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, # either express or implied. See the License for the specific # language governing permissions and limitations under the License. use strict; use warnings; use HTTP::Tiny; use IO::Socket::SSL 1.52; use utf8; my $Base_URL = 'https://api.github.com/repos/'; my $User_Repo = 'elasticsearch/elasticsearch/'; my $Issue_URL = "http://github.com/${User_Repo}issues/issue/"; my @Groups = qw(breaking feature enhancement bug regression doc test); my %Group_Labels = ( breaking => 'Breaking changes', doc => 'Docs', feature => 'New features', enhancement => 'Enhancements', bug => 'Bug fixes', regression => 'Regression', test => 'Tests', other => 'Not classified', ); use JSON(); use Encode qw(encode_utf8); my $json = JSON->new->utf8(1); my %All_Labels = fetch_labels(); my $version = shift @ARGV or dump_labels(); dump_labels("Unknown version '$version'") unless $All_Labels{$version}; my $format = shift @ARGV || "html"; my $issues = fetch_issues($version); dump_issues( $version, $issues ); #=================================== sub dump_issues { #=================================== my $version = shift; my $issues = shift; $version =~ s/v//; my ( $day, $month, $year ) = (gmtime)[ 3 .. 5 ]; $month++; $year += 1900; for my $group ( @Groups, 'other' ) { my $group_issues = $issues->{$group} or next; $format eq 'html' and print "
$1
}g
if $format eq 'html';
if ( $issue->{state} eq 'open' ) {
$title .= " [OPEN]";
}
my $number = $issue->{number};
$format eq 'markdown' and print encode_utf8( "* "
. $title
. qq( [#$number](${Issue_URL}${number})\n)
);
$format eq 'html' and print encode_utf8( $prefix
. $title
. qq[ #${number}