1- require 'github_api '
1+ require 'octokit '
22require 'date'
33require 'yaml'
44
55# Get the begin date, by finding the last major/minor (X.Y.0) release
66# that is at least a week old
77def get_begin_date_and_previous_tag ( )
88 a_week_ago = Time . now - ( 60 *60 *24 *7 )
9-
10- @github . repos . releases . list ( owner : @repo_owner ,
11- repo : @repo ) . each_page do |page |
12- page . each do |release |
13- next if release . tag_name !~ /^v\d \. \d \. 0$/
14- release_date = Time . parse ( release . created_at )
15- next if release_date > a_week_ago
16- # This is perhaps unecessary since we match to a tag in vX.Y.0 format
17- # already but it doesn't hurt
18- next if release . prerelease
19- next if release . draft
20- STDERR . puts "Found previous major/minor release: #{ release . tag_name } , #{ release_date } "
21- return release_date , " (#{ release . tag_name } )"
22- end
9+ repo = "#{ @repo_owner } /#{ @repo } "
10+
11+ @github . releases ( repo , per_page : 100 ) . each do |release |
12+ next if release . tag_name !~ /^v\d +\. \d +\. 0$/
13+ release_date = release . created_at . to_time
14+ next if release_date > a_week_ago
15+ # This is perhaps unecessary since we match to a tag in vX.Y.0 format
16+ # already but it doesn't hurt
17+ next if release . prerelease
18+ next if release . draft
19+ STDERR . puts "Found previous major/minor release: #{ release . tag_name } , #{ release_date } "
20+ return release_date , " (#{ release . tag_name } )"
2321 end
2422 STDERR . puts "Cannot find previous release, setting time to 2005"
2523 return Time . new ( 2005 , 01 , 01 ) , ""
@@ -60,16 +58,18 @@ def print_issue(issue)
6058
6159if !ENV [ 'GITHUB_TOKEN' ] . nil?
6260 token = ENV [ 'GITHUB_TOKEN' ]
63- @github = Github . new oauth_token : token
61+ @github = Octokit :: Client . new ( access_token : token )
6462elsif File . exist? ( Dir . home + '/github_config.yml' )
6563 github_options = YAML . load_file ( Dir . home + '/github_config.yml' )
6664 token = github_options [ 'oauth_token' ]
67- @github = Github . new oauth_token : token
65+ @github = Octokit :: Client . new ( access_token : token )
6866else
6967 STDERR . puts "Github Token not found"
70- @github = Github . new
68+ @github = Octokit :: Client . new
7169end
7270
71+ @github . auto_paginate = true
72+
7373@begin_date , @prev_tag = get_begin_date_and_previous_tag ( )
7474
7575totalOpenIssues = Array . new
@@ -78,59 +78,35 @@ def print_issue(issue)
7878closedIssues = Array . new
7979acceptedPullRequests = Array . new
8080
81+ repo = "#{ @repo_owner } /#{ @repo } "
82+
8183# Process Open Issues
82- results = -1
83- page = 1
84- while ( results != 0 )
85- resp = @github . issues . list user : @repo_owner , repo : @repo ,
86- :sort => 'created' ,
87- :direction => 'asc' ,
88- :state => 'open' ,
89- :per_page => 100 ,
90- :page => page
91- results = resp . length
92- resp . env [ :body ] . each do |issue , index |
93- created = Time . parse ( issue . created_at )
94- if !issue . has_key? ( :pull_request )
95- totalOpenIssues << issue
96- if created >= @begin_date && created <= @end_date
97- newIssues << issue
98- end
99- else
100- totalOpenPullRequests << issue
84+ @github . issues ( repo , sort : 'created' , direction : 'asc' , state : 'open' , per_page : 100 ) . each do |issue |
85+ created = issue . created_at . to_time
86+ if issue . pull_request . nil?
87+ totalOpenIssues << issue
88+ if created >= @begin_date && created <= @end_date
89+ newIssues << issue
10190 end
91+ else
92+ totalOpenPullRequests << issue
10293 end
103-
104- page = page + 1
10594end
10695
10796# Process Closed Issues
108- results = -1
109- page = 1
110- while ( results != 0 )
111- resp = @github . issues . list user : @repo_owner , repo : @repo ,
112- :sort => 'created' ,
113- :direction => 'asc' ,
114- :state => 'closed' ,
115- :per_page => 100 ,
116- :page => page
117- results = resp . length
118- resp . env [ :body ] . each do |issue , index |
119- created = Time . parse ( issue . created_at )
120- closed = Time . parse ( issue . closed_at )
121- if !issue . has_key? ( :pull_request )
122- if created >= @begin_date && created <= @end_date
123- newIssues << issue
124- end
125- if closed >= @begin_date && closed <= @end_date
126- closedIssues << issue
127- end
128- elsif closed >= @begin_date && closed <= @end_date
129- acceptedPullRequests << issue
97+ @github . issues ( repo , sort : 'created' , direction : 'asc' , state : 'closed' , per_page : 100 ) . each do |issue |
98+ created = issue . created_at . to_time
99+ closed = issue . closed_at . to_time
100+ if issue . pull_request . nil?
101+ if created >= @begin_date && created <= @end_date
102+ newIssues << issue
130103 end
104+ if closed >= @begin_date && closed <= @end_date
105+ closedIssues << issue
106+ end
107+ elsif closed >= @begin_date && closed <= @end_date
108+ acceptedPullRequests << issue
131109 end
132-
133- page = page + 1
134110end
135111
136112closedIssues . sort! { |x , y | get_num ( x ) <=> get_num ( y ) }
0 commit comments