overrides_tracker 0.1.2 → 0.1.3

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
  SHA256:
3
- metadata.gz: de906983bd67adacd693b79f6171a0a3926b55e50938914c3edb552fd9fccdda
4
- data.tar.gz: ade3eb37f8c485ac26e3d3b5f1c35429ebf66b8c889400f605625d21f0e59231
3
+ metadata.gz: 70dce7004599affb475e97520917e99a53d822334e91a2903a3e7a5f6ade2cdd
4
+ data.tar.gz: c90fe3480fb060b39a2432e2eec2ec7241b975366fca01642b412183d84154ab
5
5
  SHA512:
6
- metadata.gz: abf5002371dffaeebceec5accf867ee11112d70b8e394136246c7ec4cee42d5ed2ea672e4f7f165fd1338bf174463fffd4e101582b83137bc38d26bb0e3585ac
7
- data.tar.gz: 22869fe1494e6098e5f3cecbd055873cd81f65edb8f22f7f1e298a95b3e3b8901ebfac0f93be6dbdce73bb99128ac1fa9db08306f18cbb35a528f2b9d5713ea7
6
+ metadata.gz: 401d480227c2b3dce23c37fc769c06c9ae759c94ffbe72cefcb2bf5c6b60d7964ff3a289e69cbc47ebebced807261b5c6a5a3893603adfd0880a79bf90384156
7
+ data.tar.gz: fd825cfd85fdfb163a0d3ff5bc31268cf290cc83daf6d414e54ea43e9505ef7cdaa9f4dc49f9a299f61e73126070b0a5de9877b831298da73230ca9499b266c7
data/Gemfile CHANGED
@@ -4,3 +4,11 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in overrides_tracker.gemspec
6
6
  gemspec
7
+
8
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9')
9
+ gem 'vcr', '~> 2.9'
10
+ gem 'webmock', '~> 1.20'
11
+ else
12
+ gem 'vcr', '>= 2.9'
13
+ gem 'webmock', '>= 1.20'
14
+ end
@@ -7,7 +7,34 @@ if ARGV[0] == "track"
7
7
  require 'overrides_tracker'
8
8
  OverridesTracker::MethodsCollector.instance.save_to_file
9
9
 
10
+ if ENV['OVERRIDES_API_TOKEN']
11
+ OverridesTracker::MethodsCollector.instance.report(ENV['OVERRIDES_API_TOKEN'])
12
+ elsif !ARGV[1].nil?
13
+ OverridesTracker::MethodsCollector.instance.report(ARGV[1])
14
+ else
15
+ #puts 'No OVERRIDES_API_TOKEN was set. The report will not be uploaded to overrides.io.'
16
+ #puts ''
17
+ #puts 'Have no idea what overrides.io is about? Check it out at https://www.overrides.com'
18
+ end
19
+
10
20
  elsif ARGV[0] == "compare"
11
21
  require 'overrides_tracker'
12
22
  OverridesTracker::Comparer.compare
23
+
24
+ unless ENV['OVERRIDES_API_TOKEN']
25
+ puts ''
26
+ #puts 'Have you heard of overrides.io?'
27
+ #puts 'It integrates with your CI pipeline and notifies you whenever original methods are changing or disappearing.'
28
+ #puts 'Check it out at https://www.overrides.com'
29
+ end
30
+ elsif ARGV[0] == "report"
31
+ require 'overrides_tracker'
32
+
33
+ if ENV['OVERRIDES_API_TOKEN']
34
+ OverridesTracker::MethodsCollector.instance.report(ENV['OVERRIDES_API_TOKEN'])
35
+ elsif !ARGV[1].nil?
36
+ OverridesTracker::MethodsCollector.instance.report(ARGV[1])
37
+ else
38
+ puts 'No OVERRIDES_API_TOKEN was set. The report will not be uploaded to overrides.io.'
39
+ end
13
40
  end
@@ -0,0 +1,66 @@
1
+ require 'json'
2
+ require 'net/https'
3
+
4
+ class OverridesTracker::Api
5
+
6
+ API_HOST = ENV['OVERRIDES_TRACKER_DEVELOPMENT'] ? "localhost:3000" : "overrides.io"
7
+ API_PROTOCOL = ENV['OVERRIDES_TRACKER_DEVELOPMENT'] ? "http" : "https"
8
+ API_DOMAIN = "#{API_PROTOCOL}://#{API_HOST}"
9
+
10
+ API_BASE = "#{API_DOMAIN}/api/v1"
11
+
12
+ def self.report_build(api_token, branch_name, last_commit_id, last_commit_name, file_path)
13
+
14
+ disable_net_blockers!
15
+
16
+ uri = URI(API_DOMAIN)
17
+ client = build_client(uri)
18
+
19
+ request = Net::HTTP::Post.new('/api/v1/builds')
20
+ form_data = [['api_token',api_token], ['branch_name', branch_name],['build_provider_id', last_commit_id], ['build_name', last_commit_name], ['result_file', File.open(file_path)]]
21
+ request.set_form form_data, 'multipart/form-data'
22
+
23
+ puts ' '
24
+ puts '==========='
25
+ puts 'Sending report to Overrides.io...'
26
+
27
+ begin
28
+ response = client.request(request)
29
+ response_hash = JSON.load(response.body.to_str)
30
+ puts 'Success.'.green
31
+ rescue SocketError => each
32
+ puts 'Failed to report to the Overrides API.'.red
33
+ end
34
+ end
35
+
36
+
37
+ def self.build_client(uri)
38
+ client = Net::HTTP.new(uri.host, uri.port)
39
+ client.use_ssl = true if uri.port == 443
40
+ client.verify_mode = OpenSSL::SSL::VERIFY_NONE
41
+
42
+
43
+ client
44
+ end
45
+
46
+ private
47
+
48
+ def self.disable_net_blockers!
49
+ begin
50
+ require 'webmock'
51
+
52
+ allow = WebMock::Config.instance.allow || []
53
+ WebMock::Config.instance.allow = [*allow].push API_HOST
54
+ rescue LoadError
55
+ end
56
+
57
+ begin
58
+ require 'vcr'
59
+
60
+ VCR.send(VCR.version.major < 2 ? :config : :configure) do |c|
61
+ c.ignore_hosts API_HOST
62
+ end
63
+ rescue LoadError
64
+ end
65
+ end
66
+ end
@@ -6,7 +6,6 @@ class OverridesTracker::MethodsCollector
6
6
  @overridden_methods_collection = {}
7
7
 
8
8
  private_class_method :new
9
-
10
9
  def self.instance
11
10
  @instance
12
11
  end
@@ -93,7 +92,11 @@ class OverridesTracker::MethodsCollector
93
92
  puts '==========='
94
93
  puts "Report saved to #{path_to_report_file}."
95
94
  end
96
-
95
+
96
+ def report(api_token)
97
+ OverridesTracker::Api.report_build(api_token, branch_name_to_report, last_commit_id, last_commit_name_to_report, path_to_report_file)
98
+ end
99
+
97
100
  private
98
101
 
99
102
  def methods_collection(class_name)
@@ -117,14 +120,23 @@ class OverridesTracker::MethodsCollector
117
120
  branch.downcase.gsub('/','_').gsub(/\s+/, "")
118
121
  end
119
122
 
123
+ def branch_name_to_report
124
+ branch = `git rev-parse --abbrev-ref HEAD`
125
+ branch.gsub(/\s+/, "")
126
+ end
127
+
120
128
  def last_commit_id
121
129
  commit_id = `git log --format="%H" -n 1`
122
130
  commit_id.gsub(/\s+/, "")
123
131
  end
124
132
 
125
133
  def last_commit_name
126
- commit_id = `git log --format="%s" -n 1`
127
- commit_id.gsub(/\s+/, "")
134
+ commit_name = `git log --format="%s" -n 1`
135
+ commit_name.gsub(/\s+/, "")
136
+ end
137
+
138
+ def last_commit_name_to_report
139
+ commit_name = `git log --format="%s" -n 1`
128
140
  end
129
141
 
130
142
  def path_to_report_file
@@ -1,3 +1,3 @@
1
1
  module OverridesTracker
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -8,6 +8,7 @@ require "overrides_tracker/methods_collector"
8
8
  require "overrides_tracker/file_observer"
9
9
  require "overrides_tracker/util"
10
10
  require "overrides_tracker/comparer"
11
+ require "overrides_tracker/api"
11
12
 
12
13
 
13
14
  module OverridesTracker
@@ -38,8 +38,5 @@ Gem::Specification.new do |spec|
38
38
  spec.executables = ['overrides_tracker']
39
39
  spec.require_paths = ["lib"]
40
40
 
41
- spec.add_development_dependency "bundler", "~> 1.17"
42
- spec.add_development_dependency "rake", "~> 10.0"
43
- spec.add_development_dependency "rspec", "~> 3.0"
44
41
  spec.add_dependency "method_source"
45
42
  end
metadata CHANGED
@@ -1,57 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: overrides_tracker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Meyborg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-26 00:00:00.000000000 Z
11
+ date: 2022-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.17'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.17'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
55
13
  - !ruby/object:Gem::Dependency
56
14
  name: method_source
57
15
  requirement: !ruby/object:Gem::Requirement
@@ -89,6 +47,7 @@ files:
89
47
  - bin/overrides_tracker
90
48
  - bin/setup
91
49
  - lib/overrides_tracker.rb
50
+ - lib/overrides_tracker/api.rb
92
51
  - lib/overrides_tracker/comparer.rb
93
52
  - lib/overrides_tracker/file_observer.rb
94
53
  - lib/overrides_tracker/methods_collector.rb