github-pages-health-check 1.8.1 → 1.9.0

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: 63d816be2a09fb2b98a8aa9de70ff9533f72e0711047ab63b730a02aa3b43f85
4
- data.tar.gz: 21b4ecb9db896306e1d5b4940172b6249291af3864d2f3973ecb1393556ded4f
3
+ metadata.gz: 491f20abd7228f543a6f4682b74918a9f32265ca0f0f015d41ae40e5163462e6
4
+ data.tar.gz: 1dcb08e4d692030537e2d1334c09edbcac2e4179fb7ad05fe23cb412c6401270
5
5
  SHA512:
6
- metadata.gz: 5fa9eb6db92604ca00ffd2e32a7cbc1c700edc1f43e2dea993a9ccd75f68376d539a9161142bb4ffb7725f7c121c346f0559e5dc65881267985b72e7d887464c
7
- data.tar.gz: 37154b43277d90b689a84a5f4dd145ed04a03d54ad7761c149414e7d5ce17868bf76b1d6ff2f40fc6e16a97d373e1ebf6b0fd4db6dfc673c5da3451422ddad15
6
+ metadata.gz: 18bb1e7f1c7ece16a011ddd55c4f4238ab600be77013705857306cbbfd6d74e120b72f62ea853647c1b7d0a8affcc0dda222c7a22008645f4f66abe755c64634
7
+ data.tar.gz: b099817a6ebd5298f81a993f5c5c2b767bd291122f0262f81002bdb4a1fa315864f838698b9e192719f46fbbd4b7b0ceba59e92a3ad8fe10f94a3edf97aa5873
data/.rubocop.yml CHANGED
@@ -128,16 +128,17 @@ Metrics/ClassLength:
128
128
  - lib/github-pages-health-check/domain.rb
129
129
 
130
130
  Metrics/CyclomaticComplexity:
131
- Max: 8
131
+ Max: 9
132
132
  Exclude:
133
133
  - lib/github-pages-health-check/printer.rb
134
134
 
135
135
  Metrics/PerceivedComplexity:
136
- Max: 8
136
+ Max: 9
137
137
  Exclude:
138
138
  - lib/github-pages-health-check/printer.rb
139
139
 
140
140
  Metrics/AbcSize:
141
+ Max: 17
141
142
  Exclude:
142
143
  - lib/github-pages-health-check/printer.rb
143
144
 
@@ -105,6 +105,7 @@ module GitHubPages
105
105
  return true if proxied?
106
106
  raise Errors::InvalidARecordError, :domain => self if invalid_a_record?
107
107
  raise Errors::InvalidCNAMEError, :domain => self if invalid_cname?
108
+ raise Errors::InvalidAAAARecordError, :domain => self if invalid_aaaa_record?
108
109
  raise Errors::NotServedByPagesError, :domain => self unless served_by_pages?
109
110
  true
110
111
  end
@@ -114,6 +115,12 @@ module GitHubPages
114
115
  @deprecated_ip = (valid_domain? && a_record? && old_ip_address?)
115
116
  end
116
117
 
118
+ def invalid_aaaa_record?
119
+ return @invalid_aaaa_record if defined? @invalid_aaaa_record
120
+ @invalid_aaaa_record = (valid_domain? && should_be_a_record? &&
121
+ aaaa_record_present?)
122
+ end
123
+
117
124
  def invalid_a_record?
118
125
  return @invalid_a_record if defined? @invalid_a_record
119
126
  @invalid_a_record = (valid_domain? && a_record? && !should_be_a_record?)
@@ -241,6 +248,7 @@ module GitHubPages
241
248
 
242
249
  REQUESTED_RECORD_TYPES = [
243
250
  Dnsruby::Types::A,
251
+ Dnsruby::Types::AAAA,
244
252
  Dnsruby::Types::CNAME,
245
253
  Dnsruby::Types::MX
246
254
  ].freeze
@@ -286,6 +294,11 @@ module GitHubPages
286
294
  dns.first.type == Dnsruby::Types::A
287
295
  end
288
296
 
297
+ def aaaa_record_present?
298
+ return unless dns?
299
+ dns.any? { |answer| answer.type == Dnsruby::Types::AAAA }
300
+ end
301
+
289
302
  # Is this domain's first response a CNAME record?
290
303
  def cname_record?
291
304
  return unless dns?
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GitHubPages
4
+ module HealthCheck
5
+ module Errors
6
+ class InvalidAAAARecordError < GitHubPages::HealthCheck::Error
7
+ DOCUMENTATION_PATH = "/articles/setting-up-a-custom-domain-with-github-pages/".freeze
8
+
9
+ def message
10
+ <<-MSG
11
+ Your site's DNS settings are using a custom subdomain, #{domain.host},
12
+ that's set up with an AAAA record. GitHub Pages currently does not support
13
+ IPv6.
14
+ MSG
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -27,7 +27,6 @@ module GitHubPages
27
27
  @domain = domain
28
28
  end
29
29
 
30
- # rubocop:disable Metrics/AbcSize
31
30
  def query(type)
32
31
  if PREFERS_AUTHORITATIVE_ANSWER.include?(type)
33
32
  answer = authoritative_resolver.query(domain, type).answer
@@ -38,7 +37,6 @@ module GitHubPages
38
37
  rescue Dnsruby::ResolvTimeout, Dnsruby::ResolvError
39
38
  self.class.default_resolver.query(domain, type).answer
40
39
  end
41
- # rubocop:enable Metrics/AbcSize
42
40
 
43
41
  private
44
42
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GitHubPages
4
4
  module HealthCheck
5
- VERSION = "1.8.1".freeze
5
+ VERSION = "1.9.0".freeze
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.8.1
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-07 00:00:00.000000000 Z
11
+ date: 2018-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -192,6 +192,7 @@ files:
192
192
  - lib/github-pages-health-check/errors/build_error.rb
193
193
  - lib/github-pages-health-check/errors/deprecated_ip_error.rb
194
194
  - lib/github-pages-health-check/errors/invalid_a_record_error.rb
195
+ - lib/github-pages-health-check/errors/invalid_aaaa_record_error.rb
195
196
  - lib/github-pages-health-check/errors/invalid_cname_error.rb
196
197
  - lib/github-pages-health-check/errors/invalid_dns_error.rb
197
198
  - lib/github-pages-health-check/errors/invalid_domain_error.rb