hrw 0.1.0 → 0.2.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
  SHA256:
3
- metadata.gz: 670978eb8167255d8fbe62416a0a4b2bc8915074b34e4c4cc75091d2cc6cd3d3
4
- data.tar.gz: 26d18f588f3145076d70d7ba2bac78badcb35169a16e2c8af917ac8299bb0238
3
+ metadata.gz: 8fe6651b90c24ea35a9d817ec3b8d7ec647a948b152ce4680bdc05ae5c064278
4
+ data.tar.gz: 73c5dee0d9cb315cb836047b11d6ea08071c26201589bd308e8eada78f6bf68a
5
5
  SHA512:
6
- metadata.gz: d0b77d983c3036917919aac670ed757c7660de56bd151f3141b83227a5afa5e391e765dbbef7676b5ddbe60602f78707db86e2ca6aed0f29e53c51478a311ddd
7
- data.tar.gz: 28ad93ca22a29c4239f76b609a6a077878a563e93bf84a3b390a3178d2bbd045ab2659b1880794269435ef0999aba2c8037f8c13c36602b85319a190c26217e2
6
+ metadata.gz: 1e216592af1cd152ecca7f5c4a69c8d23abb7bf29be8f599f01068583e8c18664885fe15df21a9024a0e80b8a7458a94aedab98eb6afa6d921b0c0c5e78e8b88
7
+ data.tar.gz: 14406bff727ff378ef77d2f231bd4f11165be7266e3c526cc46e42498d91aff82e9a174e790ee783bdb9e290721142086ad56d9b668e9b57ce74705b4b0b3ef7
data/.gitignore CHANGED
@@ -11,3 +11,4 @@
11
11
  .rspec_status
12
12
 
13
13
  .idea
14
+ *.gem
data/Gemfile.lock ADDED
@@ -0,0 +1,65 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ hrw (0.1.0)
5
+ http (~> 4.1, >= 4.1.1)
6
+ pry-byebug (~> 3.7)
7
+ rainbow (~> 3.0)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ addressable (2.6.0)
13
+ public_suffix (>= 2.0.2, < 4.0)
14
+ byebug (11.0.1)
15
+ coderay (1.1.2)
16
+ diff-lcs (1.3)
17
+ domain_name (0.5.20180417)
18
+ unf (>= 0.0.5, < 1.0.0)
19
+ http (4.1.1)
20
+ addressable (~> 2.3)
21
+ http-cookie (~> 1.0)
22
+ http-form_data (~> 2.0)
23
+ http_parser.rb (~> 0.6.0)
24
+ http-cookie (1.0.3)
25
+ domain_name (~> 0.5)
26
+ http-form_data (2.1.1)
27
+ http_parser.rb (0.6.0)
28
+ method_source (0.9.2)
29
+ pry (0.12.2)
30
+ coderay (~> 1.1.0)
31
+ method_source (~> 0.9.0)
32
+ pry-byebug (3.7.0)
33
+ byebug (~> 11.0)
34
+ pry (~> 0.10)
35
+ public_suffix (3.0.3)
36
+ rainbow (3.0.0)
37
+ rake (10.5.0)
38
+ rspec (3.8.0)
39
+ rspec-core (~> 3.8.0)
40
+ rspec-expectations (~> 3.8.0)
41
+ rspec-mocks (~> 3.8.0)
42
+ rspec-core (3.8.0)
43
+ rspec-support (~> 3.8.0)
44
+ rspec-expectations (3.8.2)
45
+ diff-lcs (>= 1.2.0, < 2.0)
46
+ rspec-support (~> 3.8.0)
47
+ rspec-mocks (3.8.0)
48
+ diff-lcs (>= 1.2.0, < 2.0)
49
+ rspec-support (~> 3.8.0)
50
+ rspec-support (3.8.0)
51
+ unf (0.1.4)
52
+ unf_ext
53
+ unf_ext (0.0.7.5)
54
+
55
+ PLATFORMS
56
+ ruby
57
+
58
+ DEPENDENCIES
59
+ bundler (~> 2.0)
60
+ hrw!
61
+ rake (~> 10.0)
62
+ rspec (~> 3.0)
63
+
64
+ BUNDLED WITH
65
+ 2.0.1
data/exe/hrw CHANGED
@@ -23,23 +23,17 @@ if options.url.nil?
23
23
  end
24
24
  end
25
25
 
26
- begin
27
- scanner = Hrw::Detector.detect
28
- specs = scanner.scan
26
+ scanner = Hrw::Detector.detect
27
+ specs = scanner.scan
29
28
 
30
- api = Hrw::API.new(options.url)
31
- hash = api.submit(specs)
32
- result = api.retrieve(hash)
29
+ api = Hrw::API.new(options.url)
30
+ hash = api.submit(specs)
31
+ result = api.retrieve(hash)
33
32
 
34
- formatter = Hrw::Formatter.new
35
- vulnerable_deps = formatter.format(result)
33
+ formatter = Hrw::Formatter.new
34
+ vulnerable_deps = formatter.format(result)
36
35
 
37
- unless vulnerable_deps.empty?
38
- formatter.print_vulnerable_deps(vulnerable_deps)
39
- exit(1)
40
- end
41
- rescue StandardError => ex
42
- require 'pry-byebug'
43
- binding.pry
44
- puts ex.message
45
- end
36
+ unless vulnerable_deps.empty?
37
+ formatter.print_vulnerable_deps(vulnerable_deps)
38
+ exit(1)
39
+ end
data/hrw.gemspec CHANGED
@@ -29,5 +29,4 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  spec.add_runtime_dependency 'http', '~> 4.1', '>= 4.1.1'
31
31
  spec.add_runtime_dependency 'rainbow', '~> 3.0'
32
- spec.add_runtime_dependency 'pry-byebug', '~> 3.7'
33
32
  end
data/lib/hrw/detector.rb CHANGED
@@ -14,7 +14,8 @@ module Hrw
14
14
  # Constants
15
15
  #
16
16
  DETECTABLE_FILES = {
17
- 'Gemfile.lock': Scanner::Gemfile
17
+ 'Gemfile.lock': Scanner::Gemfile,
18
+ 'Pipfile.lock': Scanner::Pipfile
18
19
  }.freeze
19
20
 
20
21
  # Detect package manager in root dir
data/lib/hrw/formatter.rb CHANGED
@@ -7,6 +7,7 @@ require 'json'
7
7
  # Third-party libraries
8
8
  #
9
9
  require 'rainbow'
10
+ require 'rainbow/ext/string'
10
11
 
11
12
  module Hrw
12
13
  #
@@ -41,7 +42,7 @@ module Hrw
41
42
  puts "Advisory: #{vuln['name']}"
42
43
  puts "Severity: #{vuln['severity']}"
43
44
  puts "Link: #{vuln['link']}"
44
- puts "Patched version: #{patched_version['spec'].join(', ')}"
45
+ puts "Patched: #{patched_version['spec'].join(', ')}"
45
46
  puts
46
47
  end
47
48
  end
@@ -0,0 +1,37 @@
1
+ require 'json'
2
+
3
+ module Hrw
4
+ module Scanner
5
+ #
6
+ # Used to scan gem lock file
7
+ #
8
+ class Pipfile
9
+ # Class constructor
10
+ #
11
+ # @param [String] root The path to the project root
12
+ # @param [String] lockfile
13
+ # The name for the lock file, default is `Pipfile.lock`
14
+ def initialize(root = Dir.pwd, lockfile = 'Pipfile.lock')
15
+ @root = root
16
+ @lockfile = lockfile
17
+ end
18
+
19
+ # Scan the lock file
20
+ # @return [Hash] Dependencies
21
+ def scan
22
+ deps = []
23
+
24
+ lock = JSON.parse(File.read(File.join(@root, @lockfile)))
25
+ lock['default'].each_pair do |name, info|
26
+ deps << {
27
+ name: name,
28
+ version: info['version']
29
+ }
30
+ end
31
+
32
+ deps
33
+ end
34
+
35
+ end
36
+ end
37
+ end
data/lib/hrw/scanner.rb CHANGED
@@ -4,5 +4,6 @@ module Hrw
4
4
  #
5
5
  module Scanner
6
6
  require 'hrw/scanner/gemfile'
7
+ require 'hrw/scanner/pipfile'
7
8
  end
8
9
  end
data/lib/hrw/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hrw
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hrw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - hi_ztz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-28 00:00:00.000000000 Z
11
+ date: 2019-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,20 +86,6 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: '3.0'
89
- - !ruby/object:Gem::Dependency
90
- name: pry-byebug
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '3.7'
96
- type: :runtime
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '3.7'
103
89
  description: Hrw helps you to secure your ruby apps.
104
90
  email:
105
91
  - hi_ztz@protonmail.com
@@ -112,6 +98,7 @@ files:
112
98
  - ".rspec"
113
99
  - ".travis.yml"
114
100
  - Gemfile
101
+ - Gemfile.lock
115
102
  - LICENSE.txt
116
103
  - README.md
117
104
  - Rakefile
@@ -125,6 +112,7 @@ files:
125
112
  - lib/hrw/formatter.rb
126
113
  - lib/hrw/scanner.rb
127
114
  - lib/hrw/scanner/gemfile.rb
115
+ - lib/hrw/scanner/pipfile.rb
128
116
  - lib/hrw/version.rb
129
117
  homepage: https://github.com/zt2/hrw
130
118
  licenses: