ukemi 0.4.0 → 0.4.1

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: 4d580aab085fc77ec8b77f427510401de772ee7d7c1f43e382d357ad908b8d35
4
- data.tar.gz: 38edc17fca078bcae250a7f234811febc1d2e2afe4e072c76a6a829db7073cd0
3
+ metadata.gz: a512ff8b644d793535d9beac64ab550b5628bbb86fd042e2cc3ab5b2cdad1ea1
4
+ data.tar.gz: d7433d7e80ff7723bf097db0bbda4a35f3feab7d2fbd4d3d7726c1ff3319c3a0
5
5
  SHA512:
6
- metadata.gz: f848faef9dea0a78e6f975f5018baaf793544a42848ff4b22bcdbabbed5051b84b5e9403ee61999ebad0e352a51710f0b83dbf8d0763b33d45a8b2543a598a0c
7
- data.tar.gz: 5218157189624ccc636a4b12566217f94900c5564c0541e2885233e577176822fd049d75f906dcff69cd2e0a6629c4c89ec1677e3c00d8151402de975e0bb2f7
6
+ metadata.gz: 9e88eefa02c8071b840e16c25ecdd52198abdd16ede41ff657692b9fc6ff2c9b21e0b8130d6562cc348eb8b101d91b0309a7feb4b5a48cb3283968518e649d1f
7
+ data.tar.gz: 6cca209ba2a055a195e862b0f10b2e431d8555d32985050b5debc6e4d20164c640af1afa30960ebde6842bc109b4e8176be206303ee0f170de5d441436339a45
@@ -0,0 +1,27 @@
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
+
23
+ - name: Build and test with Rake
24
+ run: |
25
+ gem install bundler
26
+ bundle install
27
+ 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
  # ukemi
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/ukemi.svg)](https://badge.fury.io/rb/ukemi)
4
- [![Build Status](https://travis-ci.com/ninoseki/ukemi.svg?branch=master)](https://travis-ci.com/ninoseki/ukemi)
4
+ [![Ruby CI](https://github.com/ninoseki/ukemi/actions/workflows/test.yaml/badge.svg)](https://github.com/ninoseki/ukemi/actions/workflows/test.yaml)
5
5
  [![Coverage Status](https://coveralls.io/repos/github/ninoseki/ukemi/badge.svg?branch=master)](https://coveralls.io/github/ninoseki/ukemi?branch=master)
6
6
  [![CodeFactor](https://www.codefactor.io/repository/github/ninoseki/ukemi/badge)](https://www.codefactor.io/repository/github/ninoseki/ukemi)
7
7
 
@@ -18,6 +18,10 @@ It supports the following services.
18
18
 
19
19
  It outputs passive DNS resolutions as JSON.
20
20
 
21
+ ## Requirements
22
+
23
+ - Ruby 2.7+ or Ruby 3.x
24
+
21
25
  ## Installation
22
26
 
23
27
  ```bash
@@ -116,6 +120,10 @@ $ ukemi lookup 195.123.226.243
116
120
  ...
117
121
  }
118
122
 
123
+ # or you scan skip "lookup"
124
+ $ ukemi example.com
125
+ $ ukemi 195.123.226.243
126
+
119
127
  # You can specify the order of resolutions
120
128
 
121
129
  # Order by last_seen DESC
data/exe/ukemi CHANGED
@@ -5,4 +5,6 @@ $LOAD_PATH.unshift("#{__dir__}/../lib")
5
5
 
6
6
  require "ukemi"
7
7
 
8
- Ukemi::CLI.start
8
+ ARGV.unshift(Ukemi::CLI.default_task) unless Ukemi::CLI.all_tasks.key?(ARGV[0])
9
+
10
+ Ukemi::CLI.start(ARGV)
data/lib/ukemi/cli.rb CHANGED
@@ -15,6 +15,8 @@ module Ukemi
15
15
  puts JSON.pretty_generate(result)
16
16
  end
17
17
 
18
+ default_command :lookup
19
+
18
20
  no_commands do
19
21
  def refang(data)
20
22
  data.gsub("[.]", ".").gsub("(.)", ".")
@@ -2,8 +2,7 @@
2
2
 
3
3
  module Ukemi
4
4
  class Configuration
5
- attr_accessor :ordering_key
6
- attr_accessor :sort_order
5
+ attr_accessor :ordering_key, :sort_order
7
6
 
8
7
  def initialize
9
8
  @ordering_key = "last_seen"
@@ -28,13 +28,13 @@ module Ukemi
28
28
  memo[record.data] << {
29
29
  first_seen: record.first_seen,
30
30
  last_seen: record.last_seen,
31
- source: record.source,
31
+ source: record.source
32
32
  }
33
33
  end
34
34
  # Merge first seen last seen and make the sources a list.
35
35
  formatted = memo.map do |key, sources|
36
- first_seens = sources.map { |record| convert_to_unixtime record.dig(:first_seen) }.compact
37
- last_seens = sources.map { |record| convert_to_unixtime record.dig(:last_seen) }.compact
36
+ first_seens = sources.filter_map { |record| convert_to_unixtime record[:first_seen] }
37
+ last_seens = sources.filter_map { |record| convert_to_unixtime record[:last_seen] }
38
38
  [
39
39
  key,
40
40
  {
@@ -49,7 +49,7 @@ module Ukemi
49
49
  ordering_key = Ukemi.configuration.ordering_key.to_sym
50
50
  sort_order = Ukemi.configuration.sort_order
51
51
  formatted.sort_by do |_key, hash|
52
- value = hash.dig(ordering_key)
52
+ value = hash[ordering_key]
53
53
  if sort_order == "DESC"
54
54
  value ? -convert_to_unixtime(value) : -1
55
55
  else
data/lib/ukemi/record.rb CHANGED
@@ -2,10 +2,7 @@
2
2
 
3
3
  module Ukemi
4
4
  class Record
5
- attr_reader :data
6
- attr_reader :first_seen
7
- attr_reader :last_seen
8
- attr_reader :source
5
+ attr_reader :data, :first_seen, :last_seen, :source
9
6
 
10
7
  def initialize(data:, first_seen: nil, last_seen: nil, source: nil)
11
8
  @data = data
@@ -8,7 +8,7 @@ module Ukemi
8
8
  private
9
9
 
10
10
  def config_keys
11
- %w(CIRCL_PASSIVE_USERNAME CIRCL_PASSIVE_PASSWORD)
11
+ %w[CIRCL_PASSIVE_USERNAME CIRCL_PASSIVE_PASSWORD]
12
12
  end
13
13
 
14
14
  def api
@@ -26,14 +26,14 @@ module Ukemi
26
26
  def passive_dns_lookup(data, key = nil)
27
27
  results = api.dns.query(data)
28
28
  results = results.select do |result|
29
- result.dig("rrtype") == "A"
29
+ result["rrtype"] == "A"
30
30
  end
31
31
 
32
32
  results.map do |result|
33
33
  Record.new(
34
- data: result.dig(key),
35
- first_seen: Time.at(result.dig("time_first")).to_date.to_s,
36
- last_seen: Time.at(result.dig("time_last")).to_date.to_s,
34
+ data: result[key],
35
+ first_seen: Time.at(result["time_first"]).to_date.to_s,
36
+ last_seen: Time.at(result["time_last"]).to_date.to_s,
37
37
  source: name
38
38
  )
39
39
  end
@@ -9,7 +9,7 @@ module Ukemi
9
9
  private
10
10
 
11
11
  def config_keys
12
- %w(DNSDB_API_KEY)
12
+ %w[DNSDB_API_KEY]
13
13
  end
14
14
 
15
15
  def api
@@ -19,13 +19,13 @@ module Ukemi
19
19
  def lookup_by_ip(data)
20
20
  results = api.lookup.rdata(type: "ip", value: data, rrtype: "A")
21
21
  results.map do |result|
22
- rrname = result.dig("rrname")
22
+ rrname = result["rrname"]
23
23
  # Remove the last dot (e.g. "example.com.")
24
24
  data = rrname[0..-2]
25
25
  Record.new(
26
26
  data: data,
27
- first_seen: Time.at(result.dig("time_first")).to_date.to_s,
28
- last_seen: Time.at(result.dig("time_last")).to_date.to_s,
27
+ first_seen: Time.at(result["time_first"]).to_date.to_s,
28
+ last_seen: Time.at(result["time_last"]).to_date.to_s,
29
29
  source: name
30
30
  )
31
31
  end
@@ -34,10 +34,10 @@ module Ukemi
34
34
  def lookup_by_domain(data)
35
35
  results = api.lookup.rrset(owner_name: data, rrtype: "A")
36
36
  results.map do |result|
37
- first_seen = Time.at(result.dig("time_first")).to_date.to_s
38
- last_seen = Time.at(result.dig("time_last")).to_date.to_s
37
+ first_seen = Time.at(result["time_first"]).to_date.to_s
38
+ last_seen = Time.at(result["time_last"]).to_date.to_s
39
39
 
40
- values = result.dig("rdata") || []
40
+ values = result["rdata"] || []
41
41
  values.map do |value|
42
42
  Record.new(
43
43
  data: value,
@@ -9,7 +9,7 @@ module Ukemi
9
9
  private
10
10
 
11
11
  def config_keys
12
- %w(OTX_API_KEY)
12
+ %w[OTX_API_KEY]
13
13
  end
14
14
 
15
15
  def api_key
@@ -31,8 +31,8 @@ module Ukemi
31
31
  next if record.record_type != "A"
32
32
 
33
33
  domain = record.hostname
34
- memo[domain] << Date.parse(record.last).to_s
35
- memo[domain] << Date.parse(record.first).to_s
34
+ memo[domain] << Date.parse(record.last).to_s
35
+ memo[domain] << Date.parse(record.first).to_s
36
36
  end
37
37
 
38
38
  memo.keys.map do |domain|
@@ -54,8 +54,8 @@ module Ukemi
54
54
  next if record.hostname != data
55
55
 
56
56
  ip = record.address
57
- memo[ip] << Date.parse(record.last).to_s
58
- memo[ip] << Date.parse(record.first).to_s
57
+ memo[ip] << Date.parse(record.last).to_s
58
+ memo[ip] << Date.parse(record.first).to_s
59
59
  end
60
60
 
61
61
  memo.keys.map do |ip|
@@ -12,12 +12,12 @@ module Ukemi
12
12
  end
13
13
 
14
14
  def config_keys
15
- %w(PASSIVETOTAL_USERNAME PASSIVETOTAL_API_KEY)
15
+ %w[PASSIVETOTAL_USERNAME PASSIVETOTAL_API_KEY]
16
16
  end
17
17
 
18
18
  def lookup_by_ip(data)
19
19
  res = api.dns.passive(data)
20
- results = res.dig("results") || []
20
+ results = res["results"] || []
21
21
  convert_to_records results
22
22
  end
23
23
 
@@ -27,9 +27,9 @@ module Ukemi
27
27
 
28
28
  def convert_to_records(results)
29
29
  results.map do |result|
30
- data = result.dig("resolve")
31
- first_seen = result.dig("firstSeen").to_s.split.first
32
- last_seen = result.dig("lastSeen").to_s.split.first
30
+ data = result["resolve"]
31
+ first_seen = result["firstSeen"].to_s.split.first
32
+ last_seen = result["lastSeen"].to_s.split.first
33
33
  Record.new(
34
34
  data: data,
35
35
  first_seen: first_seen,
@@ -9,7 +9,7 @@ module Ukemi
9
9
  private
10
10
 
11
11
  def config_keys
12
- %w(SECURITYTRAILS_API_KEY)
12
+ %w[SECURITYTRAILS_API_KEY]
13
13
  end
14
14
 
15
15
  def api
@@ -17,9 +17,9 @@ module Ukemi
17
17
  end
18
18
 
19
19
  def lookup_by_ip(data)
20
- result = api.domains.search( filter: { ipv4: data })
21
- records = result.dig("records") || []
22
- hostnames = records.map { |record| record.dig("hostname") }
20
+ result = api.domains.search(filter: { ipv4: data })
21
+ records = result["records"] || []
22
+ hostnames = records.map { |record| record["hostname"] }
23
23
  hostnames.map do |hostname|
24
24
  Record.new(
25
25
  data: hostname,
@@ -32,15 +32,15 @@ module Ukemi
32
32
 
33
33
  def lookup_by_domain(data)
34
34
  result = api.history.get_all_dns_history(data, type: "a")
35
- records = result.dig("records") || []
35
+ records = result["records"] || []
36
36
 
37
37
  memo = Hash.new { |h, k| h[k] = [] }
38
38
  records.each do |record|
39
- values = record.dig("values") || []
39
+ values = record["values"] || []
40
40
  values.each do |value|
41
- ip = value.dig("ip")
42
- memo[ip] << record.dig("first_seen")
43
- memo[ip] << record.dig("last_seen")
41
+ ip = value["ip"]
42
+ memo[ip] << record["first_seen"]
43
+ memo[ip] << record["last_seen"]
44
44
  end
45
45
  end
46
46
 
@@ -9,7 +9,7 @@ module Ukemi
9
9
  private
10
10
 
11
11
  def config_keys
12
- %w(VIRUSTOTAL_API_KEY)
12
+ %w[VIRUSTOTAL_API_KEY]
13
13
  end
14
14
 
15
15
  def api
@@ -29,9 +29,9 @@ module Ukemi
29
29
  end
30
30
 
31
31
  def extract_attributes(response)
32
- data = response.dig("data") || []
32
+ data = response["data"] || []
33
33
  data.map do |item|
34
- item.dig("attributes") || []
34
+ item["attributes"] || []
35
35
  end
36
36
  end
37
37
 
@@ -39,8 +39,8 @@ module Ukemi
39
39
  memo = Hash.new { |h, k| h[k] = [] }
40
40
 
41
41
  attributes.each do |attribute|
42
- data = attribute.dig(key)
43
- date = Time.at(attribute.dig("date")).to_date.to_s
42
+ data = attribute[key]
43
+ date = Time.at(attribute["date"]).to_date.to_s
44
44
  memo[data] << date
45
45
  end
46
46
 
data/lib/ukemi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ukemi
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.1"
5
5
  end
data/ukemi.gemspec CHANGED
@@ -1,18 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'lib/ukemi/version'
3
+ require_relative "lib/ukemi/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "ukemi"
7
- spec.version = Ukemi::VERSION
8
- spec.authors = ["Manabu Niseki"]
9
- spec.email = ["manabu.niseki@gmail.com"]
6
+ spec.name = "ukemi"
7
+ spec.version = Ukemi::VERSION
8
+ spec.authors = ["Manabu Niseki"]
9
+ spec.email = ["manabu.niseki@gmail.com"]
10
10
 
11
- spec.summary = "A CLI tool for querying passive DNS services"
12
- spec.description = "A CLI tool for querying passive DNS services"
13
- spec.homepage = "https://github.com/ninoseki/ukemi"
14
- spec.license = "MIT"
15
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
11
+ spec.summary = "A CLI tool for querying passive DNS services"
12
+ spec.description = "A CLI tool for querying passive DNS services"
13
+ spec.homepage = "https://github.com/ninoseki/ukemi"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
 
@@ -21,26 +21,28 @@ Gem::Specification.new do |spec|
21
21
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
22
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
23
  end
24
- spec.bindir = "exe"
25
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
+ spec.bindir = "exe"
25
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
27
 
28
- spec.add_development_dependency "bundler", "~> 2.1"
29
- spec.add_development_dependency "coveralls", "~> 0.8"
28
+ spec.add_development_dependency "bundler", "~> 2.2"
29
+ spec.add_development_dependency "coveralls_reborn", "~> 0.22"
30
+ spec.add_development_dependency "overcommit", "~> 0.58"
30
31
  spec.add_development_dependency "rake", "~> 13.0"
31
- spec.add_development_dependency "rspec", "~> 3.9"
32
+ spec.add_development_dependency "rspec", "~> 3.10"
33
+ spec.add_development_dependency "standard", "~> 1.1"
32
34
  spec.add_development_dependency "vcr", "~> 6.0"
33
- spec.add_development_dependency "webmock", "~> 3.8"
35
+ spec.add_development_dependency "webmock", "~> 3.14"
34
36
 
35
- spec.add_dependency "addressable", "~> 2.7"
37
+ spec.add_dependency "addressable", "~> 2.8"
36
38
  spec.add_dependency "dnsdb", "~> 0.1"
37
39
  spec.add_dependency "mem", "~> 0.1"
38
40
  spec.add_dependency "otx_ruby", "~> 0.9"
39
- spec.add_dependency "parallel", "~> 1.19"
41
+ spec.add_dependency "parallel", "~> 1.20"
40
42
  spec.add_dependency "passive_circl", "~> 0.1"
41
43
  spec.add_dependency "passivetotalx", "~> 0.1"
42
44
  spec.add_dependency "public_suffix", "~> 4.0"
43
45
  spec.add_dependency "securitytrails", "~> 1.0"
44
- spec.add_dependency "thor", "~> 1.0"
46
+ spec.add_dependency "thor", "~> 1.1"
45
47
  spec.add_dependency "virustotalx", "~> 1.1"
46
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ukemi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manabu Niseki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-01 00:00:00.000000000 Z
11
+ date: 2021-08-13 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.1'
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.1'
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.22'
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.22'
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,14 +72,28 @@ 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.1'
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.1'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: vcr
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +114,28 @@ dependencies:
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: '3.8'
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.8'
124
+ version: '3.14'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: addressable
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: '2.7'
131
+ version: '2.8'
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: '2.7'
138
+ version: '2.8'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: dnsdb
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +184,14 @@ dependencies:
156
184
  requirements:
157
185
  - - "~>"
158
186
  - !ruby/object:Gem::Version
159
- version: '1.19'
187
+ version: '1.20'
160
188
  type: :runtime
161
189
  prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
192
  - - "~>"
165
193
  - !ruby/object:Gem::Version
166
- version: '1.19'
194
+ version: '1.20'
167
195
  - !ruby/object:Gem::Dependency
168
196
  name: passive_circl
169
197
  requirement: !ruby/object:Gem::Requirement
@@ -226,14 +254,14 @@ dependencies:
226
254
  requirements:
227
255
  - - "~>"
228
256
  - !ruby/object:Gem::Version
229
- version: '1.0'
257
+ version: '1.1'
230
258
  type: :runtime
231
259
  prerelease: false
232
260
  version_requirements: !ruby/object:Gem::Requirement
233
261
  requirements:
234
262
  - - "~>"
235
263
  - !ruby/object:Gem::Version
236
- version: '1.0'
264
+ version: '1.1'
237
265
  - !ruby/object:Gem::Dependency
238
266
  name: virustotalx
239
267
  requirement: !ruby/object:Gem::Requirement
@@ -256,9 +284,11 @@ executables:
256
284
  extensions: []
257
285
  extra_rdoc_files: []
258
286
  files:
287
+ - ".github/workflows/test.yaml"
259
288
  - ".gitignore"
289
+ - ".overcommit.yml"
260
290
  - ".rspec"
261
- - ".travis.yml"
291
+ - ".standard.yml"
262
292
  - Gemfile
263
293
  - LICENSE
264
294
  - README.md
@@ -294,14 +324,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
294
324
  requirements:
295
325
  - - ">="
296
326
  - !ruby/object:Gem::Version
297
- version: 2.3.0
327
+ version: 2.7.0
298
328
  required_rubygems_version: !ruby/object:Gem::Requirement
299
329
  requirements:
300
330
  - - ">="
301
331
  - !ruby/object:Gem::Version
302
332
  version: '0'
303
333
  requirements: []
304
- rubygems_version: 3.1.2
334
+ rubygems_version: 3.2.22
305
335
  signing_key:
306
336
  specification_version: 4
307
337
  summary: A CLI tool for querying passive DNS services
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.7
6
- before_install: gem install bundler -v 2.1