github-pages-health-check 1.17.2 → 1.17.6

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: 41b89d75e93004b6de7694b363bcf15769ee02c8b03e7e6cea0eab99afa213cd
4
- data.tar.gz: 8c0ee563b5ca7c34bfcbbb61048b0e375e936ca8be0f8d527e72b1fa41917a50
3
+ metadata.gz: ab80d6cf8da62b7d552dc21cb09fb42835a438cd4c62c84fb7b965120348b8d8
4
+ data.tar.gz: f5d6054ec2d220b5ec775fff2dffc714a2169f3052daa63cb6ae2678a2610fc3
5
5
  SHA512:
6
- metadata.gz: 4e319123a847776a35923ce81d48d82e633a036166decf229bcd277437288f85c9333739af879584ea7ceb21d295a306b4004089e157da52721e725dd9eb1faf
7
- data.tar.gz: b2a091d7fdd15f89ca9d0ce22d9c6c8bfb6357a1c7f660ce8faa3ee8d5b8a0e3ea2f2299fab35dfc037c8ec369d6321bc2ff17c8923f18a2887754d1ab1769a7
6
+ metadata.gz: b9129bccde2467d071eae219e3de4372682f6e95b9622ed7974523a706680370ecea940138e3d6a38fcd0b667d5ef8c2465688c6825ed6e0253ca3aec9340e9a
7
+ data.tar.gz: d4e701f69db381861cde03f85c1c53ee37c39476db2744afaee9b7b810f033579feaf15a3d055849a7937fa7a8fbe70951eeb48749bc486d20351127b35959c9
@@ -4,7 +4,7 @@
4
4
  103.245.222.0/23
5
5
  103.245.224.0/24
6
6
  104.156.80.0/20
7
- 146.75.0.0/16
7
+ 146.75.0.0/17
8
8
  151.101.0.0/16
9
9
  157.52.64.0/18
10
10
  167.82.0.0/17
@@ -19,6 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.add_dependency("addressable", "~> 2.3")
20
20
  s.add_dependency("dnsruby", "~> 1.60")
21
21
  s.add_dependency("octokit", "~> 4.0")
22
- s.add_dependency("public_suffix", ">= 2.0.2", "< 5.0")
22
+ s.add_dependency("public_suffix", ">= 3.0", "< 5.0")
23
23
  s.add_dependency("typhoeus", "~> 1.3")
24
24
  end
@@ -85,7 +85,7 @@ module GitHubPages
85
85
  cname_to_fastly? pointed_to_github_pages_ip?
86
86
  non_github_pages_ip_present? pages_domain?
87
87
  served_by_pages? valid? reason valid_domain? https?
88
- enforces_https? https_error https_eligible? caa_error
88
+ enforces_https? https_error https_eligible? caa_error dns_zone_soa? dns_zone_ns?
89
89
  ].freeze
90
90
 
91
91
  def self.redundant(host)
@@ -164,7 +164,10 @@ module GitHubPages
164
164
  # Is this domain an apex domain, meaning a CNAME would be innapropriate
165
165
  def apex_domain?
166
166
  return @apex_domain if defined?(@apex_domain)
167
- return unless valid_domain?
167
+
168
+ return false unless valid_domain?
169
+
170
+ return true if dns_zone_soa? && dns_zone_ns?
168
171
 
169
172
  # PublicSuffix.domain pulls out the apex-level domain name.
170
173
  # E.g. PublicSuffix.domain("techblog.netflix.com") # => "netflix.com"
@@ -177,6 +180,30 @@ module GitHubPages
177
180
  :ignore_private => true) == unicode_host
178
181
  end
179
182
 
183
+ #
184
+ # Does the domain have an associated SOA record?
185
+ #
186
+ def dns_zone_soa?
187
+ return @soa_records if defined?(@soa_records)
188
+ return false unless dns?
189
+
190
+ @soa_records = dns.any? do |answer|
191
+ answer.type == Dnsruby::Types::SOA && answer.name.to_s == host
192
+ end
193
+ end
194
+
195
+ #
196
+ # Does the domain have assoicated NS records?
197
+ #
198
+ def dns_zone_ns?
199
+ return @ns_records if defined?(@ns_records)
200
+ return false unless dns?
201
+
202
+ @ns_records = dns.any? do |answer|
203
+ answer.type == Dnsruby::Types::NS && answer.name.to_s == host
204
+ end
205
+ end
206
+
180
207
  # Should the domain use an A record?
181
208
  def should_be_a_record?
182
209
  !pages_io_domain? && (apex_domain? || mx_records_present?)
@@ -278,7 +305,9 @@ module GitHubPages
278
305
  Dnsruby::Types::A,
279
306
  Dnsruby::Types::AAAA,
280
307
  Dnsruby::Types::CNAME,
281
- Dnsruby::Types::MX
308
+ Dnsruby::Types::MX,
309
+ Dnsruby::Types::NS,
310
+ Dnsruby::Types::SOA
282
311
  ].freeze
283
312
 
284
313
  # Returns an array of DNS answers
@@ -339,6 +368,8 @@ module GitHubPages
339
368
  # The domain to which this domain's CNAME resolves
340
369
  # Returns nil if the domain is not a CNAME
341
370
  def cname
371
+ return unless dns?
372
+
342
373
  cnames = dns.take_while { |answer| answer.type == Dnsruby::Types::CNAME }
343
374
  return if cnames.empty?
344
375
 
@@ -405,7 +436,7 @@ module GitHubPages
405
436
 
406
437
  # Any errors querying CAA records
407
438
  def caa_error
408
- return nil unless caa.errored?
439
+ return nil unless caa&.errored?
409
440
 
410
441
  caa.error.class.name
411
442
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GitHubPages
4
4
  module HealthCheck
5
- VERSION = "1.17.2"
5
+ VERSION = "1.17.6"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-pages-health-check
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.17.2
4
+ version: 1.17.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-21 00:00:00.000000000 Z
11
+ date: 2021-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 2.0.2
61
+ version: '3.0'
62
62
  - - "<"
63
63
  - !ruby/object:Gem::Version
64
64
  version: '5.0'
@@ -68,7 +68,7 @@ dependencies:
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: 2.0.2
71
+ version: '3.0'
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '5.0'