Browse Source

Added support for github access tokens to es_release_notes

Clinton Gormley 11 years ago
parent
commit
da963ee1f7
1 changed files with 23 additions and 3 deletions
  1. 23 3
      dev-tools/es_release_notes.pl

+ 23 - 3
dev-tools/es_release_notes.pl

@@ -22,9 +22,10 @@ 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/";
+my $Github_Key = load_github_key();
+my $Base_URL   = "https://${Github_Key}api.github.com/repos/";
+my $User_Repo  = 'elasticsearch/elasticsearch/';
+my $Issue_URL  = "http://github.com/${User_Repo}issues/";
 
 my @Groups       = qw(breaking feature enhancement bug regression doc test);
 my %Group_Labels = (
@@ -192,6 +193,25 @@ sub fetch {
     return $json->decode( $response->{content} );
 }
 
+#===================================
+sub load_github_key {
+#===================================
+    my ($file) = glob("~/.github_auth");
+    unless ( -e $file ) {
+        warn "File ~/.github_auth doesn't exist - using anonymous API. "
+            . "Generate a Personal Access Token at https://github.com/settings/applications\n";
+        return '';
+    }
+    open my $fh, $file or die "Couldn't open $file: $!";
+    my ($key) = <$fh> || die "Couldn't read $file: $!";
+    $key =~ s/^\s+//;
+    $key =~ s/\s+$//;
+    die "Invalid GitHub key: $key"
+        unless $key =~ /^[0-9a-f]{40}$/;
+    return "$key:x-oauth-basic@";
+
+}
+
 #===================================
 sub dump_labels {
 #===================================