github-pages-health-check 1.17.0 → 1.17.7

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: 707b4cdba4aba9ac4eff72df8a4428f40b0d6f929570ad3c088b469f26d8e25d
4
- data.tar.gz: df3af08fb19f7ca11da1100bbddbeb4c8418221f88aa1515e06b2a39baba2276
3
+ metadata.gz: e961f88294ef76b14d92f54148d7945f53b6530fca559f6bbc2293791009a1aa
4
+ data.tar.gz: 031ae5026c940269ef7f6c76440acb3b20ee8c4df284280877778d4f8554a31c
5
5
  SHA512:
6
- metadata.gz: bb30c4dcb64983947a346d6b92ce788d543f64dfdf200ed7e63a79b87e4133f025b57b2acce54d465575d8b3b80ab4b82a3566431f45ab56055c770764e4eb33
7
- data.tar.gz: 64ace9fb8bc8bad17f3d3c0e5bbf682a3c5555a8b1e84e838136ae53caf848583e0dfefb54abef47527aa52ffaa71b165c33b1c0adfe11001caed318a8d0a74c
6
+ metadata.gz: ae56fb03f358257dd708d28e8241e57bb706efe4491794aaaf23c5e0fd6f74c9bc7e052d70d6c407edf9e1b9126bad029c4b4c2076208765d57a57301f2ee78b
7
+ data.tar.gz: 39902634d23d7d69b110dbe17f2ae6fa5f668628e3829c0c816bffe46143320d531bd23f098612c87f480ec416e8ca754125eaec5f58ba364ff2496c0798236d
@@ -0,0 +1,15 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "10:00"
8
+ timezone: Europe/Vienna
9
+ pull-request-branch-name:
10
+ separator: "-"
11
+ open-pull-requests-limit: 99
12
+ allow:
13
+ - dependency-type: direct
14
+ - dependency-type: indirect
15
+ rebase-strategy: disabled
@@ -9,6 +9,7 @@
9
9
  197.234.240.0/22
10
10
  198.41.128.0/17
11
11
  162.158.0.0/15
12
- 104.16.0.0/12
12
+ 104.16.0.0/13
13
+ 104.24.0.0/14
13
14
  172.64.0.0/13
14
- 131.0.72.0/22
15
+ 131.0.72.0/22
@@ -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
 
@@ -356,7 +387,6 @@ module GitHubPages
356
387
  return unless dns_resolves?
357
388
 
358
389
  @served_by_pages = begin
359
- return false unless response.mock? || response.return_code == :ok
360
390
  return true if response.headers["Server"] == "GitHub.com"
361
391
 
362
392
  # Typhoeus mangles the case of the header, compare insensitively
@@ -406,7 +436,7 @@ module GitHubPages
406
436
 
407
437
  # Any errors querying CAA records
408
438
  def caa_error
409
- return nil unless caa.errored?
439
+ return nil unless caa&.errored?
410
440
 
411
441
  caa.error.class.name
412
442
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GitHubPages
4
4
  module HealthCheck
5
- VERSION = "1.17.0"
5
+ VERSION = "1.17.7"
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.0
4
+ version: 1.17.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-04 00:00:00.000000000 Z
11
+ date: 2021-08-23 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'
@@ -93,6 +93,7 @@ extensions: []
93
93
  extra_rdoc_files: []
94
94
  files:
95
95
  - ".dockerignore"
96
+ - ".github/dependabot.yml"
96
97
  - ".github/workflows/push-cibuild.yml"
97
98
  - ".gitignore"
98
99
  - ".rspec"
@@ -145,7 +146,7 @@ homepage: https://github.com/github/github-pages-health-check
145
146
  licenses:
146
147
  - MIT
147
148
  metadata: {}
148
- post_install_message:
149
+ post_install_message:
149
150
  rdoc_options: []
150
151
  require_paths:
151
152
  - lib
@@ -161,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
162
  version: '0'
162
163
  requirements: []
163
164
  rubygems_version: 3.1.2
164
- signing_key:
165
+ signing_key:
165
166
  specification_version: 4
166
167
  summary: Checks your GitHub Pages site for commons DNS configuration issues
167
168
  test_files: []