nvd_feed_api 0.3.1 → 0.4.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: 158649a33021b95393055afc6861185443aeae4665cc6acd86814f29a866d8f0
4
- data.tar.gz: 75ca47cdcece6352581ed8ddfe9339ce393e48199ba4c895e6e49e05e959b08b
3
+ metadata.gz: d03fa81fd296a62aba7a9356b3c41135851febb254af4db13758c5b76475739f
4
+ data.tar.gz: c0d716121dccaeaee6944ccd3e0d85cf59854084ae68d0f7347fb678dc4760bf
5
5
  SHA512:
6
- metadata.gz: 66c08b3167c12da6168331f84caa557d945ebb16c76e565cefa6ac44c7960e5eb8bae840a2231c16d2cc9ef982bd13eb9b68289dff66dbee4af0c115a45e20f4
7
- data.tar.gz: 2729e066d04f9f29e9fd3fbd76c88cb3c208c2a82eab331e3202fca9a42a7f658d7645f7d3c17f5df770c54b1eb8e084b611f6e23eefab90c7e4cada90e114f0
6
+ metadata.gz: b5bef50a5709e8bd53a138110e80f6a5ee34d02f5849e1a3d9add0c9573e963926adbdf6eeb610b75d04d25d285b4450b8e99aa724582d382ed072ef46c89a8a
7
+ data.tar.gz: 7be0a9191d6efb0e7a80e7a868d8d019186268008473e3e731fe9e4e3e1d21b85b7cc6189c912d5315495dbb12dbaaa688ca077823ba844a01d91b11696ae954
@@ -0,0 +1,3 @@
1
+ github: noraj
2
+ issuehunt: noraj
3
+ ko_fi: noraj
data/.gitlab-ci.yml CHANGED
@@ -25,25 +25,17 @@ before_script:
25
25
  - bundle exec rubocop
26
26
  - bundle exec rake test
27
27
 
28
- test:2.4:
29
- <<: *job_definition
30
- image: ruby:2.4-alpine
31
-
32
- test:2.5:
33
- <<: *job_definition
34
- image: ruby:2.5-alpine
35
-
36
- test:2.6:
37
- <<: *job_definition
38
- image: ruby:2.6-alpine
28
+ #test:2.4:
29
+ # <<: *job_definition
30
+ # image: ruby:2.4-alpine
39
31
 
40
- test:2.7:
32
+ test:3.1:
41
33
  <<: *job_definition
42
- image: ruby:2.7-alpine
34
+ image: ruby:3.1-alpine
43
35
 
44
36
  pages:
45
37
  stage: deploy
46
- image: ruby:2.4-alpine
38
+ image: ruby:3.1-alpine
47
39
  script:
48
40
  - bundle exec yard doc
49
41
  - mkdir public
data/.rubocop.yml CHANGED
@@ -25,7 +25,7 @@ Metrics/ClassLength:
25
25
  Enabled: false
26
26
 
27
27
  Metrics/CyclomaticComplexity:
28
- Max: 20
28
+ Max: 25
29
29
 
30
30
  Metrics/MethodLength:
31
31
  Max: 100
@@ -39,6 +39,9 @@ Naming/VariableName:
39
39
  Security/JSONLoad:
40
40
  Enabled: false
41
41
 
42
+ Style/CaseLikeIf:
43
+ Enabled: true
44
+
42
45
  Style/FrozenStringLiteralComment:
43
46
  EnforcedStyle: never
44
47
 
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 2.7.1
1
+ ruby 3.1.0
data/.yardopts CHANGED
@@ -1,6 +1,8 @@
1
1
  --protected
2
2
  --private
3
3
  --output-dir doc/
4
+ --markup markdown
5
+ --markup-provider commonmarker
4
6
  -
5
7
  --main README.md
6
8
  LICENSE.txt
data/Gemfile CHANGED
@@ -1,4 +1,27 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in .gemspec
4
3
  gemspec
4
+
5
+ group :runtime, :cli do
6
+ gem 'archive-zip', '~> 0.11'
7
+ gem 'nokogiri', '~> 1.11'
8
+ gem 'oj', '>= 3.7.8', '<4'
9
+ end
10
+
11
+ group :development, :install do
12
+ gem 'bundler', '~> 2.1'
13
+ end
14
+
15
+ group :development, :test do
16
+ gem 'minitest', '~> 5.12'
17
+ gem 'rake', '~> 13.0'
18
+ end
19
+
20
+ group :development, :lint do
21
+ gem 'rubocop', '~> 1.23'
22
+ end
23
+
24
+ group :development, :docs do
25
+ gem 'commonmarker', '~> 0.21' # for markdown support in YARD
26
+ gem 'yard', ['>= 0.9.27', '< 0.10']
27
+ end
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nvd_feed_api (0.3.1)
4
+ nvd_feed_api (0.4.0)
5
5
  archive-zip (~> 0.11)
6
- nokogiri (~> 1.10)
6
+ nokogiri (~> 1.11)
7
7
  oj (>= 3.7.8, < 4)
8
8
 
9
9
  GEM
@@ -11,57 +11,54 @@ GEM
11
11
  specs:
12
12
  archive-zip (0.12.0)
13
13
  io-like (~> 0.3.0)
14
- ast (2.4.1)
15
- commonmarker (0.21.0)
16
- ruby-enum (~> 0.5)
17
- concurrent-ruby (1.1.7)
18
- github-markup (3.0.4)
19
- i18n (1.8.5)
20
- concurrent-ruby (~> 1.0)
14
+ ast (2.4.2)
15
+ commonmarker (0.23.2)
21
16
  io-like (0.3.1)
22
- mini_portile2 (2.4.0)
23
- minitest (5.14.2)
24
- nokogiri (1.10.10)
25
- mini_portile2 (~> 2.4.0)
26
- oj (3.10.14)
27
- parallel (1.19.2)
28
- parser (2.7.1.5)
17
+ mini_portile2 (2.7.1)
18
+ minitest (5.15.0)
19
+ nokogiri (1.13.1)
20
+ mini_portile2 (~> 2.7.0)
21
+ racc (~> 1.4)
22
+ oj (3.13.10)
23
+ parallel (1.21.0)
24
+ parser (3.0.3.2)
29
25
  ast (~> 2.4.1)
26
+ racc (1.6.0)
30
27
  rainbow (3.0.0)
31
- rake (13.0.1)
32
- redcarpet (3.5.0)
33
- regexp_parser (1.8.1)
34
- rexml (3.2.4)
35
- rubocop (0.92.0)
28
+ rake (13.0.6)
29
+ regexp_parser (2.2.0)
30
+ rexml (3.2.5)
31
+ rubocop (1.24.1)
36
32
  parallel (~> 1.10)
37
- parser (>= 2.7.1.5)
33
+ parser (>= 3.0.0.0)
38
34
  rainbow (>= 2.2.2, < 4.0)
39
- regexp_parser (>= 1.7)
35
+ regexp_parser (>= 1.8, < 3.0)
40
36
  rexml
41
- rubocop-ast (>= 0.5.0)
37
+ rubocop-ast (>= 1.15.1, < 2.0)
42
38
  ruby-progressbar (~> 1.7)
43
- unicode-display_width (>= 1.4.0, < 2.0)
44
- rubocop-ast (0.7.1)
45
- parser (>= 2.7.1.5)
46
- ruby-enum (0.8.0)
47
- i18n
48
- ruby-progressbar (1.10.1)
49
- unicode-display_width (1.7.0)
50
- yard (0.9.25)
39
+ unicode-display_width (>= 1.4.0, < 3.0)
40
+ rubocop-ast (1.15.1)
41
+ parser (>= 3.0.1.1)
42
+ ruby-progressbar (1.11.0)
43
+ unicode-display_width (2.1.0)
44
+ webrick (1.7.0)
45
+ yard (0.9.27)
46
+ webrick (~> 1.7.0)
51
47
 
52
48
  PLATFORMS
53
49
  ruby
54
50
 
55
51
  DEPENDENCIES
52
+ archive-zip (~> 0.11)
56
53
  bundler (~> 2.1)
57
54
  commonmarker (~> 0.21)
58
- github-markup (~> 3.0)
59
- minitest (~> 5.14)
55
+ minitest (~> 5.12)
56
+ nokogiri (~> 1.11)
60
57
  nvd_feed_api!
58
+ oj (>= 3.7.8, < 4)
61
59
  rake (~> 13.0)
62
- redcarpet (~> 3.5)
63
- rubocop (~> 0.92)
64
- yard (~> 0.9)
60
+ rubocop (~> 1.23)
61
+ yard (>= 0.9.27, < 0.10)
65
62
 
66
63
  BUNDLED WITH
67
- 2.1.4
64
+ 2.3.6
@@ -13,7 +13,7 @@ class NVDFeedScraper
13
13
  class Feed
14
14
  class << self
15
15
  # Get / set default feed storage location, where will be stored JSON feeds and archives by default.
16
- # @return [String] default feed storage location. Default to +/tmp/+.
16
+ # @return [String] default feed storage location. Default to `/tmp/`.
17
17
  # @example
18
18
  # NVDFeedScraper::Feed.default_storage_location = '/srv/downloads/'
19
19
  attr_accessor :default_storage_location
@@ -69,11 +69,11 @@ class NVDFeedScraper
69
69
  # f.json_file # => "/tmp/nvdcve-1.0-2014.json"
70
70
  attr_reader :json_file
71
71
 
72
- # @return [String] the type of the feed, should always be +CVE+.
72
+ # @return [String] the type of the feed, should always be `CVE`.
73
73
  # @note Return nil if not previously loaded by {#json_pull}.
74
74
  attr_reader :data_type
75
75
 
76
- # @return [String] the format of the feed, should always be +MITRE+.
76
+ # @return [String] the format of the feed, should always be `MITRE`.
77
77
  # @note Return nil if not previously loaded by {#json_pull}.
78
78
  attr_reader :data_format
79
79
 
@@ -96,7 +96,7 @@ class NVDFeedScraper
96
96
  # @param gz_url [String] see {#gz_url}.
97
97
  # @param zip_url [String] see {#zip_url}.
98
98
  def initialize(name, updated, meta_url, gz_url, zip_url)
99
- # Frome meta file
99
+ # From meta file
100
100
  @name = name
101
101
  @updated = updated
102
102
  @meta_url = meta_url
@@ -146,7 +146,7 @@ class NVDFeedScraper
146
146
  # Download the JSON feed and fill the attribute.
147
147
  # @param opts [Hash] see {#download_file}.
148
148
  # @return [String] the path of the saved JSON file. Default use {Feed#default_storage_location}.
149
- # @note Will downlaod and save the zip of the JSON file, unzip and save it. This massively consume time.
149
+ # @note Will download and save the zip of the JSON file, unzip and save it. This massively consume time.
150
150
  # @see #json_file
151
151
  def json_pull(opts = {})
152
152
  opts[:destination_path] ||= Feed.default_storage_location
@@ -229,7 +229,8 @@ class NVDFeedScraper
229
229
  raise 'no argument provided, 1 or more expected' if arg_cve.empty?
230
230
 
231
231
  if arg_cve.length == 1
232
- if arg_cve[0].is_a?(String)
232
+ case arg_cve[0]
233
+ when String
233
234
  raise "bad CVE name (#{arg_cve[0]})" unless /^CVE-[0-9]{4}-[0-9]{4,}$/i.match?(arg_cve[0])
234
235
 
235
236
  doc = Oj::Doc.open(File.read(@json_file))
@@ -241,7 +242,7 @@ class NVDFeedScraper
241
242
  end
242
243
  end
243
244
  doc.close
244
- elsif arg_cve[0].is_a?(Array)
245
+ when Array
245
246
  return_value = []
246
247
  # Sorting CVE can allow us to parse quicker
247
248
  # Upcase to be sure include? works
@@ -363,27 +364,23 @@ class NVDFeedScraper
363
364
  uri = URI(file_url)
364
365
  filename = uri.path.split('/').last
365
366
  destination_file = destination_path + filename
366
- unless opts[:sha256].nil?
367
- if File.file?(destination_file)
368
- # Verify hash to see if it is the latest
369
- computed_h = Digest::SHA256.file(destination_file)
370
- skip_download = true if opts[:sha256].casecmp(computed_h.hexdigest).zero?
371
- end
367
+ if !opts[:sha256].nil? && File.file?(destination_file)
368
+ # Verify hash to see if it is the latest
369
+ computed_h = Digest::SHA256.file(destination_file)
370
+ skip_download = true if opts[:sha256].casecmp(computed_h.hexdigest).zero?
372
371
  end
373
372
  unless skip_download
374
373
  res = Net::HTTP.get_response(uri)
375
374
  raise "#{file_url} ended with #{res.code} #{res.message}" unless res.is_a?(Net::HTTPSuccess)
376
375
 
377
- File.open(destination_file, 'wb') do |file|
378
- file.write(res.body)
379
- end
376
+ File.binwrite(destination_file, res.body)
380
377
  end
381
378
  return destination_file
382
379
  end
383
380
 
384
381
  # Update the feed
385
382
  # @param fresh_feed [Feed] the fresh feed from which the feed will be updated.
386
- # @return [Boolean] +true+ if the feed was updated, +false+ if it wasn't.
383
+ # @return [Boolean] `true` if the feed was updated, `false` if it wasn't.
387
384
  # @note Is not intended to be used directly, use {NVDFeedScraper#update_feeds} instead.
388
385
  def update!(fresh_feed)
389
386
  return_value = false
@@ -76,17 +76,16 @@ class NVDFeedScraper
76
76
  # Parse the meta file from the URL and set the attributes.
77
77
  # @overload parse
78
78
  # Parse the meta file from the URL and set the attributes.
79
- # @return [Integer] Returns +0+ when there is no error.
79
+ # @return [Integer] Returns `0` when there is no error.
80
80
  # @overload parse(url)
81
81
  # Set the URL of the meta file of the feed and
82
82
  # parse the meta file from the URL and set the attributes.
83
83
  # @param url [String] see {Feed.meta_url}
84
- # @return [Integer] Returns +0+ when there is no error.
84
+ # @return [Integer] Returns `0` when there is no error.
85
85
  def parse(*arg)
86
- if arg.empty?
87
- elsif arg.length == 1 # arg = url
86
+ if arg.length == 1 # arg = url
88
87
  self.url = arg[0]
89
- else
88
+ elsif arg.length > 1
90
89
  raise 'Too much arguments'
91
90
  end
92
91
 
@@ -96,7 +95,7 @@ class NVDFeedScraper
96
95
 
97
96
  meta = Net::HTTP.get(uri)
98
97
 
99
- meta = Hash[meta.split.map { |x| x.split(':', 2) }]
98
+ meta = meta.split.to_h { |x| x.split(':', 2) }
100
99
 
101
100
  raise 'no lastModifiedDate attribute found' unless meta['lastModifiedDate']
102
101
  raise 'no valid size attribute found' unless /[0-9]+/.match?(meta['size'])
@@ -1,3 +1,3 @@
1
1
  module NvdFeedApi
2
- VERSION = '0.3.1'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
data/lib/nvd_feed_api.rb CHANGED
@@ -42,14 +42,15 @@ class NVDFeedScraper
42
42
  tmp_feeds = {}
43
43
  doc.css('#vuln-feed-table table.xml-feed-table tr[data-testid]').each do |tr|
44
44
  num, type = tr.attr('data-testid')[13..].split('-')
45
- if type == 'meta'
45
+ case type
46
+ when 'meta'
46
47
  tmp_feeds[num] = {}
47
48
  tmp_feeds[num][:name] = tr.css('td')[0].text
48
49
  tmp_feeds[num][:updated] = tr.css('td')[1].text
49
50
  tmp_feeds[num][:meta] = BASE + tr.css('td')[2].css('> a').attr('href').value
50
- elsif type == 'gz'
51
+ when 'gz'
51
52
  tmp_feeds[num][:gz] = BASE + tr.css('td > a').attr('href').value
52
- elsif type == 'zip'
53
+ when 'zip'
53
54
  tmp_feeds[num][:zip] = BASE + tr.css('td > a').attr('href').value
54
55
  @feeds.push(Feed.new(tmp_feeds[num][:name],
55
56
  tmp_feeds[num][:updated],
@@ -90,12 +91,13 @@ class NVDFeedScraper
90
91
  if arg_feeds.empty?
91
92
  return_value = @feeds
92
93
  elsif arg_feeds.length == 1
93
- if arg_feeds[0].is_a?(String)
94
+ case arg_feeds[0]
95
+ when String
94
96
  @feeds.each do |feed| # feed is an object
95
97
  return_value = feed if arg_feeds.include?(feed.name)
96
98
  end
97
99
  # if nothing found return nil
98
- elsif arg_feeds[0].is_a?(Array)
100
+ when Array
99
101
  raise 'one of the provided arguments is not a String' unless arg_feeds[0].all? { |x| x.is_a?(String) }
100
102
 
101
103
  # Sorting CVE can allow us to parse quicker
@@ -164,7 +166,8 @@ class NVDFeedScraper
164
166
  raise 'no argument provided, 1 or more expected' if arg_cve.empty?
165
167
 
166
168
  if arg_cve.length == 1
167
- if arg_cve[0].is_a?(String)
169
+ case arg_cve[0]
170
+ when String
168
171
  raise 'bad CVE name' unless /^CVE-[0-9]{4}-[0-9]{4,}$/i.match?(arg_cve[0])
169
172
 
170
173
  year = /^CVE-([0-9]{4})-[0-9]{4,}$/i.match(arg_cve[0]).captures[0]
@@ -185,7 +188,7 @@ class NVDFeedScraper
185
188
  f = feeds(matched_feed)
186
189
  f.json_pull
187
190
  return_value = f.cve(arg_cve[0])
188
- elsif arg_cve[0].is_a?(Array)
191
+ when Array
189
192
  raise 'one of the provided arguments is not a String' unless arg_cve[0].all? { |x| x.is_a?(String) }
190
193
  raise 'bad CVE name' unless arg_cve[0].all? { |x| /^CVE-[0-9]{4}-[0-9]{4,}$/i.match?(x) }
191
194
 
@@ -216,9 +219,10 @@ class NVDFeedScraper
216
219
  feeds_arr.each do |feed|
217
220
  feed.json_pull
218
221
  cves_obj = feed.cve(cves_to_find.select { |cve| cve.include?(feed.name) })
219
- if cves_obj.is_a?(Hash)
222
+ case cves_obj
223
+ when Hash
220
224
  return_value.push(cves_obj)
221
- elsif cves_obj.is_a?(Array)
225
+ when Array
222
226
  return_value.push(*cves_obj)
223
227
  else
224
228
  raise 'cve() method of the feed instance returns wrong value'
@@ -238,16 +242,16 @@ class NVDFeedScraper
238
242
  # @overload update_feeds(feed)
239
243
  # One feed.
240
244
  # @param feed [Feed] feed object to update.
241
- # @return [Boolean] +true+ if the feed was updated, +false+ if it wasn't.
245
+ # @return [Boolean] `true` if the feed was updated, `false` if it wasn't.
242
246
  # @overload update_feeds(feed_arr)
243
247
  # An array of feed.
244
248
  # @param feed_arr [Array<Feed>] array of feed objects to update.
245
- # @return [Array<Boolean>] +true+ if the feed was updated, +false+ if it wasn't.
249
+ # @return [Array<Boolean>] `true` if the feed was updated, `false` if it wasn't.
246
250
  # @overload update_feeds(feed, *)
247
251
  # Multiple feeds.
248
252
  # @param feed [Feed] feed object to update.
249
253
  # @param * [Feed] As many feed objects as you want.
250
- # @return [Array<Boolean>] +true+ if the feed was updated, +false+ if it wasn't.
254
+ # @return [Array<Boolean>] `true` if the feed was updated, `false` if it wasn't.
251
255
  # @example
252
256
  # s = NVDFeedScraper.new
253
257
  # s.scrap
@@ -259,11 +263,12 @@ class NVDFeedScraper
259
263
 
260
264
  scrap
261
265
  if arg_feed.length == 1
262
- if arg_feed[0].is_a?(Feed)
266
+ case arg_feed[0]
267
+ when Feed
263
268
  new_feed = feeds(arg_feed[0].name)
264
269
  # update attributes
265
270
  return_value = arg_feed[0].update!(new_feed)
266
- elsif arg_feed[0].is_a?(Array)
271
+ when Array
267
272
  return_value = []
268
273
  arg_feed[0].each do |f|
269
274
  res = update_feeds(f)
data/nvd_feed_api.gemspec CHANGED
@@ -1,12 +1,9 @@
1
- lib = File.expand_path('lib', __dir__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'nvd_feed_api/version'
1
+ require_relative 'lib/nvd_feed_api/version'
4
2
 
5
3
  Gem::Specification.new do |s|
6
4
  s.name = 'nvd_feed_api'
7
5
  s.version = NvdFeedApi::VERSION
8
6
  s.platform = Gem::Platform::RUBY
9
- s.date = '2020-10-03'
10
7
  s.summary = 'API for NVD CVE feeds'
11
8
  s.description = 'A simple API for NVD CVE feeds'
12
9
  s.authors = ['Alexandre ZANNI']
@@ -20,27 +17,19 @@ Gem::Specification.new do |s|
20
17
  s.require_paths = ['lib']
21
18
 
22
19
  s.metadata = {
23
- 'yard.run' => 'yard',
24
- 'bug_tracker_uri' => 'https://gitlab.com/noraj/nvd_api/issues',
25
- 'changelog_uri' => 'https://noraj.gitlab.io/nvd_api/file.CHANGELOG.html',
26
- 'documentation_uri' => 'https://noraj.gitlab.io/nvd_api/',
27
- 'homepage_uri' => 'https://noraj.gitlab.io/nvd_api/',
28
- 'source_code_uri' => 'https://gitlab.com/noraj/nvd_api/tree/master',
29
- 'wiki_uri' => 'https://gitlab.com/noraj/nvd_api/wikis/home'
20
+ 'yard.run' => 'yard',
21
+ 'bug_tracker_uri' => 'https://gitlab.com/noraj/nvd_api/issues',
22
+ 'changelog_uri' => 'https://noraj.gitlab.io/nvd_api/file.CHANGELOG.html',
23
+ 'documentation_uri' => 'https://noraj.gitlab.io/nvd_api/',
24
+ 'homepage_uri' => 'https://noraj.gitlab.io/nvd_api/',
25
+ 'source_code_uri' => 'https://gitlab.com/noraj/nvd_api/tree/master',
26
+ 'wiki_uri' => 'https://gitlab.com/noraj/nvd_api/wikis/home',
27
+ 'rubygems_mfa_required' => 'true'
30
28
  }
31
29
 
32
- s.required_ruby_version = '~> 2.4'
30
+ s.required_ruby_version = ['>= 2.7.0', '< 3.2']
33
31
 
34
32
  s.add_dependency('archive-zip', '~> 0.11')
35
- s.add_dependency('nokogiri', '~> 1.10')
33
+ s.add_dependency('nokogiri', '~> 1.11')
36
34
  s.add_dependency('oj', '>= 3.7.8', '<4')
37
-
38
- s.add_development_dependency('bundler', '~> 2.1')
39
- s.add_development_dependency('commonmarker', '~> 0.21') # for GMF support in YARD
40
- s.add_development_dependency('github-markup', '~> 3.0') # for GMF support in YARD
41
- s.add_development_dependency('minitest', '~> 5.14')
42
- s.add_development_dependency('rake', '~> 13.0')
43
- s.add_development_dependency('redcarpet', '~> 3.5') # for GMF support in YARD
44
- s.add_development_dependency('rubocop', '~> 0.92')
45
- s.add_development_dependency('yard', '~> 0.9')
46
35
  end
data/pages/CHANGELOG.md CHANGED
@@ -1,4 +1,17 @@
1
- # [0.3.0] - 22 January 2019
1
+ # [unreleased]
2
+
3
+ # [0.4.0] - 31 January 2021
4
+
5
+ - Dependencies:
6
+ - Update to yard [v0.9.27](https://github.com/lsegal/yard/releases/tag/v0.9.27)
7
+ - Move from Redcarpet to CommonMarker markdown provider
8
+ - Move doc syntax from Rdoc to markdown
9
+ - Move dev dependencies from gemspec to gemfile
10
+ - Chore:
11
+ - Add support for Ruby 3.1
12
+ - Update rubocop rules
13
+
14
+ # [0.3.1] - 13 October 2020
2
15
 
3
16
  [0.3.1]: https://gitlab.com/noraj/nvd_api/tags/v0.3.1
4
17
 
@@ -6,6 +19,8 @@
6
19
  - update dependencies
7
20
  - update rubocop rules
8
21
 
22
+ # [0.3.0] - 22 January 2019
23
+
9
24
  [0.3.0]: https://gitlab.com/noraj/nvd_api/tags/v0.3.0
10
25
 
11
26
  - update dependencies: updated gemspec, ruby 2.6 support, fix gem doc flag, fix oj crash (seg fault)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nvd_feed_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre ZANNI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-03 00:00:00.000000000 Z
11
+ date: 2022-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: archive-zip
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.10'
33
+ version: '1.11'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.10'
40
+ version: '1.11'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: oj
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,118 +58,6 @@ dependencies:
58
58
  - - "<"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '4'
61
- - !ruby/object:Gem::Dependency
62
- name: bundler
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '2.1'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '2.1'
75
- - !ruby/object:Gem::Dependency
76
- name: commonmarker
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '0.21'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '0.21'
89
- - !ruby/object:Gem::Dependency
90
- name: github-markup
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '3.0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '3.0'
103
- - !ruby/object:Gem::Dependency
104
- name: minitest
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '5.14'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '5.14'
117
- - !ruby/object:Gem::Dependency
118
- name: rake
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '13.0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '13.0'
131
- - !ruby/object:Gem::Dependency
132
- name: redcarpet
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: '3.5'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: '3.5'
145
- - !ruby/object:Gem::Dependency
146
- name: rubocop
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '0.92'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '0.92'
159
- - !ruby/object:Gem::Dependency
160
- name: yard
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: '0.9'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - "~>"
171
- - !ruby/object:Gem::Version
172
- version: '0.9'
173
61
  description: A simple API for NVD CVE feeds
174
62
  email: alexandre.zanni@europe.com
175
63
  executables:
@@ -179,6 +67,7 @@ executables:
179
67
  extensions: []
180
68
  extra_rdoc_files: []
181
69
  files:
70
+ - ".github/FUNDING.yml"
182
71
  - ".gitignore"
183
72
  - ".gitlab-ci.yml"
184
73
  - ".gitlab/CONTRIBUTING.md"
@@ -218,22 +107,26 @@ metadata:
218
107
  homepage_uri: https://noraj.gitlab.io/nvd_api/
219
108
  source_code_uri: https://gitlab.com/noraj/nvd_api/tree/master
220
109
  wiki_uri: https://gitlab.com/noraj/nvd_api/wikis/home
110
+ rubygems_mfa_required: 'true'
221
111
  post_install_message:
222
112
  rdoc_options: []
223
113
  require_paths:
224
114
  - lib
225
115
  required_ruby_version: !ruby/object:Gem::Requirement
226
116
  requirements:
227
- - - "~>"
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: 2.7.0
120
+ - - "<"
228
121
  - !ruby/object:Gem::Version
229
- version: '2.4'
122
+ version: '3.2'
230
123
  required_rubygems_version: !ruby/object:Gem::Requirement
231
124
  requirements:
232
125
  - - ">="
233
126
  - !ruby/object:Gem::Version
234
127
  version: '0'
235
128
  requirements: []
236
- rubygems_version: 3.1.2
129
+ rubygems_version: 3.3.3
237
130
  signing_key:
238
131
  specification_version: 4
239
132
  summary: API for NVD CVE feeds