diffcrypt 0.5.1 → 0.6.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: 5914065f605f66fa0b4bd189b3ffd3f1f837cc4ab3d417215fb9366fea723668
4
- data.tar.gz: 18485d4613dbf5503a481cd74bd659cb572c24f0e1a7378348d38f8bb4cfedca
3
+ metadata.gz: fb31613525e78d8a5f45fe9276daa26127c3f6555b69864cf6c438713c8a5385
4
+ data.tar.gz: f0cccb6f0706f613284e4f42e04c482dc3368c9e3b121b4d3a895c961e74383b
5
5
  SHA512:
6
- metadata.gz: c3de8085e6c26e338ff1cf5239bd66761497bcf98caa2234faf13aefa83e7b559fb6162ca07626fd315ba8ee40fb372043277176456b83fefa2ccded4060f7d8
7
- data.tar.gz: d6d2a864d9a845234080d81a986ef6a7859000838558c639dce1c0e1175d6ed6dab836d182e40723eadc57534b8058ae162b53102ded1e17302ae1b24d6fd8a5
6
+ metadata.gz: 3d0d83aedaafe07809888c2bf7edb1100ee7b51c3d99dbf9deaa6108932a6585246e7b1d0f917f403f5a765e4421a73804465afacb6bd1c942c4a2befee1ecec
7
+ data.tar.gz: d40a2bfb110cae3f2961c5ca57f5de5e5250d54354b9470b1ffa140bf88717970cb9d067f65a4f03576e26b7b2372c88b5294eb22158bbfcc51bb8aa749cb07a
@@ -0,0 +1,40 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ jobs:
10
+ rspec:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby:
15
+ - "2.7.5"
16
+ - "3.0.3"
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+ - name: Set up Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ bundler-cache: true
24
+ - name: Run rspec
25
+ run: bundle exec rake test
26
+ rubocop:
27
+ runs-on: ubuntu-latest
28
+ strategy:
29
+ matrix:
30
+ ruby:
31
+ - "2.7.5"
32
+ steps:
33
+ - uses: actions/checkout@v2
34
+ - name: Set up Ruby
35
+ uses: ruby/setup-ruby@v1
36
+ with:
37
+ ruby-version: ${{ matrix.ruby }}
38
+ bundler-cache: true
39
+ - name: Run rubocop
40
+ run: bundle exec rubocop
data/.rubocop.yml CHANGED
@@ -9,6 +9,11 @@ Style/Documentation:
9
9
  Enabled: false
10
10
  Metrics/MethodLength:
11
11
  Exclude:
12
+ - test/*_test.rb
13
+ - test/**/*_test.rb
14
+ Naming/VariableNumber:
15
+ Exclude:
16
+ - test/*_test.rb
12
17
  - test/**/*_test.rb
13
18
  Style/TrailingCommaInArrayLiteral:
14
19
  EnforcedStyleForMultiline: consistent_comma
@@ -18,7 +23,12 @@ Style/TrailingCommaInHashLiteral:
18
23
  EnforcedStyleForMultiline: consistent_comma
19
24
  Style/AccessorGrouping:
20
25
  EnforcedStyle: separated
26
+ Style/OpenStructUse:
27
+ Exclude:
28
+ - test/*_test.rb
29
+ - test/**/*_test.rb
21
30
 
22
31
  Layout/LineLength:
23
32
  Exclude:
33
+ - test/*_test.rb
24
34
  - test/**/*_test.rb
data/CHANGELOG.md CHANGED
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
 
9
9
 
10
+ ## Unreleased
11
+
12
+ ### Fixed
13
+
14
+ - Broken namespace when saving credentials in rails
15
+
16
+
17
+
18
+ ## [0.6.0] - 2022-02-06
19
+
20
+ ### Added
21
+
22
+ - Rails 7 support
23
+ - Ruby 3.0 support
24
+
25
+ ### Changed
26
+
27
+ - Updated all dependencies
28
+ - Migrated from CircleCI to GitHub Actions
29
+ - Moved repo to own organisation
30
+
31
+ ### Fixed
32
+
33
+ - Only add `.gitignore` entry once #52
34
+
35
+
36
+
10
37
  ## [0.5.1] - 2021-03-29
11
38
 
12
39
  ### Added
data/Gemfile CHANGED
@@ -6,7 +6,8 @@ source 'https://rubygems.org'
6
6
  gemspec
7
7
 
8
8
  gem 'minitest', '~> 5.0'
9
+ gem 'minitest-reporters', '~> 1.5.0'
9
10
  gem 'rake', '~> 13.0'
10
- gem 'rubocop', '~> 1.11.0'
11
+ gem 'rubocop', '~> 1.25.1'
11
12
  gem 'simplecov', '~> 0.21.2', require: false # CodeClimate not compatible with 0.18+ yet - https://github.com/codeclimate/test-reporter/issues/413
12
- gem 'simplecov-lcov', '< 0.8'
13
+ gem 'simplecov-lcov', '< 0.9'
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Diffcrypt
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/diffcrypt.svg)](https://rubygems.org/gems/diffcrypt)
4
- [![CircleCI](https://circleci.com/gh/marcqualie/diffcrypt.svg?style=svg)](https://circleci.com/gh/marcqualie/diffcrypt)
4
+ [![CircleCI](https://circleci.com/gh/diffcrypt/diffcrypt-ruby.svg?style=svg)](https://circleci.com/gh/diffcrypt/diffcrypt-ruby)
5
5
 
6
6
 
7
7
  Diffable encrypted files that you can safely commit into your repo.
@@ -97,7 +97,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
97
97
 
98
98
  ## Contributing
99
99
 
100
- Bug reports and pull requests are welcome on GitHub at https://github.com/marcqualie/diffcrypt.
100
+ Bug reports and pull requests are welcome on GitHub at https://github.com/diffcrypt/diffcrypt-ruby.
101
101
 
102
102
 
103
103
 
data/SECURITY.md CHANGED
@@ -8,7 +8,8 @@ Since the internal APIs may change dramatically until v1.0, here is a list of th
8
8
 
9
9
  | Version | Supported |
10
10
  | ------- | ------------------ |
11
- | 0.3.x | :white_check_mark: |
11
+ | 0.5.1 | :white_check_mark: |
12
+ | 0.6.x | :white_check_mark: |
12
13
 
13
14
 
14
15
 
data/diffcrypt.gemspec CHANGED
@@ -10,14 +10,14 @@ Gem::Specification.new do |spec|
10
10
 
11
11
  spec.summary = 'Diffable encrypted configuration files'
12
12
  spec.description = 'Diffable encrypted configuration files that can be safely committed into a git repository'
13
- spec.homepage = 'https://github.com/marcqualie/diffcrypt'
13
+ spec.homepage = 'https://github.com/diffcrypt/diffcrypt-ruby'
14
14
  spec.license = 'MIT'
15
15
  spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
16
16
 
17
17
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
18
18
 
19
19
  spec.metadata['homepage_uri'] = spec.homepage
20
- spec.metadata['source_code_uri'] = 'https://github.com/marcqualie/diffcrypt'
20
+ spec.metadata['source_code_uri'] = 'https://github.com/diffcrypt/diffcrypt-ruby'
21
21
  # spec.metadata['changelog_uri'] = "TODO: Put your gem's CHANGELOG.md URL here."
22
22
 
23
23
  # Specify which files should be added to the gem when it is released.
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = %w[diffcrypt]
30
30
  spec.require_paths = ['lib']
31
31
 
32
- spec.add_runtime_dependency 'activesupport', '>= 6.0', '< 6.2'
32
+ spec.add_runtime_dependency 'activesupport', '>= 6.0', '< 7.1'
33
33
  spec.add_runtime_dependency 'thor', '>= 0.20', '< 2'
34
+ spec.metadata['rubygems_mfa_required'] = 'true'
34
35
  end
@@ -4,6 +4,8 @@ require 'fileutils'
4
4
  require 'pathname'
5
5
  require 'tmpdir'
6
6
 
7
+ require 'active_support/isolated_execution_state' if Gem.loaded_specs['activesupport'].version.to_s.index('7.')&.zero?
8
+
7
9
  require 'active_support/ordered_options'
8
10
  require 'active_support/core_ext/hash'
9
11
  require 'active_support/core_ext/module/delegation'
@@ -52,7 +54,7 @@ module Diffcrypt
52
54
  def write(contents, original_encrypted_contents = nil)
53
55
  deserialize(contents)
54
56
 
55
- IO.binwrite "#{content_path}.tmp", encrypt(contents, original_encrypted_contents)
57
+ ::File.binwrite "#{content_path}.tmp", encrypt(contents, original_encrypted_contents)
56
58
  ::FileUtils.mv "#{content_path}.tmp", content_path
57
59
  end
58
60
 
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # rubocop:disable Metrics/BlockLength
3
4
  namespace :diffcrypt do
4
5
  desc 'Initialize credentials for all environments'
5
6
  task :init, %i[environments] do |_t, args|
@@ -11,7 +12,6 @@ namespace :diffcrypt do
11
12
  environments.each do |environment|
12
13
  key_path = Rails.root.join('config', 'credentials', "#{environment}.key")
13
14
  file_path = Rails.root.join('config', 'credentials', "#{environment}.yml.enc")
14
- gitignore_path = Rails.root.join('.gitignore')
15
15
  next if File.exist?(file_path) || File.exist?(key_path)
16
16
 
17
17
  # Generate a new key
@@ -26,11 +26,15 @@ namespace :diffcrypt do
26
26
  'secret_key_base' => SecureRandom.hex(32),
27
27
  }
28
28
  file.write(key, data)
29
+ end
29
30
 
30
- # Ensure .key files are always ignored
31
+ # Ensure .key files are always ignored
32
+ gitignore_path = Rails.root.join('.gitignore')
33
+ unless File.read(gitignore_path).include?('config/credentials/*.key')
31
34
  ::File.open(gitignore_path, 'a') do |f|
32
35
  f.write("\nconfig/credentials/*.key")
33
36
  end
34
37
  end
35
38
  end
36
39
  end
40
+ # rubocop:enable Metrics/BlockLength
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Diffcrypt
4
- VERSION = '0.5.1'
4
+ VERSION = '0.6.1'
5
5
  end
data/lib/diffcrypt.rb CHANGED
@@ -17,7 +17,7 @@ module Diffcrypt
17
17
  def initialize(key_path:, env_key:)
18
18
  super \
19
19
  'Missing encryption key to decrypt file with. ' \
20
- "Ask your team for your master key and write it to #{key_path} or put it in the ENV['#{env_key}']."
20
+ "Ask your team for your master key and write it to #{key_path} or put it in the ENV['#{env_key}']."
21
21
  end
22
22
  end
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diffcrypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Qualie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-29 00:00:00.000000000 Z
11
+ date: 2022-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '6.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.2'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '6.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.2'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: thor
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -59,8 +59,8 @@ executables:
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - ".circleci/config.yml"
63
62
  - ".github/dependabot.yml"
63
+ - ".github/workflows/test.yml"
64
64
  - ".gitignore"
65
65
  - ".rubocop.yml"
66
66
  - CHANGELOG.md
@@ -83,12 +83,13 @@ files:
83
83
  - lib/diffcrypt/tasks/rails.rake
84
84
  - lib/diffcrypt/version.rb
85
85
  - tmp/.keep
86
- homepage: https://github.com/marcqualie/diffcrypt
86
+ homepage: https://github.com/diffcrypt/diffcrypt-ruby
87
87
  licenses:
88
88
  - MIT
89
89
  metadata:
90
- homepage_uri: https://github.com/marcqualie/diffcrypt
91
- source_code_uri: https://github.com/marcqualie/diffcrypt
90
+ homepage_uri: https://github.com/diffcrypt/diffcrypt-ruby
91
+ source_code_uri: https://github.com/diffcrypt/diffcrypt-ruby
92
+ rubygems_mfa_required: 'true'
92
93
  post_install_message:
93
94
  rdoc_options: []
94
95
  require_paths:
@@ -104,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
105
  - !ruby/object:Gem::Version
105
106
  version: '0'
106
107
  requirements: []
107
- rubygems_version: 3.1.4
108
+ rubygems_version: 3.1.6
108
109
  signing_key:
109
110
  specification_version: 4
110
111
  summary: Diffable encrypted configuration files
data/.circleci/config.yml DELETED
@@ -1,78 +0,0 @@
1
- version: 2.1
2
-
3
- jobs:
4
- bundle:
5
- docker:
6
- - image: circleci/ruby:2.7.1
7
- working_directory: /mnt/ramdisk
8
- steps:
9
- - checkout
10
- - restore_cache:
11
- keys:
12
- - bundler-{{ checksum "diffcrypt.gemspec" }}-{{ .Environment.CACHE_VERSION }}
13
- - run:
14
- name: bundle install
15
- command: |
16
- gem install bundler -v '2.1.4'
17
- bundle install --path=vendor/bundle --jobs=4 --retry=3
18
- - save_cache:
19
- key: bundler-{{ checksum "diffcrypt.gemspec" }}-{{ .Environment.CACHE_VERSION }}
20
- paths:
21
- - vendor/bundle
22
-
23
- test:
24
- docker:
25
- - image: circleci/ruby:2.7.1
26
- working_directory: /mnt/ramdisk
27
- steps:
28
- - checkout
29
- - restore_cache:
30
- keys:
31
- - bundler-{{ checksum "diffcrypt.gemspec" }}-{{ .Environment.CACHE_VERSION }}
32
- - run:
33
- name: bundle install
34
- command: |
35
- gem install bundler -v '2.1.4'
36
- bundle install --path=vendor/bundle --jobs=4 --retry=3
37
- - run:
38
- name: Setup Code Climate test-reporter
39
- command: |
40
- # download test reporter as a static binary
41
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
42
- chmod +x ./cc-test-reporter
43
- - run:
44
- name: rake test
45
- command: |
46
- ./cc-test-reporter before-build
47
- bundle exec rake test
48
- ./cc-test-reporter after-build --coverage-input-type lcov --exit-code $?
49
- rubocop:
50
- docker:
51
- - image: circleci/ruby:2.7.1
52
- working_directory: /mnt/ramdisk
53
- steps:
54
- - checkout
55
- - restore_cache:
56
- keys:
57
- - bundler-{{ checksum "diffcrypt.gemspec" }}-{{ .Environment.CACHE_VERSION }}
58
- - run:
59
- name: bundle install
60
- command: |
61
- gem install bundler -v '2.1.4'
62
- bundle install --path=vendor/bundle --jobs=4 --retry=3
63
- - run:
64
- name: rubocop
65
- command: bundle exec rubocop
66
- when: always
67
-
68
- workflows:
69
- version: 2
70
- all:
71
- jobs:
72
- - bundle
73
- - test:
74
- requires:
75
- - bundle
76
- - rubocop:
77
- requires:
78
- - bundle