overrides_tracker 0.1.2 → 0.1.4
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 +29 -6
- 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: 22c40f48f04af34f145bc26c68acf9ebc52913bb814f21dd1a98cd687c61237c
|
4
|
+
data.tar.gz: 2b50d662098bdeb7cd06597ff674ee82f9b1e69d2dc181e2e8a782578afe391c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50a5c5811f4511385fc0e564c6bfe0c12d40e764bd1eb7af84ddd3057adfa1ed2b1df17af2e1fc7aa032a17956aafeb76473591312aa366ccca9695c60080d4b
|
7
|
+
data.tar.gz: ebda84d5c5c899deb6fc323e28a3c74e513471839741cf77a64d8656ad56a325e9449cb500b09ed39781f6b3bb760de25fa29a2a2ba94e19209701491d748b8c
|
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
|
@@ -77,7 +76,8 @@ class OverridesTracker::MethodsCollector
|
|
77
76
|
data = nil
|
78
77
|
begin
|
79
78
|
File.open(file_path) do |f|
|
80
|
-
|
79
|
+
file_data = JSON.parse(f.read)
|
80
|
+
data = file_data['overridden_methods'] != nil ? file_data['overridden_methods'] : file_data
|
81
81
|
end
|
82
82
|
rescue
|
83
83
|
puts "Error processing #{file_path}"
|
@@ -86,14 +86,28 @@ class OverridesTracker::MethodsCollector
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def save_to_file
|
89
|
+
|
90
|
+
file_data = {}
|
91
|
+
file_data[:version] = OverridesTracker::VERSION
|
92
|
+
file_data[:branch_name] = branch_name
|
93
|
+
file_data[:branch_name_to_report] = branch_name_to_report
|
94
|
+
file_data[:last_commit_id] = last_commit_id
|
95
|
+
file_data[:last_commit_name] = last_commit_name
|
96
|
+
file_data[:last_commit_name_to_report] = last_commit_name_to_report
|
97
|
+
file_data[:overridden_methods] = @overridden_methods_collection
|
98
|
+
|
89
99
|
File.open(path_to_report_file, "w") do |f|
|
90
|
-
f <<
|
100
|
+
f << file_data.to_json
|
91
101
|
end
|
92
102
|
puts ' '
|
93
103
|
puts '==========='
|
94
104
|
puts "Report saved to #{path_to_report_file}."
|
95
105
|
end
|
96
|
-
|
106
|
+
|
107
|
+
def report(api_token)
|
108
|
+
OverridesTracker::Api.report_build(api_token, branch_name_to_report, last_commit_id, last_commit_name_to_report, path_to_report_file)
|
109
|
+
end
|
110
|
+
|
97
111
|
private
|
98
112
|
|
99
113
|
def methods_collection(class_name)
|
@@ -117,14 +131,23 @@ class OverridesTracker::MethodsCollector
|
|
117
131
|
branch.downcase.gsub('/','_').gsub(/\s+/, "")
|
118
132
|
end
|
119
133
|
|
134
|
+
def branch_name_to_report
|
135
|
+
branch = `git rev-parse --abbrev-ref HEAD`
|
136
|
+
branch.gsub(/\s+/, "")
|
137
|
+
end
|
138
|
+
|
120
139
|
def last_commit_id
|
121
140
|
commit_id = `git log --format="%H" -n 1`
|
122
141
|
commit_id.gsub(/\s+/, "")
|
123
142
|
end
|
124
143
|
|
125
144
|
def last_commit_name
|
126
|
-
|
127
|
-
|
145
|
+
commit_name = `git log --format="%s" -n 1`
|
146
|
+
commit_name.gsub(/\s+/, "")
|
147
|
+
end
|
148
|
+
|
149
|
+
def last_commit_name_to_report
|
150
|
+
commit_name = `git log --format="%s" -n 1`
|
128
151
|
end
|
129
152
|
|
130
153
|
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.4
|
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
|