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 +4 -4
- data/Gemfile +8 -0
- data/bin/overrides_tracker +27 -0
- data/lib/overrides_tracker/api.rb +66 -0
- data/lib/overrides_tracker/methods_collector.rb +16 -4
- data/lib/overrides_tracker/version.rb +1 -1
- data/lib/overrides_tracker.rb +1 -0
- data/overrides_tracker.gemspec +0 -3
- metadata +3 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70dce7004599affb475e97520917e99a53d822334e91a2903a3e7a5f6ade2cdd
|
4
|
+
data.tar.gz: c90fe3480fb060b39a2432e2eec2ec7241b975366fca01642b412183d84154ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/bin/overrides_tracker
CHANGED
@@ -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
|
-
|
127
|
-
|
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
|
data/lib/overrides_tracker.rb
CHANGED
data/overrides_tracker.gemspec
CHANGED
@@ -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.
|
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-
|
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
|