hub_link 0.13.0 → 0.15.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
2
  SHA1:
3
- metadata.gz: d62273454a4669abde1d3907ba432c300459c86b
4
- data.tar.gz: f4241576d1e46588f13929827085ef9691c6cb31
3
+ metadata.gz: 3d6145c12843d700957a88926acba9b90bb56044
4
+ data.tar.gz: 503ddec7c82a283f13c45da8b6f9ad7c2c679314
5
5
  SHA512:
6
- metadata.gz: 50afd523badb77a74b116530b7755b4d1c992e5bf7322e9319c3446ff8b38c3838142720ceb63371a2fcc72ef48673fb868a3b87868d37ad37498cdd0f7c4097
7
- data.tar.gz: aa338de1ba9957f245c45327fa07438f2c25f41bd1474c39062b01c83c65a842ac96f3722014a3c1495a1a4797e4c93dc8ab1d9e4db154ac6091fc2b6ccc50f8
6
+ metadata.gz: 2f1048505951653140943e01bbd4353d8f9400dd15e7b618efdd6943bee6701af483e026188acd10a4c9a577c1844ecc14df9a9b60409e6617ce6ea90efde8a5
7
+ data.tar.gz: d205a888fee916b2017a66248fa31dce76c0ed425cf400a3db118dd0ba4d41fba541864a571db1540ab260aef9f628448acdea211831235d779c569395a4381e
data/hub_link.gemspec CHANGED
@@ -22,6 +22,7 @@ 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"
25
26
 
26
27
  spec.add_development_dependency "bundler", "~> 1.12"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
@@ -0,0 +1,17 @@
1
+ module HubLink
2
+ module Api
3
+ class Logging < Faraday::Response::Middleware
4
+ def call(env)
5
+ message = "#{env[:method].upcase} #{env[:url]}".sub("https://api.github.com/repos", "")
6
+ logger.info(UPDATE) { message }
7
+ super
8
+ end
9
+
10
+ private
11
+
12
+ def logger
13
+ HubLink.logger
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,4 +1,3 @@
1
- require "octokit"
2
1
  require "hub_link/core_ext/float"
3
2
  require "hub_link/api/review"
4
3
  require "hub_link/api/review_request"
@@ -1,3 +1,6 @@
1
+ require "pastel"
2
+ require "hub_link/api/pull_request"
3
+
1
4
  module HubLink
2
5
  class Batch
3
6
  attr_reader :options
@@ -42,18 +45,26 @@ module HubLink
42
45
  logger.info(START) { title }
43
46
 
44
47
  block.call.tap do |results|
45
- logger.info(FINISH) { "Found #{results.size}" }
48
+ logger.info(FINISH) { pastel.green("Found #{results.size}") }
46
49
  end
47
50
  end
48
51
 
49
52
  def fetch_results
50
- log "Getting page: #{options.values.join(', ')}" do
53
+ log pastel.bold("Getting PRs: #{formatted_options}") do
51
54
  Api::PullRequest.list(options)
52
55
  end
53
56
  end
54
57
 
58
+ def formatted_options
59
+ options.values.join(", ")
60
+ end
61
+
55
62
  def logger
56
63
  HubLink.logger
57
64
  end
65
+
66
+ def pastel
67
+ @_pastel ||= Pastel.new
68
+ end
58
69
  end
59
70
  end
@@ -1,8 +1,8 @@
1
+ require "octokit"
1
2
  require "faraday_middleware"
2
3
  require "active_support"
3
4
  require "hub_link/simple_logger"
4
- require "hub_link/api_logging"
5
-
5
+ require "hub_link/api/logging"
6
6
 
7
7
  module HubLink
8
8
  class Configuration
@@ -20,7 +20,7 @@ module HubLink
20
20
 
21
21
  def middleware
22
22
  Faraday::RackBuilder.new do |builder|
23
- builder.use ApiLogging
23
+ builder.use Api::Logging
24
24
  builder.request :retry
25
25
  builder.use Octokit::Response::RaiseError
26
26
  builder.adapter Faraday.default_adapter
@@ -1,4 +1,3 @@
1
- require "hub_link"
2
1
  require "hub_link/insert"
3
2
 
4
3
  module HubLink
@@ -15,7 +14,6 @@ module HubLink
15
14
 
16
15
  def run
17
16
  stream.in_batches do |batch|
18
-
19
17
  resources.each do |source, target|
20
18
  import batch.fetch(source), to: target
21
19
  end
@@ -26,21 +24,14 @@ module HubLink
26
24
 
27
25
  attr_reader :repo, :since, :resources
28
26
 
29
- def import(records, to:)
30
- logger.info(START) { "Storing #{records.size} record(s) " }
31
-
32
- records.each do |row|
33
- Insert.new(row: row, target: to).run
34
- end
35
- logger.info(FINISH) { "Total: #{to.count}" }
36
- end
37
-
38
27
  def stream
39
28
  @_stream ||= Stream.new(repo, since: since)
40
29
  end
41
30
 
42
- def logger
43
- HubLink.logger
31
+ def import(records, to:)
32
+ records.each do |row|
33
+ Insert.new(row: row, target: to).run
34
+ end
44
35
  end
45
36
  end
46
37
  end
@@ -1,7 +1,5 @@
1
1
  module HubLink
2
2
  class Insert
3
- delegate :primary_key, to: :target
4
-
5
3
  def initialize(row:, target:)
6
4
  @row = row
7
5
  @target = target
@@ -21,6 +19,10 @@ module HubLink
21
19
  row[primary_key]
22
20
  end
23
21
 
22
+ def primary_key
23
+ target.primary_key
24
+ end
25
+
24
26
  def importable_attributes
25
27
  row.slice(*target_columns)
26
28
  end
@@ -2,7 +2,7 @@ module HubLink
2
2
  class SimpleLogger < SimpleDelegator
3
3
  def initialize(output = "hub_link.log")
4
4
  logger = Logger.new(output)
5
- logger.formatter = ->(_, datetime, _, msg) { "#{datetime.to_s(:db)} - #{msg}\n" }
5
+ logger.formatter = ->(_, datetime, _, msg) { "#{datetime} - #{msg}\n" }
6
6
  __setobj__(logger)
7
7
  end
8
8
  end
@@ -1,4 +1,3 @@
1
- require "hub_link/api/pull_request"
2
1
  require "hub_link/batch"
3
2
 
4
3
  module HubLink
@@ -1,3 +1,3 @@
1
1
  module HubLink
2
- VERSION = "0.13.0"
2
+ VERSION = "0.15.0"
3
3
  end
data/lib/hub_link.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "dotenv/load"
2
2
  require "hub_link/configuration"
3
3
  require "hub_link/stream"
4
+ require "hub_link/importer"
4
5
  require "hub_link/version"
5
6
 
6
7
  module HubLink
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hub_link
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Balvig
@@ -66,6 +66,20 @@ 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'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -140,6 +154,7 @@ files:
140
154
  - bin/setup
141
155
  - hub_link.gemspec
142
156
  - lib/hub_link.rb
157
+ - lib/hub_link/api/logging.rb
143
158
  - lib/hub_link/api/pull_request.rb
144
159
  - lib/hub_link/api/review.rb
145
160
  - lib/hub_link/api/review_request.rb