hub_link 0.15.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d6145c12843d700957a88926acba9b90bb56044
4
- data.tar.gz: 503ddec7c82a283f13c45da8b6f9ad7c2c679314
3
+ metadata.gz: 7393845f06b0f5351385509b348edf549bc06c8e
4
+ data.tar.gz: ed93dc3da202c40c1b682fb39b4a4c73e7b197f8
5
5
  SHA512:
6
- metadata.gz: 2f1048505951653140943e01bbd4353d8f9400dd15e7b618efdd6943bee6701af483e026188acd10a4c9a577c1844ecc14df9a9b60409e6617ce6ea90efde8a5
7
- data.tar.gz: d205a888fee916b2017a66248fa31dce76c0ed425cf400a3db118dd0ba4d41fba541864a571db1540ab260aef9f628448acdea211831235d779c569395a4381e
6
+ metadata.gz: 26a4378f6e71fed9919d5303df7d32c296ab54bbb849f5e1bd0ee5b87168cc249cf8bfc3e807d97f854a8af9c26b5a5ef7aad3d7e6fcb1001f332b60945468db
7
+ data.tar.gz: 26a50ddbdc5a340b5df5e6271d2dd28fbc982d8813950a35fa9d2deb534c93c7eed6e95b6365d964c8eb9c1314e81303ff9f763bf670fafe8846e77e00a3a811
data/hub_link.gemspec CHANGED
@@ -22,7 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency "dotenv"
23
23
  spec.add_dependency "faraday_middleware"
24
24
  spec.add_dependency "octokit"
25
- spec.add_dependency "pastel"
26
25
 
27
26
  spec.add_development_dependency "bundler", "~> 1.12"
28
27
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,4 +1,3 @@
1
- require "hub_link/core_ext/float"
2
1
  require "hub_link/api/review"
3
2
  require "hub_link/api/review_request"
4
3
  require "hub_link/slicer"
@@ -14,15 +13,11 @@ module HubLink
14
13
  updated_at
15
14
  closed_at
16
15
  merged_at
17
- approval_time
18
- time_to_first_review
19
- merge_time
20
16
  body_size
21
17
  additions
22
18
  comments_count
23
19
  review_comments_count
24
20
  submitter
25
- straight_approval?
26
21
  labels
27
22
  repo
28
23
  html_url
@@ -33,7 +28,7 @@ module HubLink
33
28
  Octokit.list_issues(repo, options.merge(page: page, sort: "updated", direction: "asc", state: "all")).map do |item|
34
29
  item.repo = repo
35
30
  new(item)
36
- end.find_all(&:pull_request?)
31
+ end
37
32
  end
38
33
 
39
34
  def pull_request?
@@ -60,28 +55,6 @@ module HubLink
60
55
  body.to_s.size
61
56
  end
62
57
 
63
- def merge_time
64
- return unless merged?
65
-
66
- (merged_at - created_at).in_hours
67
- end
68
-
69
- def time_to_first_review
70
- return if first_review.blank?
71
-
72
- (first_review.submitted_at - created_at).in_hours
73
- end
74
-
75
- def approval_time
76
- return if first_approval.blank?
77
-
78
- (first_approval.submitted_at - created_at).in_hours
79
- end
80
-
81
- def straight_approval?
82
- reviews.all?(&:approval?)
83
- end
84
-
85
58
  def merged_at
86
59
  extended_data.merged_at
87
60
  end
@@ -118,6 +91,7 @@ module HubLink
118
91
 
119
92
  def fetch_reviews
120
93
  Octokit.pull_request_reviews(repo, number).map do |data|
94
+ data.repo = repo
121
95
  data.pull_request_id = id
122
96
  data.number = number
123
97
  data.submitter = submitter
@@ -6,41 +6,45 @@ module HubLink
6
6
  pull_request_id
7
7
  submitted_at
8
8
  reviewer
9
- approval?
10
9
  reply?
11
10
  state
12
11
  html_url
13
12
  body
13
+ review_comments_count
14
14
  )
15
15
 
16
16
  def reviewer
17
17
  user&.login
18
18
  end
19
19
 
20
- def approval?
21
- state == "APPROVED"
22
- end
23
-
24
20
  def reply?
25
21
  reviewer == submitter
26
22
  end
27
23
 
28
- def submitted?
29
- !draft?
30
- end
31
-
32
24
  def submitted_at
33
25
  if submitted?
34
26
  super
35
27
  end
36
28
  end
37
29
 
30
+ def review_comments_count
31
+ review_comments.size
32
+ end
33
+
38
34
  def to_h
39
35
  Slicer.new(self, columns: EXPORT_COLUMNS).to_h
40
36
  end
41
37
 
42
38
  private
43
39
 
40
+ def review_comments
41
+ @_review_comments ||= Octokit.pull_request_review_comments(repo, number, id)
42
+ end
43
+
44
+ def submitted?
45
+ !draft?
46
+ end
47
+
44
48
  def draft?
45
49
  state == "PENDING"
46
50
  end
@@ -1,4 +1,3 @@
1
- require "pastel"
2
1
  require "hub_link/api/pull_request"
3
2
 
4
3
  module HubLink
@@ -19,39 +18,43 @@ module HubLink
19
18
 
20
19
  def pull_requests
21
20
  log "Fetching pull requests" do
22
- results.map(&:to_h)
21
+ pull_request_results.find_all(&:pull_request?).map(&:to_h)
23
22
  end
24
23
  end
25
24
 
26
25
  def reviews
27
26
  log "Fetching reviews" do
28
- results.flat_map(&:reviews).map(&:to_h)
27
+ pull_request_results.flat_map(&:reviews).map(&:to_h)
29
28
  end
30
29
  end
31
30
 
32
31
  def review_requests
33
32
  log "Fetching review requests" do
34
- results.flat_map(&:review_requests).map(&:to_h)
33
+ pull_request_results.flat_map(&:review_requests).map(&:to_h)
35
34
  end
36
35
  end
37
36
 
38
37
  private
39
38
 
39
+ def pull_request_results
40
+ results.find_all(&:pull_request?)
41
+ end
42
+
40
43
  def results
41
44
  @_results ||= fetch_results
42
45
  end
43
46
 
47
+ def fetch_results
48
+ log "*Getting issues* #{formatted_options}" do
49
+ Api::PullRequest.list(options)
50
+ end
51
+ end
52
+
44
53
  def log(title, &block)
45
54
  logger.info(START) { title }
46
55
 
47
56
  block.call.tap do |results|
48
- logger.info(FINISH) { pastel.green("Found #{results.size}") }
49
- end
50
- end
51
-
52
- def fetch_results
53
- log pastel.bold("Getting PRs: #{formatted_options}") do
54
- Api::PullRequest.list(options)
57
+ logger.info(FINISH) { "Found #{results.size}" }
55
58
  end
56
59
  end
57
60
 
@@ -62,9 +65,5 @@ module HubLink
62
65
  def logger
63
66
  HubLink.logger
64
67
  end
65
-
66
- def pastel
67
- @_pastel ||= Pastel.new
68
- end
69
68
  end
70
69
  end
@@ -6,6 +6,7 @@ require "hub_link/api/logging"
6
6
 
7
7
  module HubLink
8
8
  class Configuration
9
+ RETRY_ON = Faraday::Request::Retry::DEFAULT_EXCEPTIONS + [Octokit::BadGateway, Octokit::TooManyRequests]
9
10
  attr_accessor :logger
10
11
 
11
12
  def initialize
@@ -20,8 +21,8 @@ module HubLink
20
21
 
21
22
  def middleware
22
23
  Faraday::RackBuilder.new do |builder|
24
+ builder.request :retry, exceptions: RETRY_ON
23
25
  builder.use Api::Logging
24
- builder.request :retry
25
26
  builder.use Octokit::Response::RaiseError
26
27
  builder.adapter Faraday.default_adapter
27
28
  end
@@ -1,3 +1,3 @@
1
1
  module HubLink
2
- VERSION = "0.15.0"
2
+ VERSION = "0.18.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hub_link
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Balvig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-02 00:00:00.000000000 Z
11
+ date: 2019-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: pastel
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: bundler
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -161,7 +147,6 @@ files:
161
147
  - lib/hub_link/api_logging.rb
162
148
  - lib/hub_link/batch.rb
163
149
  - lib/hub_link/configuration.rb
164
- - lib/hub_link/core_ext/float.rb
165
150
  - lib/hub_link/importer.rb
166
151
  - lib/hub_link/insert.rb
167
152
  - lib/hub_link/simple_logger.rb
@@ -1,5 +0,0 @@
1
- class Float
2
- def in_hours
3
- (self / 60 / 60).round
4
- end
5
- end