virustotal_api 0.4.0 → 0.5.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/.github/workflows/ruby.yml +26 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +12 -5
- data/CHANGELOG.md +35 -9
- data/README.md +97 -59
- data/lib/virustotal_api.rb +7 -7
- data/lib/virustotal_api/analysis.rb +16 -0
- data/lib/virustotal_api/base.rb +41 -10
- data/lib/virustotal_api/domain.rb +18 -0
- data/lib/virustotal_api/exceptions.rb +3 -0
- data/lib/virustotal_api/file.rb +48 -0
- data/lib/virustotal_api/group.rb +18 -0
- data/lib/virustotal_api/ip.rb +18 -0
- data/lib/virustotal_api/uri.rb +2 -1
- data/lib/virustotal_api/url.rb +38 -0
- data/lib/virustotal_api/user.rb +18 -0
- data/lib/virustotal_api/version.rb +2 -1
- data/test/analysis_test.rb +26 -0
- data/test/base_test.rb +13 -25
- data/test/domain_test.rb +27 -0
- data/test/exceptions_test.rb +22 -0
- data/test/file_test.rb +63 -0
- data/test/fixtures/analysis.yml +544 -0
- data/test/fixtures/domain.yml +830 -0
- data/test/fixtures/file_analyse.yml +52 -0
- data/test/fixtures/file_find.yml +853 -0
- data/test/fixtures/file_not_found.yml +52 -0
- data/test/fixtures/file_rate_limit.yml +52 -0
- data/test/fixtures/file_unauthorized.yml +51 -0
- data/test/fixtures/file_upload.yml +54 -0
- data/test/fixtures/group_find.yml +216 -0
- data/test/fixtures/ip.yml +716 -0
- data/test/fixtures/unscanned_url_find.yml +44 -0
- data/test/fixtures/url_analyse.yml +52 -0
- data/test/fixtures/url_find.yml +599 -0
- data/test/fixtures/user_find.yml +213 -0
- data/test/group_test.rb +27 -0
- data/test/{ip_report_test.rb → ip_test.rb} +6 -4
- data/test/uri_test.rb +1 -1
- data/test/url_test.rb +47 -0
- data/test/user_test.rb +26 -0
- data/test/version_test.rb +1 -2
- data/virustotal_api.gemspec +10 -8
- metadata +99 -69
- data/.circleci/config.yml +0 -19
- data/lib/virustotal_api/domain_report.rb +0 -36
- data/lib/virustotal_api/file_report.rb +0 -37
- data/lib/virustotal_api/file_rescan.rb +0 -35
- data/lib/virustotal_api/file_scan.rb +0 -37
- data/lib/virustotal_api/ip_report.rb +0 -36
- data/lib/virustotal_api/url_report.rb +0 -41
- data/lib/virustotal_api/url_scan.rb +0 -35
- data/test/domain_report_test.rb +0 -32
- data/test/file_report_test.rb +0 -36
- data/test/file_rescan_test.rb +0 -32
- data/test/file_scan_test.rb +0 -30
- data/test/fixtures/domain_report.yml +0 -311
- data/test/fixtures/ip_report.yml +0 -1323
- data/test/fixtures/queue_unscanned_url_report.yml +0 -46
- data/test/fixtures/report.yml +0 -110
- data/test/fixtures/report_not_found.yml +0 -42
- data/test/fixtures/request_forbidden.yml +0 -38
- data/test/fixtures/rescan.yml +0 -47
- data/test/fixtures/scan.yml +0 -49
- data/test/fixtures/unscanned_url_report.yml +0 -43
- data/test/fixtures/url_report.yml +0 -95
- data/test/fixtures/url_scan.yml +0 -48
- data/test/url_report_test.rb +0 -57
- data/test/url_scan_test.rb +0 -30
@@ -0,0 +1,213 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://www.virustotal.com/api/v3/users/testapikey
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*"
|
12
|
+
User-Agent:
|
13
|
+
- rest-client/2.1.0 (linux-gnu x86_64) ruby/2.5.1p57
|
14
|
+
X-Apikey:
|
15
|
+
- testapikey
|
16
|
+
Content-Length:
|
17
|
+
- '0'
|
18
|
+
Content-Type:
|
19
|
+
- application/x-www-form-urlencoded
|
20
|
+
Accept-Encoding:
|
21
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
22
|
+
Host:
|
23
|
+
- www.virustotal.com
|
24
|
+
response:
|
25
|
+
status:
|
26
|
+
code: 200
|
27
|
+
message: OK
|
28
|
+
headers:
|
29
|
+
Cache-Control:
|
30
|
+
- no-cache
|
31
|
+
Content-Type:
|
32
|
+
- application/json; charset=utf-8
|
33
|
+
X-Cloud-Trace-Context:
|
34
|
+
- 4ad711d6d44ea44146d4c06cb76589b1
|
35
|
+
Date:
|
36
|
+
- Mon, 05 Oct 2020 10:19:46 GMT
|
37
|
+
Server:
|
38
|
+
- Google Frontend
|
39
|
+
Content-Length:
|
40
|
+
- '5145'
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: |-
|
44
|
+
{
|
45
|
+
"data": {
|
46
|
+
"attributes": {
|
47
|
+
"apikey": "testapikey",
|
48
|
+
"email": "granville@okeefehomenick.co",
|
49
|
+
"first_name": "Valdo",
|
50
|
+
"has_2fa": false,
|
51
|
+
"last_login": 1601883978,
|
52
|
+
"last_name": "Donati",
|
53
|
+
"preferences": {
|
54
|
+
"ui": {
|
55
|
+
"last_read_notification_date": 1599481553
|
56
|
+
}
|
57
|
+
},
|
58
|
+
"privileges": {
|
59
|
+
"cases": {
|
60
|
+
"granted": false
|
61
|
+
},
|
62
|
+
"click_to_accept": {
|
63
|
+
"granted": false
|
64
|
+
},
|
65
|
+
"creditcards": {
|
66
|
+
"granted": false
|
67
|
+
},
|
68
|
+
"dogfooder": {
|
69
|
+
"granted": false
|
70
|
+
},
|
71
|
+
"downloads-tier-1": {
|
72
|
+
"granted": false
|
73
|
+
},
|
74
|
+
"downloads-tier-2": {
|
75
|
+
"granted": false
|
76
|
+
},
|
77
|
+
"file-behaviour-feed": {
|
78
|
+
"granted": false
|
79
|
+
},
|
80
|
+
"file-feed": {
|
81
|
+
"granted": false
|
82
|
+
},
|
83
|
+
"file-feed-without-av-results": {
|
84
|
+
"granted": false
|
85
|
+
},
|
86
|
+
"intelligence": {
|
87
|
+
"granted": false
|
88
|
+
},
|
89
|
+
"intelligence-search-tier-1": {
|
90
|
+
"granted": false
|
91
|
+
},
|
92
|
+
"intelligence-search-tier-2": {
|
93
|
+
"granted": false
|
94
|
+
},
|
95
|
+
"intelligence-search-tier-3": {
|
96
|
+
"granted": false
|
97
|
+
},
|
98
|
+
"monitor": {
|
99
|
+
"granted": false
|
100
|
+
},
|
101
|
+
"monitor-partner": {
|
102
|
+
"granted": false
|
103
|
+
},
|
104
|
+
"private": {
|
105
|
+
"granted": false
|
106
|
+
},
|
107
|
+
"retrohunt-tier-1": {
|
108
|
+
"granted": false
|
109
|
+
},
|
110
|
+
"retrohunt-tier-2": {
|
111
|
+
"granted": false
|
112
|
+
},
|
113
|
+
"retrohunt-tier-3": {
|
114
|
+
"granted": false
|
115
|
+
},
|
116
|
+
"sales-staff": {
|
117
|
+
"granted": false
|
118
|
+
},
|
119
|
+
"staff": {
|
120
|
+
"granted": false
|
121
|
+
},
|
122
|
+
"url-feed": {
|
123
|
+
"granted": false
|
124
|
+
},
|
125
|
+
"vtalerts": {
|
126
|
+
"granted": false
|
127
|
+
},
|
128
|
+
"vtdiff-api": {
|
129
|
+
"granted": false
|
130
|
+
},
|
131
|
+
"vtdiff-ui": {
|
132
|
+
"granted": false
|
133
|
+
},
|
134
|
+
"vtgrep": {
|
135
|
+
"granted": false
|
136
|
+
},
|
137
|
+
"widget": {
|
138
|
+
"granted": false
|
139
|
+
}
|
140
|
+
},
|
141
|
+
"profile_phrase": "",
|
142
|
+
"quotas": {
|
143
|
+
"api_requests_daily": {
|
144
|
+
"allowed": 5760,
|
145
|
+
"used": 102
|
146
|
+
},
|
147
|
+
"api_requests_hourly": {
|
148
|
+
"allowed": 240,
|
149
|
+
"used": 0
|
150
|
+
},
|
151
|
+
"api_requests_monthly": {
|
152
|
+
"allowed": 1000000000,
|
153
|
+
"used": 105
|
154
|
+
},
|
155
|
+
"cases_creation_monthly": {
|
156
|
+
"allowed": 20,
|
157
|
+
"used": 0
|
158
|
+
},
|
159
|
+
"intelligence_downloads_monthly": {
|
160
|
+
"allowed": 0,
|
161
|
+
"used": 0
|
162
|
+
},
|
163
|
+
"intelligence_graphs_private": {
|
164
|
+
"allowed": 0,
|
165
|
+
"used": 0
|
166
|
+
},
|
167
|
+
"intelligence_hunting_rules": {
|
168
|
+
"allowed": 0,
|
169
|
+
"used": 0
|
170
|
+
},
|
171
|
+
"intelligence_retrohunt_jobs_monthly": {
|
172
|
+
"allowed": 0,
|
173
|
+
"used": 0
|
174
|
+
},
|
175
|
+
"intelligence_searches_monthly": {
|
176
|
+
"allowed": 0,
|
177
|
+
"used": 0
|
178
|
+
},
|
179
|
+
"intelligence_vtdiff_creation_monthly": {
|
180
|
+
"allowed": 0,
|
181
|
+
"used": 0
|
182
|
+
},
|
183
|
+
"monitor_storage_bytes": {
|
184
|
+
"allowed": 0,
|
185
|
+
"used": 0
|
186
|
+
},
|
187
|
+
"monitor_storage_files": {
|
188
|
+
"allowed": 0,
|
189
|
+
"used": 0
|
190
|
+
},
|
191
|
+
"monitor_uploaded_bytes": {
|
192
|
+
"allowed": 0,
|
193
|
+
"used": 0
|
194
|
+
},
|
195
|
+
"monitor_uploaded_files": {
|
196
|
+
"allowed": 0,
|
197
|
+
"used": 0
|
198
|
+
}
|
199
|
+
},
|
200
|
+
"reputation": 1,
|
201
|
+
"status": "active",
|
202
|
+
"user_since": 1512986169
|
203
|
+
},
|
204
|
+
"id": "granville",
|
205
|
+
"links": {
|
206
|
+
"self": "https://www.virustotal.com/api/v3/users/granville"
|
207
|
+
},
|
208
|
+
"type": "user"
|
209
|
+
}
|
210
|
+
}
|
211
|
+
http_version:
|
212
|
+
recorded_at: Mon, 05 Oct 2020 10:19:46 GMT
|
213
|
+
recorded_with: VCR 5.0.0
|
data/test/group_test.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require './test/test_helper'
|
4
|
+
|
5
|
+
class VirustotalAPIGroupReportTest < Minitest::Test
|
6
|
+
def setup
|
7
|
+
@group_id = 'GROUP_us'
|
8
|
+
@api_key = 'testapikey'
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_class_exists
|
12
|
+
assert VirustotalAPI::Group
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_report_response
|
16
|
+
VCR.use_cassette('group_find') do
|
17
|
+
vtgroup_report = VirustotalAPI::Group.find(@group_id, @api_key)
|
18
|
+
|
19
|
+
# Make sure that the JSON was parsed
|
20
|
+
assert vtgroup_report.exists?
|
21
|
+
assert vtgroup_report.is_a?(VirustotalAPI::Group)
|
22
|
+
assert vtgroup_report.report.is_a?(Hash)
|
23
|
+
assert vtgroup_report.id.is_a?(String)
|
24
|
+
assert vtgroup_report.report_url.is_a?(String)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -9,16 +9,18 @@ class VirustotalAPIIPReportTest < Minitest::Test
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_class_exists
|
12
|
-
assert VirustotalAPI::
|
12
|
+
assert VirustotalAPI::IP
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_report_response
|
16
|
-
VCR.use_cassette('
|
17
|
-
vtip_report = VirustotalAPI::
|
16
|
+
VCR.use_cassette('ip') do
|
17
|
+
vtip_report = VirustotalAPI::IP.find(@ip, @api_key)
|
18
18
|
|
19
19
|
# Make sure that the JSON was parsed
|
20
|
-
assert vtip_report.is_a?(VirustotalAPI::
|
20
|
+
assert vtip_report.is_a?(VirustotalAPI::IP)
|
21
21
|
assert vtip_report.report.is_a?(Hash)
|
22
|
+
assert vtip_report.id.is_a?(String)
|
23
|
+
assert vtip_report.report_url.is_a?(String)
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
data/test/uri_test.rb
CHANGED
@@ -5,6 +5,6 @@ require './test/test_helper'
|
|
5
5
|
class VirustotalAPIVTReportTest < Minitest::Test
|
6
6
|
def test_api_base_uri
|
7
7
|
assert VirustotalAPI::URI.is_a?(String)
|
8
|
-
|
8
|
+
assert_equal 'https://www.virustotal.com/api/v3', VirustotalAPI::URI
|
9
9
|
end
|
10
10
|
end
|
data/test/url_test.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require './test/test_helper'
|
4
|
+
|
5
|
+
class VirustotalAPIURLReportTest < Minitest::Test
|
6
|
+
def setup
|
7
|
+
@unscanned_url = 'http://www.unscanned.com'
|
8
|
+
@url = 'http://www.google.com'
|
9
|
+
@api_key = 'testapikey'
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_class_exists
|
13
|
+
assert VirustotalAPI::URL
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_report_response
|
17
|
+
VCR.use_cassette('url_find') do
|
18
|
+
vturl_report = VirustotalAPI::URL.find(@url, @api_key)
|
19
|
+
|
20
|
+
# Make sure that the JSON was parsed
|
21
|
+
assert vturl_report.exists?
|
22
|
+
assert vturl_report.is_a?(VirustotalAPI::URL)
|
23
|
+
assert vturl_report.report.is_a?(Hash)
|
24
|
+
assert vturl_report.id.is_a?(String)
|
25
|
+
assert vturl_report.report_url.is_a?(String)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_scan_unscanned_url
|
30
|
+
VCR.use_cassette('unscanned_url_find') do
|
31
|
+
vturl_report = VirustotalAPI::URL.find(@unscanned_url, @api_key)
|
32
|
+
|
33
|
+
assert !vturl_report.exists?
|
34
|
+
assert_empty vturl_report.report
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_analyse
|
39
|
+
VCR.use_cassette('url_analyse') do
|
40
|
+
vturl_analyse = VirustotalAPI::URL.analyse(@url, @api_key)
|
41
|
+
|
42
|
+
assert vturl_analyse.exists?
|
43
|
+
assert vturl_analyse.report.is_a?(Hash)
|
44
|
+
assert vturl_analyse.id.is_a?(String)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/test/user_test.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require './test/test_helper'
|
4
|
+
|
5
|
+
class VirustotalAPIUserReportTest < Minitest::Test
|
6
|
+
def setup
|
7
|
+
@api_key = 'testapikey'
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_class_exists
|
11
|
+
assert VirustotalAPI::User
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_report_response
|
15
|
+
VCR.use_cassette('user_find') do
|
16
|
+
vtuser_report = VirustotalAPI::User.find(@api_key, @api_key)
|
17
|
+
|
18
|
+
# Make sure that the JSON was parsed
|
19
|
+
assert vtuser_report.exists?
|
20
|
+
assert vtuser_report.is_a?(VirustotalAPI::User)
|
21
|
+
assert vtuser_report.report.is_a?(Hash)
|
22
|
+
assert vtuser_report.id.is_a?(String)
|
23
|
+
assert vtuser_report.report_url.is_a?(String)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/test/version_test.rb
CHANGED
data/virustotal_api.gemspec
CHANGED
@@ -10,24 +10,26 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.authors = ['pwelch']
|
11
11
|
spec.email = ['paul@pwelch.net']
|
12
12
|
spec.summary = 'Gem for VirusTotal.com API'
|
13
|
-
spec.description = 'Gem for VirusTotal.com API'
|
13
|
+
spec.description = 'Gem for VirusTotal.com API, supporting API V3'
|
14
14
|
spec.homepage = 'https://github.com/pwelch/virustotal_api'
|
15
15
|
spec.license = 'MIT'
|
16
16
|
|
17
|
+
spec.required_ruby_version = '>= 2.5'
|
18
|
+
|
17
19
|
spec.files = `git ls-files -z`.split("\x0")
|
18
20
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
21
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
22
|
spec.require_paths = ['lib']
|
21
23
|
|
22
|
-
spec.add_dependency 'json'
|
23
|
-
spec.add_dependency 'rest-client'
|
24
|
+
spec.add_dependency 'json', '~> 2.3', '>= 2.3.1'
|
25
|
+
spec.add_dependency 'rest-client', '~> 2.1', '>= 2.1.0'
|
24
26
|
|
25
27
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
26
|
-
spec.add_development_dependency 'minitest'
|
27
|
-
spec.add_development_dependency 'pry'
|
28
|
+
spec.add_development_dependency 'minitest', '~> 5.14', '>= 5.14.1'
|
29
|
+
spec.add_development_dependency 'pry', '~> 0.13.1'
|
28
30
|
spec.add_development_dependency 'rake', '~> 12.3'
|
29
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
30
|
-
spec.add_development_dependency 'vcr'
|
31
|
-
spec.add_development_dependency 'webmock'
|
31
|
+
spec.add_development_dependency 'rubocop', '~> 0.91'
|
32
|
+
spec.add_development_dependency 'vcr', '~> 6.0', '>= 6.0.0'
|
33
|
+
spec.add_development_dependency 'webmock', '~> 3.9'
|
32
34
|
spec.add_development_dependency 'yard', '~> 0.9'
|
33
35
|
end
|
metadata
CHANGED
@@ -1,43 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: virustotal_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pwelch
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.3'
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: 2.3.1
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.3'
|
24
30
|
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 2.3.1
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rest-client
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
39
|
+
version: 2.1.0
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.1'
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
47
|
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
49
|
+
version: 2.1.0
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '2.1'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: bundler
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,30 +68,36 @@ dependencies:
|
|
56
68
|
name: minitest
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '5.14'
|
59
74
|
- - ">="
|
60
75
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
76
|
+
version: 5.14.1
|
62
77
|
type: :development
|
63
78
|
prerelease: false
|
64
79
|
version_requirements: !ruby/object:Gem::Requirement
|
65
80
|
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '5.14'
|
66
84
|
- - ">="
|
67
85
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
86
|
+
version: 5.14.1
|
69
87
|
- !ruby/object:Gem::Dependency
|
70
88
|
name: pry
|
71
89
|
requirement: !ruby/object:Gem::Requirement
|
72
90
|
requirements:
|
73
|
-
- - "
|
91
|
+
- - "~>"
|
74
92
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
93
|
+
version: 0.13.1
|
76
94
|
type: :development
|
77
95
|
prerelease: false
|
78
96
|
version_requirements: !ruby/object:Gem::Requirement
|
79
97
|
requirements:
|
80
|
-
- - "
|
98
|
+
- - "~>"
|
81
99
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
100
|
+
version: 0.13.1
|
83
101
|
- !ruby/object:Gem::Dependency
|
84
102
|
name: rake
|
85
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,42 +118,48 @@ dependencies:
|
|
100
118
|
requirements:
|
101
119
|
- - "~>"
|
102
120
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0.
|
121
|
+
version: '0.91'
|
104
122
|
type: :development
|
105
123
|
prerelease: false
|
106
124
|
version_requirements: !ruby/object:Gem::Requirement
|
107
125
|
requirements:
|
108
126
|
- - "~>"
|
109
127
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0.
|
128
|
+
version: '0.91'
|
111
129
|
- !ruby/object:Gem::Dependency
|
112
130
|
name: vcr
|
113
131
|
requirement: !ruby/object:Gem::Requirement
|
114
132
|
requirements:
|
115
133
|
- - ">="
|
116
134
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
135
|
+
version: 6.0.0
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '6.0'
|
118
139
|
type: :development
|
119
140
|
prerelease: false
|
120
141
|
version_requirements: !ruby/object:Gem::Requirement
|
121
142
|
requirements:
|
122
143
|
- - ">="
|
123
144
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
145
|
+
version: 6.0.0
|
146
|
+
- - "~>"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '6.0'
|
125
149
|
- !ruby/object:Gem::Dependency
|
126
150
|
name: webmock
|
127
151
|
requirement: !ruby/object:Gem::Requirement
|
128
152
|
requirements:
|
129
|
-
- - "
|
153
|
+
- - "~>"
|
130
154
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
155
|
+
version: '3.9'
|
132
156
|
type: :development
|
133
157
|
prerelease: false
|
134
158
|
version_requirements: !ruby/object:Gem::Requirement
|
135
159
|
requirements:
|
136
|
-
- - "
|
160
|
+
- - "~>"
|
137
161
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
162
|
+
version: '3.9'
|
139
163
|
- !ruby/object:Gem::Dependency
|
140
164
|
name: yard
|
141
165
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,17 +174,17 @@ dependencies:
|
|
150
174
|
- - "~>"
|
151
175
|
- !ruby/object:Gem::Version
|
152
176
|
version: '0.9'
|
153
|
-
description: Gem for VirusTotal.com API
|
177
|
+
description: Gem for VirusTotal.com API, supporting API V3
|
154
178
|
email:
|
155
179
|
- paul@pwelch.net
|
156
180
|
executables: []
|
157
181
|
extensions: []
|
158
182
|
extra_rdoc_files: []
|
159
183
|
files:
|
160
|
-
- ".circleci/config.yml"
|
161
184
|
- ".github/CODE_OF_CONDUCT.md"
|
162
185
|
- ".github/CONTRIBUTING.md"
|
163
186
|
- ".github/ISSUE_TEMPLATE.md"
|
187
|
+
- ".github/workflows/ruby.yml"
|
164
188
|
- ".gitignore"
|
165
189
|
- ".rubocop.yml"
|
166
190
|
- CHANGELOG.md
|
@@ -169,47 +193,50 @@ files:
|
|
169
193
|
- README.md
|
170
194
|
- Rakefile
|
171
195
|
- lib/virustotal_api.rb
|
196
|
+
- lib/virustotal_api/analysis.rb
|
172
197
|
- lib/virustotal_api/base.rb
|
173
|
-
- lib/virustotal_api/
|
198
|
+
- lib/virustotal_api/domain.rb
|
174
199
|
- lib/virustotal_api/exceptions.rb
|
175
|
-
- lib/virustotal_api/
|
176
|
-
- lib/virustotal_api/
|
177
|
-
- lib/virustotal_api/
|
178
|
-
- lib/virustotal_api/ip_report.rb
|
200
|
+
- lib/virustotal_api/file.rb
|
201
|
+
- lib/virustotal_api/group.rb
|
202
|
+
- lib/virustotal_api/ip.rb
|
179
203
|
- lib/virustotal_api/uri.rb
|
180
|
-
- lib/virustotal_api/
|
181
|
-
- lib/virustotal_api/
|
204
|
+
- lib/virustotal_api/url.rb
|
205
|
+
- lib/virustotal_api/user.rb
|
182
206
|
- lib/virustotal_api/version.rb
|
207
|
+
- test/analysis_test.rb
|
183
208
|
- test/base_test.rb
|
184
|
-
- test/
|
209
|
+
- test/domain_test.rb
|
185
210
|
- test/exceptions_test.rb
|
186
|
-
- test/
|
187
|
-
- test/
|
188
|
-
- test/
|
189
|
-
- test/fixtures/
|
190
|
-
- test/fixtures/
|
211
|
+
- test/file_test.rb
|
212
|
+
- test/fixtures/analysis.yml
|
213
|
+
- test/fixtures/domain.yml
|
214
|
+
- test/fixtures/file_analyse.yml
|
215
|
+
- test/fixtures/file_find.yml
|
216
|
+
- test/fixtures/file_not_found.yml
|
217
|
+
- test/fixtures/file_rate_limit.yml
|
218
|
+
- test/fixtures/file_unauthorized.yml
|
219
|
+
- test/fixtures/file_upload.yml
|
220
|
+
- test/fixtures/group_find.yml
|
221
|
+
- test/fixtures/ip.yml
|
191
222
|
- test/fixtures/null_file
|
192
|
-
- test/fixtures/
|
193
|
-
- test/fixtures/
|
194
|
-
- test/fixtures/
|
195
|
-
- test/fixtures/
|
196
|
-
- test/
|
197
|
-
- test/
|
198
|
-
- test/fixtures/unscanned_url_report.yml
|
199
|
-
- test/fixtures/url_report.yml
|
200
|
-
- test/fixtures/url_scan.yml
|
201
|
-
- test/ip_report_test.rb
|
223
|
+
- test/fixtures/unscanned_url_find.yml
|
224
|
+
- test/fixtures/url_analyse.yml
|
225
|
+
- test/fixtures/url_find.yml
|
226
|
+
- test/fixtures/user_find.yml
|
227
|
+
- test/group_test.rb
|
228
|
+
- test/ip_test.rb
|
202
229
|
- test/test_helper.rb
|
203
230
|
- test/uri_test.rb
|
204
|
-
- test/
|
205
|
-
- test/
|
231
|
+
- test/url_test.rb
|
232
|
+
- test/user_test.rb
|
206
233
|
- test/version_test.rb
|
207
234
|
- virustotal_api.gemspec
|
208
235
|
homepage: https://github.com/pwelch/virustotal_api
|
209
236
|
licenses:
|
210
237
|
- MIT
|
211
238
|
metadata: {}
|
212
|
-
post_install_message:
|
239
|
+
post_install_message:
|
213
240
|
rdoc_options: []
|
214
241
|
require_paths:
|
215
242
|
- lib
|
@@ -217,7 +244,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
244
|
requirements:
|
218
245
|
- - ">="
|
219
246
|
- !ruby/object:Gem::Version
|
220
|
-
version: '
|
247
|
+
version: '2.5'
|
221
248
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
249
|
requirements:
|
223
250
|
- - ">="
|
@@ -225,31 +252,34 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
225
252
|
version: '0'
|
226
253
|
requirements: []
|
227
254
|
rubygems_version: 3.0.3
|
228
|
-
signing_key:
|
255
|
+
signing_key:
|
229
256
|
specification_version: 4
|
230
257
|
summary: Gem for VirusTotal.com API
|
231
258
|
test_files:
|
259
|
+
- test/analysis_test.rb
|
232
260
|
- test/base_test.rb
|
233
|
-
- test/
|
261
|
+
- test/domain_test.rb
|
234
262
|
- test/exceptions_test.rb
|
235
|
-
- test/
|
236
|
-
- test/
|
237
|
-
- test/
|
238
|
-
- test/fixtures/
|
239
|
-
- test/fixtures/
|
263
|
+
- test/file_test.rb
|
264
|
+
- test/fixtures/analysis.yml
|
265
|
+
- test/fixtures/domain.yml
|
266
|
+
- test/fixtures/file_analyse.yml
|
267
|
+
- test/fixtures/file_find.yml
|
268
|
+
- test/fixtures/file_not_found.yml
|
269
|
+
- test/fixtures/file_rate_limit.yml
|
270
|
+
- test/fixtures/file_unauthorized.yml
|
271
|
+
- test/fixtures/file_upload.yml
|
272
|
+
- test/fixtures/group_find.yml
|
273
|
+
- test/fixtures/ip.yml
|
240
274
|
- test/fixtures/null_file
|
241
|
-
- test/fixtures/
|
242
|
-
- test/fixtures/
|
243
|
-
- test/fixtures/
|
244
|
-
- test/fixtures/
|
245
|
-
- test/
|
246
|
-
- test/
|
247
|
-
- test/fixtures/unscanned_url_report.yml
|
248
|
-
- test/fixtures/url_report.yml
|
249
|
-
- test/fixtures/url_scan.yml
|
250
|
-
- test/ip_report_test.rb
|
275
|
+
- test/fixtures/unscanned_url_find.yml
|
276
|
+
- test/fixtures/url_analyse.yml
|
277
|
+
- test/fixtures/url_find.yml
|
278
|
+
- test/fixtures/user_find.yml
|
279
|
+
- test/group_test.rb
|
280
|
+
- test/ip_test.rb
|
251
281
|
- test/test_helper.rb
|
252
282
|
- test/uri_test.rb
|
253
|
-
- test/
|
254
|
-
- test/
|
283
|
+
- test/url_test.rb
|
284
|
+
- test/user_test.rb
|
255
285
|
- test/version_test.rb
|