virustotalx 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f014d99e8a184fa94a9f2d696209672867c2d437c83bf094b49346078887b077
4
- data.tar.gz: 0ff81e8a4a61b7283a8d54fe329127d602b07847f8a62ca70f7aa4112b6a6187
3
+ metadata.gz: 29c0a2908fdf7c04604adbdf13e22e34883b71ccfa2ccdb803067a835d7feb47
4
+ data.tar.gz: 2c13fbcdcdc79cb3489825760fb62560693bb715191e75dd165c55d25e96ab89
5
5
  SHA512:
6
- metadata.gz: c957e719c7a2f9be34493128a95369f5a0bd0f0a534570f9466c70af1cec243daba9198b516cc21af576bd3f5d31b01a65dc017cd6a946663c6d9f3009906d04
7
- data.tar.gz: a0497c176fc774a95193452590226f9887792aed9a42a1e144859b0db99684195c75d1e6ca8eb5de833a00a72b506b86f88bf347f621ea3f84b865c4960ef4e5
6
+ metadata.gz: 22ae1e88179b146f4ae4569899567f01525228f2605143301c89f7d070fd8d2354d5db7c1c763d9a71cc6bafd78c30532851f9c97e718015feec74b8420307a4
7
+ data.tar.gz: 282f86c261ccfea33d66287d8d5e08c8d2efc2be7d9a1d4c7d91c14986492307ded9d8aa149522f17e328a402e8d08a474edefe5ac18adcd5695d15fe0b65c67
@@ -0,0 +1,26 @@
1
+ name: Ruby CI
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ build:
7
+
8
+ runs-on: ubuntu-latest
9
+
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ ruby: [2.7, '3.0']
14
+
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: ${{ matrix.ruby }}
21
+ bundler-cache: true
22
+ - name: Build and test with Rake
23
+ run: |
24
+ gem install bundler
25
+ bundle install
26
+ bundle exec rake
data/.overcommit.yml ADDED
@@ -0,0 +1,9 @@
1
+ PreCommit:
2
+ BundleCheck:
3
+ enabled: true
4
+
5
+ RuboCop:
6
+ enabled: true
7
+ required_executable: bundle
8
+ command: ["bundle", "exec", "standardrb"]
9
+ on_warn: fail
data/.standard.yml ADDED
@@ -0,0 +1,4 @@
1
+ ignore:
2
+ - "**/*":
3
+ - Layout/SpaceInsideHashLiteralBraces
4
+ - Style/RescueStandardError
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # virustotalx
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/virustotalx.svg)](https://badge.fury.io/rb/virustotalx)
4
- [![Build Status](https://travis-ci.org/ninoseki/virustotalx.svg?branch=master)](https://travis-ci.org/ninoseki/virustotalx)
4
+ [![Ruby CI](https://github.com/ninoseki/virustotalx/actions/workflows/test.yml/badge.svg)](https://github.com/ninoseki/virustotalx/actions/workflows/test.yml)
5
5
  [![Coverage Status](https://coveralls.io/repos/github/ninoseki/virustotalx/badge.svg?branch=master)](https://coveralls.io/github/ninoseki/virustotalx?branch=master)
6
6
  [![CodeFactor](https://www.codefactor.io/repository/github/ninoseki/virustotalx/badge)](https://www.codefactor.io/repository/github/ninoseki/virustotalx)
7
7
 
@@ -44,7 +44,7 @@ api.ip_address.get("1.1.1.1")
44
44
  ### Files
45
45
 
46
46
  | HTTP Method | URL | API method |
47
- | ----------- | ---------------------------------- | ---------------------------------------------------------- |
47
+ |-------------|------------------------------------|------------------------------------------------------------|
48
48
  | POST | /files | api.file.upload(filepath) |
49
49
  | GET | /files/upload_url | api.file.upload_url |
50
50
  | GET | /files/{id} | api.file.get(id) |
@@ -62,7 +62,7 @@ api.ip_address.get("1.1.1.1")
62
62
  ### URLs
63
63
 
64
64
  | HTTP Method | URL | API method |
65
- | ----------- | --------------------------- | -------------------------------------------------------------- |
65
+ |-------------|-----------------------------|----------------------------------------------------------------|
66
66
  | POST | /urls | N/A |
67
67
  | GET | /urls/{id} | api.url.get(id) |
68
68
  | POST | /urls/{id}/analyse | api.url.analyse(id) |
@@ -78,7 +78,7 @@ Note: you can use a URL as an id.
78
78
  ### Domains
79
79
 
80
80
  | HTTP Method | URL | API method |
81
- | ----------- | -------------------------------- | ------------------------------------------------------------ |
81
+ |-------------|----------------------------------|--------------------------------------------------------------|
82
82
  | GET | /domains/{domain} | api.domain.get(domain) |
83
83
  | GET | /domains/{domain}/comments | api.domain.comment(domain) |
84
84
  | POST | /domains/{domain}/comments | api.domain.add_comment(domain, text) |
@@ -87,7 +87,7 @@ Note: you can use a URL as an id.
87
87
  ### IP addresses
88
88
 
89
89
  | HTTP Method | URL | API method |
90
- | ----------- | --------------------------------- | ------------------------------------------------------------------------------- |
90
+ |-------------|-----------------------------------|---------------------------------------------------------------------------------|
91
91
  | GET | /ip_addresses/{ip} | api.ip_address.get(ip) |
92
92
  | GET | /ip_addresses/{ip}/comments | api.ip_address.comments(id) |
93
93
  | POST | /ip_addresses/{ip}/comments | api.ip_address.add_comment(id, text) |
@@ -96,13 +96,13 @@ Note: you can use a URL as an id.
96
96
  ### Analyses
97
97
 
98
98
  | HTTP Method | URL | API method |
99
- | ----------- | -------------- | -------------------- |
99
+ |-------------|----------------|----------------------|
100
100
  | GET | /analyses/{id} | api.analysis.get(ip) |
101
101
 
102
102
  ## Graphs
103
103
 
104
104
  | HTTP Method | URL | API method |
105
- | ----------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------- |
105
+ |-------------|------------------------------------------------------|-------------------------------------------------------------------------------------|
106
106
  | GET | graphs | api.graph.search(filter: nil, limit: nil, cursor: nil, order: nil, attributes: nil) |
107
107
  | POST | graphs | api.graph.create(\*\*params) |
108
108
  | GET | graphs/{id} | api.graph.get(id) |
@@ -117,6 +117,12 @@ Note: you can use a URL as an id.
117
117
  | DELETE | graphs/{id}/relationships/editors/{user_or_group_id} | api.graph.delete_editor(id, user_or_group_id) |
118
118
  | GET | graphs/{id}/relationships/{relationship} | api.graph.`relationship`(id) |
119
119
 
120
+ ## Intelligence
121
+
122
+ | HTTP Method | URL | API method |
123
+ |-------------|---------------------|--------------------------------------------------------------------------------------------|
124
+ | GET | intelligence/search | api.intelligence.search(query, order: nil, limit: nil, cursor: nil, descriptors_only: nil) |
125
+
120
126
  ## License
121
127
 
122
128
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
@@ -69,5 +69,14 @@ module VirusTotal
69
69
  def graph
70
70
  @graph ||= Client::Graph.new(key: key)
71
71
  end
72
+
73
+ #
74
+ # Intelligence API endpoint client
75
+ #
76
+ # @return [VirusTotal::Client::Intelligence]
77
+ #
78
+ def intelligence
79
+ @intelligence ||= Client::Intelligence.new(key: key)
80
+ end
72
81
  end
73
82
  end
@@ -16,8 +16,9 @@ module VirusTotal
16
16
  domain: "domains",
17
17
  file: "files",
18
18
  graph: "graphs",
19
+ intelligence: "intelligence",
19
20
  ipaddress: "ip_addresses",
20
- url: "urls",
21
+ url: "urls"
21
22
  }.freeze
22
23
 
23
24
  attr_reader :key
@@ -38,7 +39,8 @@ module VirusTotal
38
39
  end
39
40
 
40
41
  def https_options
41
- if proxy = ENV["HTTPS_PROXY"] || ENV["https_proxy"]
42
+ proxy = ENV["HTTPS_PROXY"] || ENV["https_proxy"]
43
+ if proxy
42
44
  uri = URI(proxy)
43
45
  {
44
46
  proxy_address: uri.hostname,
@@ -55,13 +57,13 @@ module VirusTotal
55
57
  code = code.to_s.to_sym
56
58
 
57
59
  table = {
58
- "400": BadRequestError,
59
- "401": AuthenticationRequiredError,
60
- "403": ForbiddenError,
61
- "404": NotFoundError,
62
- "409": AlreadyExistsError,
63
- "429": QuotaExceededError,
64
- "503": TransientError,
60
+ '400': BadRequestError,
61
+ '401': AuthenticationRequiredError,
62
+ '403': ForbiddenError,
63
+ '404': NotFoundError,
64
+ '409': AlreadyExistsError,
65
+ '429': QuotaExceededError,
66
+ '503': TransientError
65
67
  }
66
68
  raise Error, "Unsupported response code returned: #{code} - #{message}" unless table.key?(code)
67
69
 
@@ -78,7 +80,7 @@ module VirusTotal
78
80
  code = response.code.to_i
79
81
  body = response.body
80
82
  json = JSON.parse(body) if response["Content-Type"].to_s.include?("application/json")
81
- message = json ? json.dig("message") : body
83
+ message = json ? json["message"] : body
82
84
 
83
85
  case code
84
86
  when 200
@@ -114,7 +116,7 @@ module VirusTotal
114
116
  post = Net::HTTP::Post.new(url_for(path))
115
117
 
116
118
  data = [
117
- ["file", file, { "filename": filename }],
119
+ ["file", file, { filename: filename }]
118
120
  ]
119
121
  post.set_form(data, "multipart/form-data")
120
122
 
@@ -10,7 +10,7 @@ module VirusTotal
10
10
  private
11
11
 
12
12
  def relationships
13
- @relationships ||= %w(
13
+ @relationships ||= %w[
14
14
  communicating_files
15
15
  downloaded_files
16
16
  graphs
@@ -19,7 +19,7 @@ module VirusTotal
19
19
  resolutions
20
20
  siblings
21
21
  urls
22
- ).map(&:to_sym)
22
+ ].map(&:to_sym)
23
23
  end
24
24
  end
25
25
  end
@@ -89,7 +89,7 @@ module VirusTotal
89
89
  private
90
90
 
91
91
  def relationships
92
- @relationships ||= %w(
92
+ @relationships ||= %w[
93
93
  analyses
94
94
  behaviours
95
95
  bundled_files
@@ -112,7 +112,7 @@ module VirusTotal
112
112
  submissions
113
113
  screenshots
114
114
  votes
115
- ).map(&:to_sym)
115
+ ].map(&:to_sym)
116
116
  end
117
117
  end
118
118
  end
@@ -4,6 +4,7 @@ module VirusTotal
4
4
  module Client
5
5
  class Graph < Base
6
6
  include Action::Get
7
+ include Action::Relationships
7
8
 
8
9
  #
9
10
  # Return graphs.
@@ -181,14 +182,14 @@ module VirusTotal
181
182
  private
182
183
 
183
184
  def relationships
184
- @relationships ||= %w(
185
+ @relationships ||= %w[
185
186
  comments
186
187
  items
187
188
  viewers
188
189
  editors
189
190
  owner
190
191
  group
191
- ).map(&:to_sym)
192
+ ].map(&:to_sym)
192
193
  end
193
194
  end
194
195
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VirusTotal
4
+ module Client
5
+ class Intelligence < Base
6
+ #
7
+ # Intelligense search
8
+ #
9
+ # @param [String] query Search query
10
+ # @param [String, nil] order Sort order
11
+ # @param [Integer, nil] limit Maximum number of results
12
+ # @param [String, nil] cursor Continuation cursor
13
+ # @param [Boolean, nil] descriptors_only Whether to return full object information or just object descriptors
14
+ #
15
+ # @return [Hash]
16
+ #
17
+ def search(query, order: nil, limit: nil, cursor: nil, descriptors_only: nil)
18
+ params = {
19
+ query: query,
20
+ order: order,
21
+ limit: limit,
22
+ cursor: cursor,
23
+ descriptors_only: descriptors_only
24
+ }.compact
25
+
26
+ _get("/#{name}/search", params) { |json| json }
27
+ end
28
+ end
29
+ end
30
+ end
@@ -10,7 +10,7 @@ module VirusTotal
10
10
  private
11
11
 
12
12
  def relationships
13
- @relationships ||= %w(
13
+ @relationships ||= %w[
14
14
  communicating_files
15
15
  downloaded_files
16
16
  graphs
@@ -18,7 +18,7 @@ module VirusTotal
18
18
  referrer_files
19
19
  resolutions
20
20
  urls
21
- ).map(&:to_sym)
21
+ ].map(&:to_sym)
22
22
  end
23
23
  end
24
24
  end
@@ -45,14 +45,14 @@ module VirusTotal
45
45
  end
46
46
 
47
47
  def relationships
48
- @relationships ||= %w(
48
+ @relationships ||= %w[
49
49
  analyses
50
50
  downloaded_files
51
51
  graphs
52
52
  last_serving_ip_address
53
53
  redirecting_urls
54
54
  submissions
55
- ).map(&:to_sym)
55
+ ].map(&:to_sym)
56
56
  end
57
57
  end
58
58
  end
@@ -4,15 +4,26 @@ module VirusTotal
4
4
  class Error < StandardError; end
5
5
 
6
6
  class AlreadyExistsError < Error; end
7
+
7
8
  class AuthenticationRequiredError < Error; end
9
+
8
10
  class BadRequestError < Error; end
11
+
9
12
  class ForbiddenError < Error; end
13
+
10
14
  class InvalidArgumentError < Error; end
15
+
11
16
  class NotFoundError < Error; end
17
+
12
18
  class QuotaExceededError < Error; end
19
+
13
20
  class RateLimitError < Error; end
21
+
14
22
  class TooManyRequestsError < Error; end
23
+
15
24
  class TransientError < Error; end
25
+
16
26
  class UserNotActiveError < Error; end
27
+
17
28
  class WrongCredentialsError < Error; end
18
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VirusTotal
4
- VERSION = "1.1.0"
4
+ VERSION = "1.2.0"
5
5
  end
data/lib/virustotal.rb CHANGED
@@ -17,8 +17,8 @@ require "virustotal/clients/analysis"
17
17
  require "virustotal/clients/domain"
18
18
  require "virustotal/clients/file"
19
19
  require "virustotal/clients/graph"
20
+ require "virustotal/clients/intelligence"
20
21
  require "virustotal/clients/ip_address"
21
22
  require "virustotal/clients/url"
22
23
 
23
- module VirusTotal
24
- end
24
+ module VirusTotal; end
data/renovate.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": [
3
+ "config:base"
4
+ ]
5
+ }
data/virustotalx.gemspec CHANGED
@@ -1,33 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
3
+ lib = File.expand_path("lib", __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require "virustotal/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "virustotalx"
9
- spec.version = VirusTotal::VERSION
10
- spec.authors = ["Manabu Niseki"]
11
- spec.email = ["manabu.niseki@gmail.com"]
8
+ spec.name = "virustotalx"
9
+ spec.version = VirusTotal::VERSION
10
+ spec.authors = ["Manabu Niseki"]
11
+ spec.email = ["manabu.niseki@gmail.com"]
12
12
 
13
- spec.summary = "Yet another VirusTotal API wrapper for Ruby"
14
- spec.description = "Yet another VirusTotal API wrapper for Ruby"
15
- spec.homepage = "https://github.com/ninoseki/virustotalx"
16
- spec.license = "MIT"
13
+ spec.summary = "Yet another VirusTotal API wrapper for Ruby"
14
+ spec.description = "Yet another VirusTotal API wrapper for Ruby"
15
+ spec.homepage = "https://github.com/ninoseki/virustotalx"
16
+ spec.license = "MIT"
17
17
 
18
18
  # Specify which files should be added to the gem when it is released.
19
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
21
21
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
22
  end
23
- spec.bindir = "exe"
24
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.bindir = "exe"
24
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_development_dependency "bundler", "~> 2.0"
28
- spec.add_development_dependency "coveralls", "~> 0.8"
27
+ spec.add_development_dependency "bundler", "~> 2.2"
28
+ spec.add_development_dependency "coveralls_reborn", "~> 0.23"
29
+ spec.add_development_dependency "overcommit", "~> 0.58"
29
30
  spec.add_development_dependency "rake", "~> 13.0"
30
- spec.add_development_dependency "rspec", "~> 3.9"
31
- spec.add_development_dependency "vcr", "~> 5.0"
32
- spec.add_development_dependency "webmock", "~> 3.7"
31
+ spec.add_development_dependency "rspec", "~> 3.10"
32
+ spec.add_development_dependency "standard", "~> 1.3"
33
+ spec.add_development_dependency "vcr", "~> 6.0"
34
+ spec.add_development_dependency "webmock", "~> 3.14"
33
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: virustotalx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manabu Niseki
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-19 00:00:00.000000000 Z
11
+ date: 2021-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '2.2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '2.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: coveralls
28
+ name: coveralls_reborn
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.8'
33
+ version: '0.23'
34
34
  type: :development
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: '0.8'
40
+ version: '0.23'
41
+ - !ruby/object:Gem::Dependency
42
+ name: overcommit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.58'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.58'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -58,42 +72,56 @@ dependencies:
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '3.9'
75
+ version: '3.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: standard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.3'
62
90
  type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: '3.9'
96
+ version: '1.3'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: vcr
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: '5.0'
103
+ version: '6.0'
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: '5.0'
110
+ version: '6.0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: webmock
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: '3.7'
117
+ version: '3.14'
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: '3.7'
124
+ version: '3.14'
97
125
  description: Yet another VirusTotal API wrapper for Ruby
98
126
  email:
99
127
  - manabu.niseki@gmail.com
@@ -101,9 +129,11 @@ executables: []
101
129
  extensions: []
102
130
  extra_rdoc_files: []
103
131
  files:
132
+ - ".github/workflows/test.yml"
104
133
  - ".gitignore"
134
+ - ".overcommit.yml"
105
135
  - ".rspec"
106
- - ".travis.yml"
136
+ - ".standard.yml"
107
137
  - Gemfile
108
138
  - LICENSE
109
139
  - README.md
@@ -121,17 +151,19 @@ files:
121
151
  - lib/virustotal/clients/domain.rb
122
152
  - lib/virustotal/clients/file.rb
123
153
  - lib/virustotal/clients/graph.rb
154
+ - lib/virustotal/clients/intelligence.rb
124
155
  - lib/virustotal/clients/ip_address.rb
125
156
  - lib/virustotal/clients/url.rb
126
157
  - lib/virustotal/errors.rb
127
158
  - lib/virustotal/version.rb
128
159
  - lib/virustotalx.rb
160
+ - renovate.json
129
161
  - virustotalx.gemspec
130
162
  homepage: https://github.com/ninoseki/virustotalx
131
163
  licenses:
132
164
  - MIT
133
165
  metadata: {}
134
- post_install_message:
166
+ post_install_message:
135
167
  rdoc_options: []
136
168
  require_paths:
137
169
  - lib
@@ -146,8 +178,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
178
  - !ruby/object:Gem::Version
147
179
  version: '0'
148
180
  requirements: []
149
- rubygems_version: 3.0.3
150
- signing_key:
181
+ rubygems_version: 3.2.22
182
+ signing_key:
151
183
  specification_version: 4
152
184
  summary: Yet another VirusTotal API wrapper for Ruby
153
185
  test_files: []
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.6.1
7
- before_install: gem install bundler -v 2.0.1