github_issue_stats 0.4.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: af02c65f57d4da09083fcce26bc1f12fb88aec31
4
- data.tar.gz: 45d24e5d5e66c55e9d67a044d6c2e7f7a54fd6d0
2
+ SHA256:
3
+ metadata.gz: d25cdfb7662608b213500671a85befa8a145bbb62329193046fc45c86a36bafe
4
+ data.tar.gz: e6d1bd9974d03410667862a2f7e149f1f624ac6eca137a3c1a17b99db091f0d5
5
5
  SHA512:
6
- metadata.gz: 9bae404551ef009a2071c21ced6a293064607a8fba412e5be77dde329de90bdac5cf68b6308ab4190de95c9a4c3358ebfa1a89bfbbdee9f917cf1d7f3ad3234c
7
- data.tar.gz: 3f3a9e7d886844979bbde704872cf1582b3c72364ac1f4b17071a32c07ba7299826d15839f6bdaaee9c1c6050cbee712526b2cad94e2dca83fdc60b4f543b682
6
+ metadata.gz: 149cf84a3bd29c1a4c907b0d52490fd79bb27d6b727bc5ac2b1fe78f40820db0830c814ed8878aa44b5dee552bef9d05d88e3e76508a0cb4a64d5dafb77e0db8
7
+ data.tar.gz: '03752413094dcf9b997df108d0bf703d02ee76886d57398e9e23f84c860a8de28ebb22a7a209a9434957599d2bd804727eb78aac4565b608b0cdc01b0e4582a8'
@@ -40,7 +40,7 @@ Commander.configure do
40
40
  options.intervals = Array(options.intervals)
41
41
 
42
42
  raise ArgumentError.new("--token is required") if options.token.nil?
43
- raise ArgumentError.new("invalid --token format") unless /\A\h{40}\z/.match(options.token)
43
+ raise ArgumentError.new("invalid --token format") unless (/\A\h{40}\z/.match(options.token) || /\Agh(p|o|u|s|r)_[A-Za-z0-9]+\z/.match(options.token))
44
44
  raise ArgumentError.new("--scopes is required") if options.scopes.nil?
45
45
  raise ArgumentError.new("invalid --intervals format") if options.intervals.nil?
46
46
  raise ArgumentError.new("invalid --output_format") unless /\A(text)|(markdown)\z/.match(options.output_format)
@@ -86,7 +86,7 @@ Commander.configure do
86
86
  options.labels = Array(options.labels)
87
87
 
88
88
  raise ArgumentError.new("--token is required") if options.token.nil?
89
- raise ArgumentError.new("invalid --token format") unless /\A\h{40}\z/.match(options.token)
89
+ raise ArgumentError.new("invalid --token format") unless (/\A\h{40}\z/.match(options.token) || /\Agh(p|o|u|s|r)_[A-Za-z0-9]+\z/.match(options.token))
90
90
  raise ArgumentError.new("--scopes is required") if options.scopes.nil?
91
91
  raise ArgumentError.new("invalid --interval_length format") unless /\A\d[hdwmy]\z/.match(options.interval_length)
92
92
  raise ArgumentError.new("invalid --interval_count format") if options.interval_count.nil? || options.interval_count < 1
@@ -1,5 +1,5 @@
1
1
  require "logger"
2
- require "Octokit"
2
+ require "octokit"
3
3
  require "time"
4
4
  require "text-table"
5
5
 
@@ -30,7 +30,7 @@ module Enumerable
30
30
  end
31
31
 
32
32
  class GitHubIssueStats
33
- VERSION = "0.4.0"
33
+ VERSION = "0.8.0"
34
34
 
35
35
  attr_accessor :client, # Octokit client for acesing the API
36
36
  :logger, # Logger for writing debugging info
@@ -47,7 +47,7 @@ class GitHubIssueStats
47
47
  begin
48
48
  @client = Octokit::Client.new(
49
49
  :access_token => token,
50
- :auto_paginate => true,
50
+ :auto_paginate => false,
51
51
  :user_agent => "GitHubIssueStats/#{VERSION} (@izuzak) #{Octokit.user_agent}"
52
52
  )
53
53
 
@@ -197,7 +197,7 @@ class GitHubIssueStats
197
197
  STDERR.flush
198
198
  end
199
199
 
200
- result = @client.search_issues(query_string)
200
+ result = @client.search_issues(query_string, {:per_page => 1})
201
201
  @logger.debug "Total count: #{result.total_count}"
202
202
 
203
203
  if result.incomplete_results
@@ -275,15 +275,15 @@ class GitHubIssueStats
275
275
 
276
276
  rate_limit_data = @client.get("https://api.github.com/rate_limit")
277
277
 
278
- if rate_limit_data[:resources][:core][:remaining] == 0
278
+ if rate_limit_data[:resources][:core][:remaining] <= 2
279
279
  reset_timestamp = rate_limit_data[:resources][:core][:reset]
280
- sleep_seconds = reset_timestamp - Time.now.to_i
281
- @logger.warn "Remaining regular API rate limit is 0, sleeping for #{sleep_seconds} seconds."
280
+ sleep_seconds = reset_timestamp - Time.now.to_i + 3
281
+ @logger.warn "Remaining regular API rate limit is close to 0, sleeping for #{sleep_seconds} seconds."
282
282
  sleep(sleep_seconds)
283
- elsif rate_limit_data[:resources][:search][:remaining] == 0
283
+ elsif rate_limit_data[:resources][:search][:remaining] <= 2
284
284
  reset_timestamp = rate_limit_data[:resources][:search][:reset]
285
- sleep_seconds = reset_timestamp - Time.now.to_i
286
- @logger.warn "Remaining search API rate limit is 0, sleeping for #{sleep_seconds} seconds."
285
+ sleep_seconds = reset_timestamp - Time.now.to_i + 3
286
+ @logger.warn "Remaining search API rate limit is close to 0, sleeping for #{sleep_seconds} seconds."
287
287
  sleep(sleep_seconds)
288
288
  elsif
289
289
  sleep(1)
@@ -307,7 +307,7 @@ class GitHubIssueStats
307
307
  elsif options[:label] == "pulls"
308
308
  query += "is:pr "
309
309
  else
310
- query += "label:#{options[:label]} "
310
+ query += "label:\"#{options[:label]}\" "
311
311
  end
312
312
 
313
313
  if !options[:state].nil?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github_issue_stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Zuzak
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-01 00:00:00.000000000 Z
11
+ date: 2021-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -58,7 +58,7 @@ dependencies:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: 1.2.4
61
- description:
61
+ description:
62
62
  email: izuzak@gmail.com
63
63
  executables:
64
64
  - github_issue_stats
@@ -71,7 +71,7 @@ homepage: https://github.com/izuzak/github_issue_stats
71
71
  licenses:
72
72
  - MIT
73
73
  metadata: {}
74
- post_install_message:
74
+ post_install_message:
75
75
  rdoc_options: []
76
76
  require_paths:
77
77
  - lib
@@ -86,9 +86,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubyforge_project:
90
- rubygems_version: 2.2.3
91
- signing_key:
89
+ rubygems_version: 3.2.15
90
+ signing_key:
92
91
  specification_version: 4
93
92
  summary: Utility for collecting stats on number of open issues over time in GitHub
94
93
  repositories.