asset_sync 2.13.1 → 2.15.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: c593c361046c4faf574342749aced526c101c823c60b7ab8be5e39c7d029efe7
4
- data.tar.gz: 63d1361cfa79cfea245eb5cc63bf889cefa239fdf7ba863164414d48e861d444
3
+ metadata.gz: a42f7c7165955b9d333a17c2c734948699b76dfdc1682c37f3188af87896d72d
4
+ data.tar.gz: 7b0cec36a35ace13ceac1aa6e1681c608b3a4ef688ba8870d1d32e9c7d8160b1
5
5
  SHA512:
6
- metadata.gz: 4be760845b518f72bdad531311817b2d449bcaaada2b3ea3feb316af17e6c77fe29c1d7c2b72a46c866ba3b3d94fe0c751fa6a8206936c6d19e935bb0cae93a3
7
- data.tar.gz: 1a3bb12b3db320cd566d130eb0abce3a4209c7466324c12dc963822bb0edefb9f04926ece5379a6c74b392cfccc751a5097400ccf922f0ec2dcb9e1b620d43d8
6
+ metadata.gz: 2d6ff1f9c5b9c9fa8dd53ee0000d00d42d9746801e9c5dd10400b8c18ae177c2dfd9f5f749bae52553c79550e71c5940771a069bfbe807af437744a61fc6fe72
7
+ data.tar.gz: 565480826f1820bbb8b4438886fa92d6f49369209ddbb0981f5cdb948b03d73ee5bbb4803febef56907d279a434cc819f2877804a7e5135ad28beb412c6a91ac
@@ -6,16 +6,20 @@ on:
6
6
  - master
7
7
  paths-ignore:
8
8
  - 'README.md'
9
+ - 'CHANGELOG.md'
9
10
  push:
10
11
  branches:
11
12
  - master
12
13
  paths-ignore:
13
14
  - 'README.md'
15
+ - 'CHANGELOG.md'
14
16
 
15
17
  jobs:
16
18
  unit_tests:
17
19
  name: Unit Tests
18
- if: "contains(github.event.commits[0].message, '[ci skip]') == false"
20
+ # Homemade support for [ci skip] no longer needed
21
+ # https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/
22
+ # if: "contains(github.event.commits[0].message, '[ci skip]') == false"
19
23
  strategy:
20
24
  fail-fast: false
21
25
  matrix:
data/CHANGELOG.md CHANGED
@@ -18,6 +18,38 @@ This project adheres to [Semantic Versioning](http://semver.org/).
18
18
  - Nothing
19
19
 
20
20
 
21
+ ## [2.15.0] - 2021-08-05
22
+
23
+ ### Added
24
+
25
+ - Add support for option `aws_acl`
26
+ (https://github.com/AssetSync/asset_sync/pull/420)
27
+
28
+
29
+ ## [2.14.2] - 2021-05-31
30
+
31
+ ### Added
32
+
33
+ - Add support for setting option `google_json_key_string` in YML (not new option)
34
+ (https://github.com/AssetSync/asset_sync/pull/419)
35
+
36
+
37
+ ## [2.14.1] - 2021-05-14
38
+
39
+ ### Added
40
+
41
+ - Add support for setting option `log_silently` in YML (not new option)
42
+ (https://github.com/AssetSync/asset_sync/pull/417)
43
+
44
+
45
+ ## [2.14.0] - 2021-03-31
46
+
47
+ ### Added
48
+
49
+ - Add support for fog option `google_json_key_string`
50
+ (https://github.com/AssetSync/asset_sync/pull/415)
51
+
52
+
21
53
  ## [2.13.1] - 2021-03-01
22
54
 
23
55
  ### Fixed
@@ -994,7 +1026,11 @@ Changes:
994
1026
  * Merge branch 'sinatra'
995
1027
 
996
1028
 
997
- [Unreleased]: https://github.com/AssetSync/asset_sync/compare/v2.13.1...HEAD
1029
+ [Unreleased]: https://github.com/AssetSync/asset_sync/compare/v2.15.0...HEAD
1030
+ [2.15.0]: https://github.com/AssetSync/asset_sync/compare/v2.14.2...v2.15.0
1031
+ [2.14.2]: https://github.com/AssetSync/asset_sync/compare/v2.14.1...v2.14.2
1032
+ [2.14.1]: https://github.com/AssetSync/asset_sync/compare/v2.14.0...v2.14.1
1033
+ [2.14.0]: https://github.com/AssetSync/asset_sync/compare/v2.13.1...v2.14.0
998
1034
  [2.13.1]: https://github.com/AssetSync/asset_sync/compare/v2.13.0...v2.13.1
999
1035
  [2.13.0]: https://github.com/AssetSync/asset_sync/compare/v2.12.1...v2.13.0
1000
1036
  [2.12.1]: https://github.com/AssetSync/asset_sync/compare/v2.12.0...v2.12.1
data/README.md CHANGED
@@ -239,6 +239,11 @@ AssetSync.configure do |config|
239
239
  # Change AWS signature version. Default is 4
240
240
  # config.aws_signature_version = 4
241
241
  #
242
+ # Change canned ACL of uploaded object. Default is unset. Will override fog_public if set.
243
+ # Choose from: private | public-read | public-read-write | aws-exec-read |
244
+ # authenticated-read | bucket-owner-read | bucket-owner-full-control
245
+ # config.aws_acl = nil
246
+ #
242
247
  # Change host option in fog (only if you need to)
243
248
  # config.fog_host = 's3.amazonaws.com'
244
249
  #
@@ -309,6 +314,11 @@ defaults: &defaults
309
314
  # Change AWS signature version. Default is 4
310
315
  # aws_signature_version: 4
311
316
  #
317
+ # Change canned ACL of uploaded object. Default is unset. Will override fog_public if set.
318
+ # Choose from: private | public-read | public-read-write | aws-exec-read |
319
+ # authenticated-read | bucket-owner-read | bucket-owner-full-control
320
+ # aws_acl: null
321
+ #
312
322
  # Change host option in fog (only if you need to)
313
323
  # fog_host: "s3.amazonaws.com"
314
324
  #
@@ -420,6 +430,7 @@ The blocks are run when local files are being scanned and uploaded
420
430
 
421
431
  * **aws\_access\_key\_id**: your Amazon S3 access key
422
432
  * **aws\_secret\_access\_key**: your Amazon S3 access secret
433
+ * **aws\_acl**: set [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) of uploaded object, will override fog_public if set
423
434
 
424
435
  #### Rackspace
425
436
 
data/asset_sync.gemspec CHANGED
@@ -33,6 +33,8 @@ Gem::Specification.new do |s|
33
33
  s.add_development_dependency "uglifier"
34
34
  s.add_development_dependency "appraisal"
35
35
 
36
+ s.add_development_dependency "gem-release"
37
+
36
38
  s.files = `git ls-files`.split("\n")
37
39
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
38
40
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
@@ -37,7 +37,15 @@ module AssetSync
37
37
  attr_reader :fog_public # e.g. true, false, "default"
38
38
 
39
39
  # Amazon AWS
40
- attr_accessor :aws_access_key_id, :aws_secret_access_key, :aws_session_token, :aws_reduced_redundancy, :aws_iam_roles, :aws_signature_version
40
+ attr_accessor :aws_access_key_id
41
+ attr_accessor :aws_secret_access_key
42
+ attr_accessor :aws_session_token
43
+ attr_accessor :aws_reduced_redundancy
44
+ attr_accessor :aws_iam_roles
45
+ attr_accessor :aws_signature_version
46
+ attr_accessor :aws_acl
47
+
48
+ # Fog
41
49
  attr_accessor :fog_host # e.g. 's3.amazonaws.com'
42
50
  attr_accessor :fog_port # e.g. '9000'
43
51
  attr_accessor :fog_path_style # e.g. true
@@ -49,6 +57,7 @@ module AssetSync
49
57
  # Google Storage
50
58
  attr_accessor :google_storage_secret_access_key, :google_storage_access_key_id # when using S3 interop
51
59
  attr_accessor :google_json_key_location # when using service accounts
60
+ attr_accessor :google_json_key_string # when using service accounts
52
61
  attr_accessor :google_project # when using service accounts
53
62
 
54
63
  # Azure Blob with Fog::AzureRM
@@ -71,8 +80,12 @@ module AssetSync
71
80
  validates :rackspace_api_key, :presence => true, :if => :rackspace?
72
81
  validates :google_storage_secret_access_key, :presence => true, :if => :google_interop?
73
82
  validates :google_storage_access_key_id, :presence => true, :if => :google_interop?
74
- validates :google_json_key_location, :presence => true, :if => :google_service_account?
75
83
  validates :google_project, :presence => true, :if => :google_service_account?
84
+ validate(:if => :google_service_account?) do
85
+ unless google_json_key_location.present? || google_json_key_string.present?
86
+ errors.add(:base, 'must provide either google_json_key_location or google_json_key_string if using Google service account')
87
+ end
88
+ end
76
89
  validates :concurrent_uploads, :inclusion => { :in => [true, false] }
77
90
 
78
91
  def initialize
@@ -147,11 +160,11 @@ module AssetSync
147
160
  end
148
161
 
149
162
  def google_interop?
150
- google? && google_json_key_location.nil?
163
+ google? && google_json_key_location.nil? && google_json_key_string.nil?
151
164
  end
152
165
 
153
166
  def google_service_account?
154
- google? && google_json_key_location
167
+ google? && (google_json_key_location || google_json_key_string)
155
168
  end
156
169
 
157
170
  def azure_rm?
@@ -216,6 +229,7 @@ module AssetSync
216
229
  self.aws_reduced_redundancy = yml["aws_reduced_redundancy"]
217
230
  self.aws_iam_roles = yml["aws_iam_roles"]
218
231
  self.aws_signature_version = yml["aws_signature_version"]
232
+ self.aws_acl = yml["aws_acl"]
219
233
  self.rackspace_username = yml["rackspace_username"]
220
234
  self.rackspace_auth_url = yml["rackspace_auth_url"] if yml.has_key?("rackspace_auth_url")
221
235
  self.rackspace_api_key = yml["rackspace_api_key"]
@@ -223,13 +237,15 @@ module AssetSync
223
237
  self.google_project = yml["google_project"] if yml.has_key?("google_project")
224
238
  self.google_storage_secret_access_key = yml["google_storage_secret_access_key"] if yml.has_key?("google_storage_secret_access_key")
225
239
  self.google_storage_access_key_id = yml["google_storage_access_key_id"] if yml.has_key?("google_storage_access_key_id")
240
+ self.google_json_key_string = yml["google_json_key_string"] if yml.has_key?("google_json_key_string")
226
241
  self.existing_remote_files = yml["existing_remote_files"] if yml.has_key?("existing_remote_files")
227
242
  self.gzip_compression = yml["gzip_compression"] if yml.has_key?("gzip_compression")
228
243
  self.manifest = yml["manifest"] if yml.has_key?("manifest")
229
244
  self.fail_silently = yml["fail_silently"] if yml.has_key?("fail_silently")
245
+ self.log_silently = yml["log_silently"] if yml.has_key?("log_silently")
230
246
  self.always_upload = yml["always_upload"] if yml.has_key?("always_upload")
231
247
  self.ignored_files = yml["ignored_files"] if yml.has_key?("ignored_files")
232
- self.custom_headers = yml["custom_headers"] if yml.has_key?("custom_headers")
248
+ self.custom_headers = yml["custom_headers"] if yml.has_key?("custom_headers")
233
249
  self.run_on_precompile = yml["run_on_precompile"] if yml.has_key?("run_on_precompile")
234
250
  self.invalidate = yml["invalidate"] if yml.has_key?("invalidate")
235
251
  self.cdn_distribution_id = yml['cdn_distribution_id'] if yml.has_key?("cdn_distribution_id")
@@ -292,6 +308,8 @@ module AssetSync
292
308
  elsif google?
293
309
  if google_json_key_location
294
310
  options.merge!({:google_json_key_location => google_json_key_location, :google_project => google_project})
311
+ elsif google_json_key_string
312
+ options.merge!({:google_json_key_string => google_json_key_string, :google_project => google_project})
295
313
  else
296
314
  options.merge!({
297
315
  :google_storage_secret_access_key => google_storage_secret_access_key,
@@ -25,6 +25,7 @@ module AssetSync
25
25
  config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] if ENV.has_key?('AWS_SECRET_ACCESS_KEY')
26
26
  config.aws_session_token = ENV['AWS_SESSION_TOKEN'] if ENV.has_key?('AWS_SESSION_TOKEN')
27
27
  config.aws_signature_version = ENV['AWS_SIGNATURE_VERSION'] if ENV.has_key?('AWS_SIGNATURE_VERSION')
28
+ config.aws_acl = ENV['AWS_ACL'] if ENV.has_key?('AWS_ACL')
28
29
  config.aws_reduced_redundancy = ENV['AWS_REDUCED_REDUNDANCY'] == true if ENV.has_key?('AWS_REDUCED_REDUNDANCY')
29
30
 
30
31
  config.rackspace_username = ENV['RACKSPACE_USERNAME'] if ENV.has_key?('RACKSPACE_USERNAME')
@@ -195,7 +195,9 @@ module AssetSync
195
195
 
196
196
  # region fog_public
197
197
 
198
- if config.fog_public.use_explicit_value?
198
+ if config.aws? && config.aws_acl
199
+ file[:acl] = config.aws_acl
200
+ elsif config.fog_public.use_explicit_value?
199
201
  file[:public] = config.fog_public.to_bool
200
202
  end
201
203
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AssetSync
4
- VERSION = "2.13.1"
4
+ VERSION = "2.15.0"
5
5
  end
@@ -11,6 +11,11 @@ if defined?(AssetSync)
11
11
  # Change AWS signature version. Default is 4
12
12
  # config.aws_signature_version = 4
13
13
  #
14
+ # Change canned ACL of uploaded object. Default is unset. Will override fog_public if set.
15
+ # Choose from: private | public-read | public-read-write | aws-exec-read |
16
+ # authenticated-read | bucket-owner-read | bucket-owner-full-control
17
+ # config.aws_acl = nil
18
+ #
14
19
  # Change host option in fog (only if you need to)
15
20
  # config.fog_host = "s3.amazonaws.com"
16
21
  #
@@ -10,6 +10,11 @@ defaults: &defaults
10
10
  # Change AWS signature version. Default is 4
11
11
  # aws_signature_version: 4
12
12
  #
13
+ # Change canned ACL of uploaded object. Default is unset. Will override fog_public if set.
14
+ # Choose from: private | public-read | public-read-write | aws-exec-read |
15
+ # authenticated-read | bucket-owner-read | bucket-owner-full-control
16
+ # aws_acl: null
17
+ #
13
18
  # Change host option in fog (only if you need to)
14
19
  # fog_host: "s3.amazonaws.com"
15
20
  #
@@ -99,6 +99,28 @@ describe AssetSync do
99
99
  end
100
100
  end
101
101
 
102
+ describe "when using service account with JSON key string" do
103
+ before(:each) do
104
+ AssetSync.configure do |config|
105
+ config.google_json_key_string = 'a-google-json-key-string'
106
+ config.google_project = 'a-google-project-name'
107
+ end
108
+ end
109
+
110
+ it "should configure google_json_key_string" do
111
+ expect(AssetSync.config.google_json_key_string).to eq("a-google-json-key-string")
112
+ end
113
+
114
+ it "should return the correct fog_options" do
115
+ expected_fog_options = { google_json_key_string: "a-google-json-key-string",
116
+ google_project: 'a-google-project-name',
117
+ provider: "Google"}
118
+ expect(AssetSync.config.fog_options).to eq(expected_fog_options)
119
+ end
120
+ it "should not require that google_storage_secret_access_key or access_key_id be set" do
121
+ expect(AssetSync.config.valid?).to eq(true)
122
+ end
123
+ end
102
124
  end
103
125
 
104
126
  describe 'from yml' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asset_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.1
4
+ version: 2.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Hamilton
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-03-01 00:00:00.000000000 Z
14
+ date: 2021-08-05 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: fog-core
@@ -195,6 +195,20 @@ dependencies:
195
195
  - - ">="
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
+ - !ruby/object:Gem::Dependency
199
+ name: gem-release
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
198
212
  description: After you run assets:precompile your compiled assets will be synchronised
199
213
  with your S3 bucket.
200
214
  email:
@@ -273,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
273
287
  - !ruby/object:Gem::Version
274
288
  version: '0'
275
289
  requirements: []
276
- rubygems_version: 3.2.11
290
+ rubygems_version: 3.2.25
277
291
  signing_key:
278
292
  specification_version: 4
279
293
  summary: Synchronises Assets in a Rails 3 application and Amazon S3/Cloudfront and