fastly 2.5.0 → 3.0.1

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: cc8a553cdbdfbe2e476bae280ce2773a1a12d82810ca7e35d6d32242f6e89adc
4
- data.tar.gz: 8985329230915385a17eb5db0ce577296ad1e4913cf74343c67051aba383c86f
3
+ metadata.gz: 1e44661612cc70c25283004a7817bad49b3a74cf021cda947d58a508c0032707
4
+ data.tar.gz: 61a36603f52e2d930450bd1f25963ac65517a5073f090ed4998b6606327938de
5
5
  SHA512:
6
- metadata.gz: 80f1b15c3236123511de643ac4d3c5b9a2890f76b445eefb8386ae5576d3446588383f83e21816312d4d8f8df7e0b008c563eec6dd9df4ed8d3cc4b86a181426
7
- data.tar.gz: fc81a4d00879da356801482e75d763b88c2a584fc8c7d117f8ab108b2e7d32475817c81a6a53d3265255859e773a8eb5b0e003cd833206a9e35049f06ec92c99
6
+ metadata.gz: a70fa226cb6b9169b89bef2c22febf1d6afad9868cc9b2f6f681c341205b526d8f527f135dffae8e25251b29d8c1e0d81c3a87af4b67507b70cb91e34df020ed
7
+ data.tar.gz: f527b3149e5c63ed2f2343641761e357f5662bc923c2f3cce44a7d4b5db673db8e2c5abfe1fe150c1ea2b2604db1e40ff8a769b998fa8c692140e9bbf9ffc56f
data/.env.example ADDED
@@ -0,0 +1,3 @@
1
+ FASTLY_TEST_USER=
2
+ FASTLY_TEST_PASSWORD=
3
+ FASTLY_TEST_API_KEY=
data/CHANGELOG.md CHANGED
@@ -1,6 +1,23 @@
1
1
  # Change Log
2
2
 
3
+ ## [v3.0.1](https://github.com/fastly/fastly-ruby/tree/v3.0.1) (2021-02-03)
4
+
5
+ [Full Changelog](https://github.com/fastly/fastly-ruby/compare/v3.0.0...v3.0.1)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Remove deprecation warning [\#174](https://github.com/fastly/fastly-ruby/pull/174) ([conniechu929](https://github.com/conniechu929))
10
+
11
+ ## [v3.0.0](https://github.com/fastly/fastly-ruby/tree/v3.0.0) (2021-02-03)
12
+
13
+ [Full Changelog](https://github.com/fastly/fastly-ruby/compare/v2.5.3...v3.0.0)
14
+
15
+ **Merged pull requests:**
16
+
17
+ - Removes session authentication [\#170](https://github.com/fastly/fastly-ruby/pull/170) ([conniechu929](https://github.com/conniechu929))
18
+
3
19
  ## [v2.5.0](https://github.com/fastly/fastly-ruby/tree/v2.5.0) (2020-01-16)
20
+
4
21
  [Full Changelog](https://github.com/fastly/fastly-ruby/compare/v2.4.0...v2.5.0)
5
22
 
6
23
  **Merged pull requests:**
@@ -478,4 +495,4 @@ Add Healthchecks and Syslog endpoint streaming
478
495
  Initial releasee
479
496
 
480
497
 
481
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
498
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile CHANGED
@@ -4,10 +4,14 @@ gemspec
4
4
 
5
5
  group :development, :test do
6
6
  gem 'appraisal', '~> 2.1'
7
- gem 'rake', '~> 10.3.2'
7
+ gem 'rake', '>= 12.3.3'
8
8
  gem 'rdoc', '~> 4.1.1'
9
9
  gem 'minitest', '~> 5.3.4'
10
10
  gem 'pry'
11
11
  gem 'rubocop', '~> 0.57.2', require: false
12
12
  gem 'webmock'
13
13
  end
14
+
15
+ group :test do
16
+ gem 'dotenv'
17
+ end
data/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  Client library for interacting with the Fastly web acceleration service [API](http://docs.fastly.com/api)
4
4
 
5
+ ### A Note About Authentication
6
+
7
+ Authenticating with a username/password is deprecated and will no longer be available starting September 2020.
8
+
9
+ Authenticating with an API Token is shown in the example section below. For more information on API Tokens, please see [Fastly's API Token documentation](https://developer.fastly.com/reference/api/auth/). For more information about authenticating to our API, please see our [Authentication section](https://developer.fastly.com/reference/api/#authentication).
10
+
5
11
  ## Examples
6
12
 
7
13
  Add fastly to your Gemfile:
@@ -13,7 +19,8 @@ Create a fastly client:
13
19
 
14
20
  ```ruby
15
21
  # some_file.rb
16
- # use {api_key: 'your-key'} or {user: 'username', password: 'password'} as login options
22
+ # username/password authentication is deprecated and will not be available
23
+ # starting September 2020; use {api_key: 'your-key'} as the login option
17
24
  fastly = Fastly.new(login_opts)
18
25
 
19
26
  current_user = fastly.current_user
@@ -202,19 +209,23 @@ This option should not be used in a production setting as all HTTP headers, requ
202
209
 
203
210
  ### Notes for testing
204
211
 
205
- The test suite requires the following `ENV` variables to be set:
212
+ The test suite tests create and delete three services in sequence, so you may want to create an account just for these tests.
213
+
214
+ To run the test suite:
215
+
216
+ 1. Generate a personal token for these tests: https://manage.fastly.com/account/personal/tokens
217
+
218
+ 2. Copy `.env.example` to `.env` and add the values for the variables:
206
219
 
207
- * `FASTLY_TEST_USER` - Your user email
208
- * `FASTLY_TEST_PASSWORD` - Your account password
209
- * `FASTLY_TEST_API_KEY` - Your API key (found at https://app.fastly.com/#account)
220
+ * `FASTLY_TEST_USER` - Your user email
221
+ * `FASTLY_TEST_PASSWORD` - Your account password
222
+ * `FASTLY_TEST_API_KEY` - Your personal token
210
223
 
211
- While the test suite is safe to be run on all accounts and isn't harmful to your
212
- data, the tests will create and delete 3 services in sequence so you may want
213
- to create an account just for tests.
224
+ 3. Run the tests via `bundle exec rake test:unit`
214
225
 
215
226
  ## Copyright
216
227
 
217
- Copyright 2011-2014 - Fastly Inc
228
+ Copyright 2011-2020 - Fastly, Inc.
218
229
 
219
230
  ## Redistribution
220
231
 
data/RELEASE.md ADDED
@@ -0,0 +1,15 @@
1
+ **Release Process**
2
+
3
+ 1. Sign up for an account on Ruby Gems (https://rubygems.org/sign_up)
4
+ 2. Go to the `#app-eng-backends` channel and get added to the ruby gem (https://rubygems.org/gems/fastly)
5
+ 3. Merge PR after CI passes
6
+ 4. Open new PR to update `CHANGELOG.md`
7
+ 5. Merge `CHANGELOG.md` PR
8
+ 6. Rebase latest remote master branch locally (`git pull --rebase origin master`).
9
+ 7. Tag a new release (`git tag vX.Y.Z && git push origin vX.Y.Z`)
10
+ 8. Copy and paste `CHANGELOG.md` into the draft release
11
+ 9. Publish draft release
12
+ 10. Publish the gem to RubyGems.org (you will need your username and password on Ruby Gems)
13
+
14
+ - generate a new gem spec file with the new version `gem build fastly.gemspec`
15
+ - update RubyGems.org `gem push fastly-{VERSION}.gem`
data/lib/fastly.rb CHANGED
@@ -55,8 +55,8 @@ class Fastly
55
55
  #
56
56
  # Some methods require full username and password rather than just auth token.
57
57
  def initialize(opts)
58
- if opts[:api_key].nil? && (opts[:password].nil? || opts[:user].nil?)
59
- raise ArgumentError, "Required options missing. Please pass either ':api_key' or both ':user' and ':password'."
58
+ if opts[:api_key].nil?
59
+ raise ArgumentError, "Required option missing. Please pass ':api_key'."
60
60
  end
61
61
 
62
62
  client(opts)
@@ -16,9 +16,9 @@ class Fastly
16
16
  end
17
17
 
18
18
  # Get the number of the Version this belongs to
19
- def version_number # rubocop:disable all
20
- @version
21
- end # rubocop:enable all
19
+ def version_number
20
+ @version ||= nil
21
+ end
22
22
 
23
23
  # :nodoc:
24
24
  def as_hash
data/lib/fastly/client.rb CHANGED
@@ -11,7 +11,7 @@ class Fastly
11
11
 
12
12
  DEFAULT_URL = 'https://api.fastly.com'.freeze
13
13
 
14
- attr_accessor :api_key, :base_url, :debug, :user, :password, :cookie, :customer
14
+ attr_accessor :api_key, :base_url, :debug, :user, :password, :customer
15
15
 
16
16
  def initialize(opts)
17
17
  @api_key = opts.fetch(:api_key, nil)
@@ -24,19 +24,9 @@ class Fastly
24
24
  @thread_http_client = if defined?(Concurrent::ThreadLocalVar)
25
25
  Concurrent::ThreadLocalVar.new { build_http_client }
26
26
  end
27
-
28
- return self unless fully_authed?
29
-
30
- # If full auth creds (user/pass) then log in and set a cookie
31
- resp = http.post(
32
- '/login',
33
- make_params(user: user, password: password),
34
- {'Content-Type' => 'application/x-www-form-urlencoded'}
35
- )
36
- if resp.kind_of?(Net::HTTPSuccess)
37
- @cookie = resp['Set-Cookie']
38
- else
39
- fail Unauthorized, "Invalid auth credentials. Check username/password."
27
+
28
+ if api_key.nil?
29
+ fail Unauthorized, "Invalid auth credentials. Check api_key."
40
30
  end
41
31
 
42
32
  self
@@ -146,9 +136,7 @@ class Fastly
146
136
 
147
137
  def headers(extras={}, include_auth=true)
148
138
  headers = {}
149
- # Some endpoints (POST /tokens) break if any auth headers including cookies are sent
150
139
  if include_auth
151
- headers['Cookie'] = cookie if fully_authed?
152
140
  headers['Fastly-Key'] = api_key if api_key
153
141
  end
154
142
  headers.merge('Content-Accept' => 'application/json', 'User-Agent' => "fastly-ruby-v#{Fastly::VERSION}").merge(extras.keep_if {|k,v| !v.nil? })
@@ -1,4 +1,4 @@
1
1
  # The current version of the library
2
2
  class Fastly
3
- VERSION = "2.5.0"
3
+ VERSION = "3.0.1"
4
4
  end
@@ -2,7 +2,8 @@
2
2
  class Fastly
3
3
  # Represents something you want to serve - this can be, for example, a whole web site, a Wordpress site, or just your image servers
4
4
  class Service < Base
5
- attr_accessor :id, :customer_id, :name, :comment, :versions
5
+ attr_accessor :id, :customer_id, :name, :comment
6
+ attr_writer :versions
6
7
 
7
8
  @versions = []
8
9
 
data/lib/fastly/token.rb CHANGED
@@ -21,12 +21,16 @@ class Fastly
21
21
  end
22
22
 
23
23
  def new_token(opts)
24
- opts[:username] = client.user
25
- opts[:password] = client.password
26
- opts[:include_auth] = false
27
-
28
- token = create(Token, opts)
29
- token.nil? ? nil : token
24
+ if client.fully_authed?
25
+ opts[:username] = client.user
26
+ opts[:password] = client.password
27
+ opts[:include_auth] = false
28
+
29
+ token = create(Token, opts)
30
+ token.nil? ? nil : token
31
+ else
32
+ raise ArgumentError, "Required options missing. Please pass :api_key, :user and :password."
33
+ end
30
34
  end
31
35
 
32
36
  def customer_tokens(opts)
data/test/api_key_test.rb CHANGED
@@ -50,7 +50,7 @@ class Fastly
50
50
  end
51
51
  end
52
52
 
53
- describe 'with cookie and api key' do
53
+ describe 'with username/password and api key' do
54
54
  before do
55
55
  @opts = login_opts(:both)
56
56
  @client = Fastly::Client.new(@opts)
@@ -75,26 +75,6 @@ class Fastly
75
75
  assert_equal 'ok', response['status']
76
76
  end
77
77
  end
78
-
79
- describe 'with cookie only' do
80
- before do
81
- @opts = login_opts(:full)
82
- @client = Fastly::Client.new(@opts)
83
- @fastly = Fastly.new(@opts)
84
- service_name = "fastly-test-service-#{random_string}"
85
- @service = @fastly.create_service(:name => service_name)
86
- end
87
-
88
- after do
89
- @fastly.delete_service(@service)
90
- end
91
-
92
- it 'does not allow purging' do
93
- assert_raises Fastly::KeyAuthRequired do
94
- @service.purge_by_key('somekey')
95
- end
96
- end
97
- end
98
78
  end
99
79
  end
100
80
  end
@@ -12,7 +12,7 @@ describe Fastly::Client do
12
12
  }
13
13
  end
14
14
 
15
- it 'does not log in if user/pass are not provided' do
15
+ it 'does not set the user/pass if they are not provided' do
16
16
  client = Fastly::Client.new(api_key: api_key)
17
17
 
18
18
  assert_equal api_key, client.api_key
@@ -20,13 +20,17 @@ describe Fastly::Client do
20
20
  assert_equal nil, client.password
21
21
  end
22
22
 
23
+ it 'raises Unauthorized if api_key is not passed in the options' do
24
+ assert_raises(Fastly::Unauthorized) { Fastly::Client.new(user: user, password: password)}
25
+ end
26
+
23
27
  it 'raises Unauthorized if user/pass provided but are invalid' do
24
28
  stub_request(:any, /api.fastly.com/).to_return(status: 400)
25
29
 
26
30
  e = assert_raises(Fastly::Unauthorized) {
27
- Fastly::Client.new(user: user, password: pass)
31
+ Fastly::Client.new(user: user, password: password)
28
32
  }
29
- assert_equal "Invalid auth credentials. Check username/password.", e.message
33
+ assert_equal "Invalid auth credentials. Check api_key.", e.message
30
34
  end
31
35
 
32
36
  it 'initializes an http client' do
@@ -38,23 +42,13 @@ describe Fastly::Client do
38
42
  assert client.http.use_ssl?
39
43
  end
40
44
 
41
- it 'sets a cookie when auth with valid user/pass' do
42
- stub_request(:any, /api.fastly.com/).
43
- to_return(body: JSON.generate(i: "dont care"), status: 200, headers: { 'Set-Cookie' => 'tasty!' })
44
-
45
- client = Fastly::Client.new(user: user, password: pass)
46
- assert_equal "tasty!", client.cookie
47
- end
48
-
49
45
  it 'raises an Error if username is used in place of user as an option' do
50
46
  stub_request(:any, /api.fastly.com/).
51
- to_return(body: JSON.generate(i: "dont care"), status: 200, headers: { 'Set-Cookie' => 'tasty!' })
47
+ to_return(body: JSON.generate(i: "dont care"), status: 200)
52
48
 
53
- assert_raises(ArgumentError) { Fastly.new(username: user, password: pass) }
49
+ assert_raises(ArgumentError) { Fastly.new(username: user, password: password) }
54
50
 
55
- Fastly.new(user: user, password: pass)
56
- Fastly.new(api_key: api_key)
57
- Fastly.new(api_key: api_key, user: user, password: pass)
51
+ Fastly.new(api_key: api_key, user: user, password: password)
58
52
  end
59
53
  end
60
54
 
@@ -107,7 +101,7 @@ describe Fastly::Client do
107
101
  'Content-Accept'=>'application/json',
108
102
  'Content-Type'=>'application/x-www-form-urlencoded',
109
103
  #'Fastly-Key'=>'notasecreteither',
110
- 'User-Agent'=>'fastly-ruby-v2.4.0'
104
+ 'User-Agent'=> /fastly-ruby/
111
105
  }).
112
106
  to_return(body: JSON.generate(i: "dont care"), status: 200)
113
107
 
@@ -7,7 +7,7 @@ describe Fastly::Customer do
7
7
  let(:owner_id) { SecureRandom.hex(6) }
8
8
 
9
9
  let(:customer) do
10
- stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200, headers: { 'Set-Cookie' => 'tasty!' })
10
+ stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200)
11
11
 
12
12
  customer_body = JSON.dump(
13
13
  'id' => customer_id,
@@ -2,13 +2,13 @@ require_relative '../test_helper'
2
2
 
3
3
  describe Fastly::Dictionary do
4
4
 
5
- let(:client) { Fastly.new(user: 'test@example.com', password: 'password') }
5
+ let(:client) { Fastly.new(api_key: 'notasecrettestkey') }
6
6
  let(:service_id) { SecureRandom.hex(6) }
7
7
  let(:version) { 1 }
8
8
  let(:dictionary) { Fastly::Dictionary.new({id: SecureRandom.hex(6), service_id: service_id, version: 1}, client) }
9
9
 
10
10
  before {
11
- stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200, headers: { 'Set-Cookie' => 'tasty!' })
11
+ stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200)
12
12
  }
13
13
 
14
14
  describe '#item' do
@@ -2,13 +2,13 @@ require_relative '../test_helper'
2
2
 
3
3
  describe Fastly::Syslog do
4
4
 
5
- let(:client) { Fastly.new(user: 'test@example.com', password: 'password') }
5
+ let(:client) { Fastly.new(api_key: 'notasecrettestkey', user: 'test@example.com', password: 'password') }
6
6
  let(:service_id) { SecureRandom.hex(6) }
7
7
  let(:version) { 1 }
8
8
  let(:syslog) { Fastly::Syslog.new({ name: 'test_syslog', service_id: service_id, version: 1 }, client) }
9
9
 
10
10
  before {
11
- stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200, headers: { 'Set-Cookie' => 'tasty!' })
11
+ stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200)
12
12
  }
13
13
 
14
14
  describe '#item' do
@@ -1,17 +1,14 @@
1
1
  require_relative '../test_helper'
2
2
 
3
3
  describe Fastly::Token do
4
-
5
- let(:elevated_fastly) { Fastly.new(user: 'test@example.com', password: 'password') }
6
- let(:fastly) { Fastly.new(api_key:'my_api_key') }
4
+ let(:fastly) { Fastly.new(api_key:'my_api_key', user: 'test@example.com', password: 'password') }
7
5
 
8
6
  before {
9
- stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200, headers: { 'Set-Cookie' => 'tasty!' })
7
+ stub_request(:post, "#{Fastly::Client::DEFAULT_URL}/login").to_return(body: '{}', status: 200)
10
8
  }
11
9
 
12
10
  describe '#fastly' do
13
-
14
- it 'cannot create itself because POST /tokens must have no auth headers)' do
11
+ it 'cannot create itself because POST /tokens must have no auth headers' do
15
12
  stub_request(:post, "https://api.fastly.com/tokens").
16
13
  with(
17
14
  body: {"name"=>"name_of_token", "scope"=>"token_scope such_as purge_all purge_select", "services"=>"service_id_that_token_can_access"},
@@ -20,13 +17,12 @@ describe Fastly::Token do
20
17
  'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
21
18
  'Content-Accept'=>'application/json',
22
19
  'Content-Type'=>'application/x-www-form-urlencoded',
23
- 'Cookie'=>'tasty!',
24
- 'User-Agent'=>'fastly-ruby-v2.4.0'
20
+ 'User-Agent'=> /fastly-ruby/
25
21
  }).
26
22
  to_return(status: 403, body: '{"msg":"You must POST /sudo to access this endpoint"}', headers: {})
27
23
 
28
24
  assert_raises(Fastly::Error,'{"msg":"You must POST /sudo to access this endpoint"}') do
29
- elevated_fastly.create_token(
25
+ fastly.create_token(
30
26
  name: 'name_of_token',
31
27
  services: 'service_id_that_token_can_access',
32
28
  scope: 'token_scope such_as purge_all purge_select'
@@ -59,11 +55,11 @@ describe Fastly::Token do
59
55
  'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
60
56
  'Content-Accept'=>'application/json',
61
57
  'Content-Type'=>'application/x-www-form-urlencoded',
62
- 'User-Agent'=>'fastly-ruby-v2.4.0'
58
+ 'User-Agent'=> /fastly-ruby/
63
59
  }).
64
60
  to_return(status: 200, body: response_body, headers: {})
65
61
 
66
- token = elevated_fastly.new_token(
62
+ token = fastly.new_token(
67
63
  name: 'name_of_token',
68
64
  services: 'service_id_that_token_can_access',
69
65
  scope: 'optional token_scope such_as purge_all purge_select'
@@ -89,7 +85,7 @@ describe Fastly::Token do
89
85
  'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
90
86
  'Content-Accept'=>'application/json',
91
87
  'Fastly-Key'=>'my_api_key',
92
- 'User-Agent'=>'fastly-ruby-v2.4.0'
88
+ 'User-Agent'=> /fastly-ruby/
93
89
  }).
94
90
  to_return(status: 204, body: "", headers: {})
95
91
 
@@ -105,7 +101,7 @@ describe Fastly::Token do
105
101
  'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
106
102
  'Content-Accept'=>'application/json',
107
103
  'Fastly-Key'=>'my_api_key',
108
- 'User-Agent'=>'fastly-ruby-v2.4.0'
104
+ 'User-Agent'=> /fastly-ruby/
109
105
  }).
110
106
  to_return(status: 200, body: "[]", headers: {})
111
107
 
@@ -120,7 +116,7 @@ describe Fastly::Token do
120
116
  'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
121
117
  'Content-Accept'=>'application/json',
122
118
  'Fastly-Key'=>'my_api_key',
123
- 'User-Agent'=>'fastly-ruby-v2.4.0'
119
+ 'User-Agent'=> /fastly-ruby/
124
120
  }).
125
121
  to_return(status: 200, body: "[]", headers: {})
126
122
 
@@ -3,7 +3,7 @@ require 'helper'
3
3
  # Test username/password login access to user and customer objects
4
4
  class Fastly
5
5
  describe 'FullLoginTest' do
6
- let(:opts) { login_opts(:full) }
6
+ let(:opts) { login_opts(:both) }
7
7
  let(:client) { Client.new(opts) }
8
8
  let(:fastly) { Fastly.new(opts) }
9
9
  let(:current_user) { fastly.current_user }
data/test/helper.rb CHANGED
@@ -2,6 +2,7 @@ require 'common'
2
2
  require 'fastly'
3
3
  require 'minitest/autorun'
4
4
  require 'pry'
5
+ require 'dotenv/load'
5
6
 
6
7
  class Fastly
7
8
  class TestCase < Minitest::Test; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastly
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fastly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-17 00:00:00.000000000 Z
11
+ date: 2021-03-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Client library for the Fastly acceleration system
14
14
  email:
@@ -21,6 +21,7 @@ executables:
21
21
  extensions: []
22
22
  extra_rdoc_files: []
23
23
  files:
24
+ - ".env.example"
24
25
  - ".gitignore"
25
26
  - ".rubocop.yml"
26
27
  - ".travis.yml"
@@ -30,6 +31,7 @@ files:
30
31
  - HISTORY.md
31
32
  - LICENSE
32
33
  - README.md
34
+ - RELEASE.md
33
35
  - Rakefile
34
36
  - bin/fastly_create_domain
35
37
  - bin/fastly_upload_vcl
@@ -109,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0'
111
113
  requirements: []
112
- rubygems_version: 3.0.3
114
+ rubygems_version: 3.0.1
113
115
  signing_key:
114
116
  specification_version: 4
115
117
  summary: Client library for the Fastly acceleration system