qualys 0.1.4 → 0.1.5

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -2
  3. data/.rubocop.yml +7 -0
  4. data/.rubocop_todo.yml +71 -0
  5. data/.travis.yml +13 -1
  6. data/Gemfile +3 -1
  7. data/Gemfile.lock +91 -0
  8. data/README.md +50 -10
  9. data/Rakefile +3 -4
  10. data/lib/qualys.rb +10 -11
  11. data/lib/qualys/api.rb +38 -47
  12. data/lib/qualys/auth.rb +11 -20
  13. data/lib/qualys/compliance.rb +3 -7
  14. data/lib/qualys/config.rb +3 -5
  15. data/lib/qualys/host.rb +17 -0
  16. data/lib/qualys/report.rb +90 -0
  17. data/lib/qualys/scans.rb +10 -22
  18. data/lib/qualys/version.rb +1 -1
  19. data/lib/qualys/vulnerability.rb +74 -0
  20. data/qualys.gemspec +18 -19
  21. data/spec/fixtures/vcr_cassettes/api_get.yml +52 -0
  22. data/spec/fixtures/vcr_cassettes/create_global_report.yml +68 -0
  23. data/spec/fixtures/vcr_cassettes/emptyscans.yml +35 -0
  24. data/spec/fixtures/vcr_cassettes/get.yml +107 -0
  25. data/spec/fixtures/vcr_cassettes/global_report.yml +17800 -0
  26. data/spec/fixtures/vcr_cassettes/load_global_report.yml +625 -0
  27. data/spec/fixtures/vcr_cassettes/login.yml +50 -0
  28. data/spec/fixtures/vcr_cassettes/logout.yml +50 -0
  29. data/spec/fixtures/vcr_cassettes/scan.yml +73 -0
  30. data/spec/fixtures/vcr_cassettes/scans.yml +89 -0
  31. data/spec/fixtures/vcr_cassettes/templates.yml +121 -0
  32. data/spec/fixtures/vcr_cassettes/try_load_not_existing_report.yml +63 -0
  33. data/spec/fixtures/vcr_cassettes/unlogged.yml +45 -0
  34. data/spec/fixtures/vcr_cassettes/wrong.yml +101 -0
  35. data/spec/qualys/api_spec.rb +27 -0
  36. data/spec/qualys/report_spec.rb +65 -0
  37. data/spec/qualys/scans_spec.rb +75 -0
  38. data/spec/qualys/version_spec.rb +11 -0
  39. data/spec/qualys/vulnerability_spec.rb +53 -0
  40. data/spec/qualys_spec.rb +20 -0
  41. data/spec/spec_helper.rb +37 -0
  42. metadata +61 -15
  43. data/.rock.yml +0 -17
  44. data/lib/qualys/reports.rb +0 -47
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://qualysapi.qualys.eu/api/2.0/fo/scan/?action=list
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Requested-With:
11
+ - Qualys Ruby Client v0.1.3
12
+ response:
13
+ status:
14
+ code: 401
15
+ message: Unauthorized
16
+ headers:
17
+ Date:
18
+ - Mon, 11 Dec 2017 12:54:07 GMT
19
+ Server:
20
+ - Qualys
21
+ X-Xss-Protection:
22
+ - '1'
23
+ X-Content-Type-Options:
24
+ - nosniff
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Content-Type:
30
+ - text/xml;charset=UTF-8
31
+ body:
32
+ encoding: UTF-8
33
+ string: |
34
+ <?xml version="1.0" encoding="UTF-8" ?>
35
+ <!DOCTYPE SIMPLE_RETURN SYSTEM "https://qualysapi.qualys.eu/api/2.0/simple_return.dtd">
36
+ <SIMPLE_RETURN>
37
+ <RESPONSE>
38
+ <DATETIME>2017-12-11T12:54:07Z</DATETIME>
39
+ <CODE>2000</CODE>
40
+ <TEXT>Bad Login/Password</TEXT>
41
+ </RESPONSE>
42
+ </SIMPLE_RETURN>
43
+ http_version:
44
+ recorded_at: Mon, 11 Dec 2017 12:54:07 GMT
45
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,101 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://qualysapi.qualys.eu/api/2.0/fo/scan
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Requested-With:
11
+ - Qualys Ruby Client v0.1.3
12
+ response:
13
+ status:
14
+ code: 301
15
+ message: Moved Permanently
16
+ headers:
17
+ Date:
18
+ - Mon, 11 Dec 2017 12:58:49 GMT
19
+ Server:
20
+ - Qualys
21
+ Location:
22
+ - https://qualysapi.qualys.eu/api/2.0/fo/scan/
23
+ Content-Length:
24
+ - '255'
25
+ Content-Type:
26
+ - text/html; charset=iso-8859-1
27
+ body:
28
+ encoding: UTF-8
29
+ string: |
30
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
31
+ <html><head>
32
+ <title>301 Moved Permanently</title>
33
+ </head><body>
34
+ <h1>Moved Permanently</h1>
35
+ <p>The document has moved <a href="http://qualysapi.qualys.eu:443/api/2.0/fo/scan/">here</a>.</p>
36
+ </body></html>
37
+ http_version:
38
+ recorded_at: Mon, 11 Dec 2017 12:58:49 GMT
39
+ - request:
40
+ method: get
41
+ uri: https://qualysapi.qualys.eu/api/2.0/fo/scan/
42
+ body:
43
+ encoding: US-ASCII
44
+ string: ''
45
+ headers:
46
+ X-Requested-With:
47
+ - Qualys Ruby Client v0.1.3
48
+ response:
49
+ status:
50
+ code: 400
51
+ message: Bad Request
52
+ headers:
53
+ Date:
54
+ - Mon, 11 Dec 2017 12:58:49 GMT
55
+ Server:
56
+ - Qualys
57
+ X-Xss-Protection:
58
+ - '1'
59
+ X-Content-Type-Options:
60
+ - nosniff
61
+ X-Frame-Options:
62
+ - SAMEORIGIN
63
+ Expires:
64
+ - Thu, 19 Nov 1981 08:52:00 GMT
65
+ Cache-Control:
66
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
67
+ Pragma:
68
+ - no-cache
69
+ X-Ratelimit-Limit:
70
+ - '300'
71
+ X-Ratelimit-Window-Sec:
72
+ - '3600'
73
+ X-Concurrency-Limit-Limit:
74
+ - '2'
75
+ X-Concurrency-Limit-Running:
76
+ - '0'
77
+ X-Ratelimit-Towait-Sec:
78
+ - '0'
79
+ X-Ratelimit-Remaining:
80
+ - '294'
81
+ Connection:
82
+ - close
83
+ Transfer-Encoding:
84
+ - chunked
85
+ Content-Type:
86
+ - text/xml;charset=UTF-8
87
+ body:
88
+ encoding: UTF-8
89
+ string: |
90
+ <?xml version="1.0" encoding="UTF-8" ?>
91
+ <!DOCTYPE SIMPLE_RETURN SYSTEM "https://qualysapi.qualys.eu/api/2.0/simple_return.dtd">
92
+ <SIMPLE_RETURN>
93
+ <RESPONSE>
94
+ <DATETIME>2017-12-11T12:58:49Z</DATETIME>
95
+ <CODE>1903</CODE>
96
+ <TEXT>Missing required parameter(s): action</TEXT>
97
+ </RESPONSE>
98
+ </SIMPLE_RETURN>
99
+ http_version:
100
+ recorded_at: Mon, 11 Dec 2017 12:58:49 GMT
101
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'rubygems'
5
+
6
+ describe Qualys::Api do
7
+ describe 'api_get' do
8
+ let(:query) { Qualys::Api.api_get('/scan/', query: { action: 'list' }) }
9
+ let(:wrong_query) { Qualys::Api.api_get('/scan') }
10
+ let(:not_existing_query) { Qualys::Api.api_get('/nonExisting', query: { action: 'list' }) }
11
+
12
+ it 'query the API' do
13
+ VCR.use_cassette('api_get') do
14
+ expect(query.response.code).to eq '200'
15
+ end
16
+ end
17
+ it 'raises appropriatly' do
18
+ VCR.use_cassette('unlogged') do
19
+ expect { query }.to raise_error(Qualys::Api::AuthorizationRequired, 'Please Login Before Communicating With The API')
20
+ end
21
+
22
+ VCR.use_cassette('wrong') do
23
+ expect { wrong_query }.to raise_error(Qualys::Api::InvalidResponse)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Qualys::Report, type: :model do
6
+ let(:report) { Qualys::Report.global_report }
7
+
8
+ describe '#templates' do
9
+ it 'gets all the templates' do
10
+ VCR.use_cassette('templates') do
11
+ expect(Qualys::Report.templates.first['ID']).to eq '91078694'
12
+ end
13
+ end
14
+ end
15
+
16
+ describe '#find_by_id' do
17
+ it 'loads the report' do
18
+ VCR.use_cassette('templates') do
19
+ VCR.use_cassette('load_global_report') do
20
+ expect(Qualys::Report.find_by_id(4_888_430)).to be_kind_of Qualys::Report
21
+ end
22
+ end
23
+ end
24
+
25
+ it 'returns nil when the report does not exist ' do
26
+ VCR.use_cassette('templates') do
27
+ VCR.use_cassette('try_load_not_existing_report') do
28
+ expect(Qualys::Report.find_by_id(4_888_480)).to be_nil
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ describe '#create_global_report' do
35
+ it 'gets the report id' do
36
+ VCR.use_cassette('templates') do
37
+ VCR.use_cassette('create_global_report') do
38
+ expect(Qualys::Report.create_global_report).to eq '4888438'
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ describe '#global_report' do
45
+ it 'loads the report' do
46
+ VCR.use_cassette('templates') do
47
+ VCR.use_cassette('global_report') do
48
+ stub_const('Qualys::Report::TIMEOUT', 0)
49
+ expect(Qualys::Report.global_report).to be_kind_of(Qualys::Report)
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ describe '#hosts' do
56
+ it 'gets all the host' do
57
+ VCR.use_cassette('templates') do
58
+ VCR.use_cassette('global_report') do
59
+ stub_const('Qualys::Report::TIMEOUT', 0)
60
+ expect(report.hosts).to all(be_kind_of(Qualys::Host))
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Qualys::Scans, type: :model do
6
+ let(:scans) { Qualys::Scans.all }
7
+
8
+ describe '#all' do
9
+ it 'gets all the scans' do
10
+ VCR.use_cassette('scans') do
11
+ expect(scans.size).to eq 5
12
+ expect(scans).to all(be_an(Qualys::Scan))
13
+ end
14
+ end
15
+
16
+ it 'does not return scan if there is no' do
17
+ VCR.use_cassette('emptyscans') do
18
+ expect(scans).to eq []
19
+ end
20
+ end
21
+ end
22
+
23
+ describe '#get' do
24
+ it 'gets the scan' do
25
+ VCR.use_cassette('get') do
26
+ details = Qualys::Scans.get('scan/1512633883.79354')
27
+ expect(details.first.keys).to include('ip', 'dns', 'netbios', 'qid', 'instance',
28
+ 'protocol', 'port', 'ssl', 'fqdn')
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ RSpec.describe Qualys::Scan, type: :model do
35
+ let(:scan) { Qualys::Scans.all[1] }
36
+ let(:error_scan) { Qualys::Scans.all[0] }
37
+
38
+ describe '#initialize' do
39
+ it 'has all fields filled' do
40
+ VCR.use_cassette('scan') do
41
+ expect(scan.ref).to eq 'scan/1512633883.79354'
42
+ expect(scan.title).to eq 'shellshock 20171207'
43
+ expect(scan.type).to eq 'On-Demand'
44
+ expect(scan.date).to eq '2017-12-07T08:04:43Z'
45
+ expect(scan.duration).to eq '00:07:02'
46
+ expect(scan.status).to eq 'Finished'
47
+ expect(scan.target).to eq '47.69.112.62'
48
+ expect(scan.user).to eq 'thomas'
49
+ end
50
+ end
51
+ end
52
+
53
+ describe '#details' do
54
+ it 'returns the details' do
55
+ VCR.use_cassette('scan') do
56
+ VCR.use_cassette('get') do
57
+ expect(scan.details.first.keys).to include('ip', 'dns', 'netbios', 'qid', 'instance',
58
+ 'protocol', 'port', 'ssl', 'fqdn')
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ describe '#finished' do
65
+ it 'returns returns a bolean' do
66
+ VCR.use_cassette('scan') do
67
+ expect(scan.finished?).to be true
68
+ end
69
+
70
+ VCR.use_cassette('scan') do
71
+ expect(error_scan.finished?).to be false
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'qualys/version'
4
+
5
+ require 'spec_helper'
6
+
7
+ describe Qualys do
8
+ it 'has a version' do
9
+ expect(Qualys).to be_const_defined('VERSION')
10
+ end
11
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Qualys::Vulnerability, type: :model do
6
+ let(:vulnerabilities) { Qualys::Report.global_report.hosts.first.vulnerabilities }
7
+ let(:vulnerability) { vulnerabilities[0] }
8
+ let(:vulnerability_with_cve) { vulnerabilities[5] }
9
+ let(:rich_vulnerability) { vulnerabilities[11] }
10
+
11
+ describe '#initialize' do
12
+ it 'initialize all elements for a basic vulnerability' do
13
+ stub_const('Qualys::Report::TIMEOUT', 0)
14
+ VCR.use_cassette('templates') do
15
+ VCR.use_cassette('global_report') do
16
+ expect(vulnerability).to be_kind_of(Qualys::Vulnerability)
17
+ expect(vulnerability.qid).to eq 'qid_38173'
18
+ expect(vulnerability.type).to eq 'Vuln'
19
+ expect(vulnerability.port).to eq '25'
20
+ expect(vulnerability.service).to eq 'smtp'
21
+ expect(vulnerability.protocol).to eq 'tcp'
22
+ expect(vulnerability.ssl).to eq 'true'
23
+ expect(vulnerability.result).to eq 'Certificate #0 CN=localhost.localdomain self signed certificate'
24
+ expect(vulnerability.first_found).to eq '2017-12-07T08:12:19Z'
25
+ expect(vulnerability.last_found).to eq '2017-12-07T08:12:19Z'
26
+ expect(vulnerability.times_found).to eq '1'
27
+ expect(vulnerability.status).to eq 'New'
28
+ end
29
+ end
30
+ end
31
+
32
+ it 'initializes the details' do
33
+ stub_const('Qualys::Report::TIMEOUT', 0)
34
+ VCR.use_cassette('templates') do
35
+ VCR.use_cassette('global_report') do
36
+ expect(vulnerability.details['id']).to eq vulnerability.qid
37
+ expect(vulnerability.cve_code_list).to be_nil
38
+ expect(vulnerability.title).to eq 'SSL Certificate - Signature Verification Failed Vulnerability'
39
+ expect(vulnerability.severity).to eq '2'
40
+ expect(vulnerability.category).to eq 'General remote services'
41
+ expect(vulnerability.threat).to start_with 'An SSL Certificate associates an entity (person, organization'
42
+ expect(vulnerability.impact).to start_with 'By exploiting this vulnerability, man-in-the-middle attacks'
43
+ expect(vulnerability.solution).to start_with 'Please install a server certificate signed by a trusted'
44
+ expect(vulnerability.pci_flag).to eq '1'
45
+ expect(vulnerability.correlation).to be_nil
46
+ expect(vulnerability.vendor_reference_list).to be_nil
47
+ expect(vulnerability.last_update).to be_nil
48
+ expect(vulnerability.url).to eq 'https://qualysguard.qualys.eu/fo/common/vuln_info.php?id=38173'
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Qualys do
4
+ describe '#configure' do
5
+ it 'configures' do
6
+ expect do
7
+ Qualys.configure do |config|
8
+ config.username = 'Thomas'
9
+ config.password = 'verysafepass'
10
+ end
11
+ end.not_to raise_error
12
+
13
+ expect do
14
+ Qualys.configure do |config|
15
+ config.password = nil
16
+ end
17
+ end.to raise_error("Configuration parameter missing: 'password'. Please add it to the Qualys.configure block")
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,37 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'qualys'
5
+ require 'vcr'
6
+
7
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ Coveralls::SimpleCov::Formatter
10
+ ])
11
+ SimpleCov.start
12
+
13
+ VCR.configure do |config|
14
+ config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
15
+ config.hook_into :webmock
16
+ end
17
+
18
+ RSpec.configure do |config|
19
+ config.before(:suite) do
20
+ Qualys.configure do |qualys_config|
21
+ qualys_config.username = 'Thomas'
22
+ qualys_config.password = 'thomasPassword'
23
+ end
24
+
25
+ Qualys::Api.base_uri = 'https://qualysapi.qualys.eu/api/2.0/fo/'
26
+
27
+ VCR.use_cassette('login') do
28
+ Qualys::Auth.login
29
+ end
30
+ end
31
+
32
+ config.after(:suite) do
33
+ VCR.use_cassette('logout') do
34
+ Qualys::Auth.logout
35
+ end
36
+ end
37
+ end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qualys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Mackintosh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2017-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: json
14
+ name: erubis
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,21 +25,21 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: erubis
28
+ name: httparty
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.15'
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: '0'
40
+ version: '0.15'
41
41
  - !ruby/object:Gem::Dependency
42
- name: httparty
42
+ name: json
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: vcr
98
+ name: rubocop
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: webmock
112
+ name: vcr
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rubocop
126
+ name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -143,10 +143,12 @@ extensions: []
143
143
  extra_rdoc_files: []
144
144
  files:
145
145
  - ".gitignore"
146
- - ".rock.yml"
147
146
  - ".rspec"
147
+ - ".rubocop.yml"
148
+ - ".rubocop_todo.yml"
148
149
  - ".travis.yml"
149
150
  - Gemfile
151
+ - Gemfile.lock
150
152
  - LICENSE.txt
151
153
  - README.md
152
154
  - Rakefile
@@ -156,10 +158,33 @@ files:
156
158
  - lib/qualys/auth.rb
157
159
  - lib/qualys/compliance.rb
158
160
  - lib/qualys/config.rb
159
- - lib/qualys/reports.rb
161
+ - lib/qualys/host.rb
162
+ - lib/qualys/report.rb
160
163
  - lib/qualys/scans.rb
161
164
  - lib/qualys/version.rb
165
+ - lib/qualys/vulnerability.rb
162
166
  - qualys.gemspec
167
+ - spec/fixtures/vcr_cassettes/api_get.yml
168
+ - spec/fixtures/vcr_cassettes/create_global_report.yml
169
+ - spec/fixtures/vcr_cassettes/emptyscans.yml
170
+ - spec/fixtures/vcr_cassettes/get.yml
171
+ - spec/fixtures/vcr_cassettes/global_report.yml
172
+ - spec/fixtures/vcr_cassettes/load_global_report.yml
173
+ - spec/fixtures/vcr_cassettes/login.yml
174
+ - spec/fixtures/vcr_cassettes/logout.yml
175
+ - spec/fixtures/vcr_cassettes/scan.yml
176
+ - spec/fixtures/vcr_cassettes/scans.yml
177
+ - spec/fixtures/vcr_cassettes/templates.yml
178
+ - spec/fixtures/vcr_cassettes/try_load_not_existing_report.yml
179
+ - spec/fixtures/vcr_cassettes/unlogged.yml
180
+ - spec/fixtures/vcr_cassettes/wrong.yml
181
+ - spec/qualys/api_spec.rb
182
+ - spec/qualys/report_spec.rb
183
+ - spec/qualys/scans_spec.rb
184
+ - spec/qualys/version_spec.rb
185
+ - spec/qualys/vulnerability_spec.rb
186
+ - spec/qualys_spec.rb
187
+ - spec/spec_helper.rb
163
188
  homepage: http://github.com/mikemackintosh/ruby-qualys
164
189
  licenses:
165
190
  - MIT
@@ -184,4 +209,25 @@ rubygems_version: 2.6.11
184
209
  signing_key:
185
210
  specification_version: 4
186
211
  summary: qualys API Client
187
- test_files: []
212
+ test_files:
213
+ - spec/fixtures/vcr_cassettes/api_get.yml
214
+ - spec/fixtures/vcr_cassettes/create_global_report.yml
215
+ - spec/fixtures/vcr_cassettes/emptyscans.yml
216
+ - spec/fixtures/vcr_cassettes/get.yml
217
+ - spec/fixtures/vcr_cassettes/global_report.yml
218
+ - spec/fixtures/vcr_cassettes/load_global_report.yml
219
+ - spec/fixtures/vcr_cassettes/login.yml
220
+ - spec/fixtures/vcr_cassettes/logout.yml
221
+ - spec/fixtures/vcr_cassettes/scan.yml
222
+ - spec/fixtures/vcr_cassettes/scans.yml
223
+ - spec/fixtures/vcr_cassettes/templates.yml
224
+ - spec/fixtures/vcr_cassettes/try_load_not_existing_report.yml
225
+ - spec/fixtures/vcr_cassettes/unlogged.yml
226
+ - spec/fixtures/vcr_cassettes/wrong.yml
227
+ - spec/qualys/api_spec.rb
228
+ - spec/qualys/report_spec.rb
229
+ - spec/qualys/scans_spec.rb
230
+ - spec/qualys/version_spec.rb
231
+ - spec/qualys/vulnerability_spec.rb
232
+ - spec/qualys_spec.rb
233
+ - spec/spec_helper.rb