confidante 0.7.0 → 0.8.0.pre.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
- SHA1:
3
- metadata.gz: c51e11159589482df003ad8da5d96ff83ebcd5df
4
- data.tar.gz: d07ed58f51d0429aa4c56c40788ca1bd6265fe04
2
+ SHA256:
3
+ metadata.gz: eac791f6bc6d2d5da5e472dd852d793ba095ccab5a9965b35002222b9bc767fc
4
+ data.tar.gz: 7a634749ab3199f2ddee0b15b0fa1b336c670f7900ac0aad28e6e45f730685d2
5
5
  SHA512:
6
- metadata.gz: 26b25456ff78abefa582c9ad3ef01d5bbf97b094a0da620ce36b2bfa5dbeaa989f783e7d03a5c5eb8f195affb7b497bb7b5e0fe0166d3b2942f7dcbaf7537614
7
- data.tar.gz: 63a246c169f06dcc2bec6dc23296660e212c3c89adf744489129f4eae0bdfd0c05d05711c22792c0c1246c08d8862d75510b287f00c1f419146cf5dc0a2bc634
6
+ metadata.gz: 6e66b57e08a8ed763acef4ea747ce54fb9d3a9fa3c4b6dd29ebe9e01329586f1183a66246abd57fe09e060f0112437fbbe7451f910a46e2aa88c300fab72bbbd
7
+ data.tar.gz: ac1d4abda58db4e8e6dba082958ae0941a18110e4bfdb7839d4fad20559e751c754699bbb160d51ac705763d19317dfd9b61ebe1693a7b33936c3074350af446
@@ -0,0 +1,56 @@
1
+ version: 2
2
+ jobs:
3
+ test:
4
+ working_directory: ~/confidante
5
+ docker:
6
+ - image: ruby:2.4.7
7
+ steps:
8
+ - checkout
9
+ - run: ./scripts/ci/steps/test.sh
10
+ prerelease:
11
+ working_directory: ~/confidante
12
+ docker:
13
+ - image: ruby:2.4.7
14
+ steps:
15
+ - checkout
16
+ - run: ./scripts/ci/common/install-git-crypt.sh
17
+ - run: ./scripts/ci/common/install-gpg-key.sh
18
+ - run: ./scripts/ci/common/configure-git.sh
19
+ - run: ./scripts/ci/common/configure-rubygems.sh
20
+ - run: ./scripts/ci/steps/prerelease.sh
21
+ release:
22
+ working_directory: ~/confidante
23
+ docker:
24
+ - image: ruby:2.4.7
25
+ steps:
26
+ - checkout
27
+ - run: ./scripts/ci/common/install-git-crypt.sh
28
+ - run: ./scripts/ci/common/install-gpg-key.sh
29
+ - run: ./scripts/ci/common/configure-git.sh
30
+ - run: ./scripts/ci/common/configure-rubygems.sh
31
+ - run: ./scripts/ci/steps/release.sh
32
+
33
+ workflows:
34
+ version: 2
35
+ pipeline:
36
+ jobs:
37
+ - test
38
+ - prerelease:
39
+ requires:
40
+ - test
41
+ filters:
42
+ branches:
43
+ only: master
44
+ - hold:
45
+ type: approval
46
+ requires:
47
+ - prerelease
48
+ filters:
49
+ branches:
50
+ only: master
51
+ - release:
52
+ requires:
53
+ - hold
54
+ filters:
55
+ branches:
56
+ only: master
Binary file
@@ -0,0 +1,4 @@
1
+ # Do not edit this file. To specify the files to encrypt, create your own
2
+ # .gitattributes file in the directory where your files are.
3
+ * !filter !diff
4
+ *.gpg binary
data/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ config/secrets/** filter=git-crypt diff=git-crypt
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.4.7
data/Gemfile.lock CHANGED
@@ -1,52 +1,52 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- confidante (0.7.0)
5
- activesupport (>= 4.0.2)
4
+ confidante (0.8.0.pre.1)
5
+ activesupport (>= 5.2)
6
6
  hiera (~> 3.3, >= 3.3.1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (5.1.4)
11
+ activesupport (5.2.3)
12
12
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
- i18n (~> 0.7)
13
+ i18n (>= 0.7, < 2)
14
14
  minitest (~> 5.1)
15
15
  tzinfo (~> 1.1)
16
- concurrent-ruby (1.0.5)
16
+ concurrent-ruby (1.1.5)
17
17
  diff-lcs (1.3)
18
- gem-release (0.7.4)
19
- hiera (3.4.2)
20
- i18n (0.9.1)
18
+ gem-release (2.0.4)
19
+ hiera (3.5.0)
20
+ i18n (1.7.0)
21
21
  concurrent-ruby (~> 1.0)
22
- minitest (5.10.3)
23
- rake (10.5.0)
24
- rspec (3.6.0)
25
- rspec-core (~> 3.6.0)
26
- rspec-expectations (~> 3.6.0)
27
- rspec-mocks (~> 3.6.0)
28
- rspec-core (3.6.0)
29
- rspec-support (~> 3.6.0)
30
- rspec-expectations (3.6.0)
22
+ minitest (5.12.2)
23
+ rake (13.0.0)
24
+ rspec (3.9.0)
25
+ rspec-core (~> 3.9.0)
26
+ rspec-expectations (~> 3.9.0)
27
+ rspec-mocks (~> 3.9.0)
28
+ rspec-core (3.9.0)
29
+ rspec-support (~> 3.9.0)
30
+ rspec-expectations (3.9.0)
31
31
  diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.6.0)
33
- rspec-mocks (3.6.0)
32
+ rspec-support (~> 3.9.0)
33
+ rspec-mocks (3.9.0)
34
34
  diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.6.0)
36
- rspec-support (3.6.0)
35
+ rspec-support (~> 3.9.0)
36
+ rspec-support (3.9.0)
37
37
  thread_safe (0.3.6)
38
- tzinfo (1.2.4)
38
+ tzinfo (1.2.5)
39
39
  thread_safe (~> 0.1)
40
40
 
41
41
  PLATFORMS
42
42
  ruby
43
43
 
44
44
  DEPENDENCIES
45
- bundler (~> 1.14)
45
+ bundler (~> 2.0)
46
46
  confidante!
47
- gem-release (~> 0.7)
48
- rake (~> 10.0)
49
- rspec (~> 3.0)
47
+ gem-release (~> 2.0)
48
+ rake (~> 13.0)
49
+ rspec (~> 3.9)
50
50
 
51
51
  BUNDLED WITH
52
- 1.16.0
52
+ 2.0.2
data/README.md CHANGED
@@ -35,6 +35,39 @@ release a new version, update the version number in `version.rb`, and then run
35
35
  git commits and tags, and push the `.gem` file to
36
36
  [rubygems.org](https://rubygems.org).
37
37
 
38
+ ### Common Tasks
39
+
40
+ #### Generating an SSH key pair
41
+
42
+ To generate an SSH key pair:
43
+
44
+ ```
45
+ ssh-keygen -m PEM -t rsa -b 4096 -C maintainers@infrablocks.io -N '' -f config/secrets/ci/ssh
46
+ ```
47
+
48
+ #### Managing CircleCI keys
49
+
50
+ To encrypt a GPG key for use by CircleCI:
51
+
52
+ ```bash
53
+ openssl aes-256-cbc \
54
+ -e \
55
+ -md sha1 \
56
+ -in ./config/secrets/ci/gpg.private \
57
+ -out ./.circleci/gpg.private.enc \
58
+ -k "<passphrase>"
59
+ ```
60
+
61
+ To check decryption is working correctly:
62
+
63
+ ```bash
64
+ openssl aes-256-cbc \
65
+ -d \
66
+ -md sha1 \
67
+ -in ./.circleci/gpg.private.enc \
68
+ -k "<passphrase>"
69
+ ```
70
+
38
71
  ## Contributing
39
72
 
40
73
  Bug reports and pull requests are welcome on GitHub at
data/Rakefile CHANGED
@@ -1,6 +1,24 @@
1
- require 'bundler/gem_tasks'
2
1
  require 'rspec/core/rake_task'
3
2
 
4
3
  RSpec::Core::RakeTask.new(:spec)
5
4
 
6
5
  task :default => :spec
6
+
7
+ namespace :version do
8
+ desc "Bump version for specified type (pre, major, minor patch)"
9
+ task :bump, [:type] do |_, args|
10
+ bump_version_for(args.type)
11
+ end
12
+ end
13
+
14
+ desc "Release gem"
15
+ task :release do
16
+ sh "gem release --tag --push"
17
+ end
18
+
19
+ def bump_version_for(version_type)
20
+ sh "gem bump --version #{version_type} " +
21
+ "&& bundle install " +
22
+ "&& export LAST_MESSAGE=\"$(git log -1 --pretty=%B)\" " +
23
+ "&& git commit -a --amend -m \"${LAST_MESSAGE} [ci skip]\""
24
+ end
data/confidante.gemspec CHANGED
@@ -2,6 +2,7 @@
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'confidante/version'
5
+ require 'date'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
8
  spec.name = 'confidante'
@@ -9,12 +10,12 @@ Gem::Specification.new do |spec|
9
10
  spec.authors = ['Toby Clemson']
10
11
  spec.email = ['tobyclemson@gmail.com']
11
12
 
12
- spec.date = '2017-01-27'
13
+ spec.date = Date.today.to_s
13
14
  spec.summary = 'A configuration engine over hiera.'
14
15
  spec.description =
15
16
  'A configuration engine combining environment variables, programmatic ' +
16
17
  'overrides and the power of hiera.'
17
- spec.homepage = 'https://github.com/tobyclemson/confidante'
18
+ spec.homepage = 'https://github.com/infrablocks/confidante'
18
19
  spec.license = 'MIT'
19
20
 
20
21
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -24,13 +25,13 @@ Gem::Specification.new do |spec|
24
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
26
  spec.require_paths = ['lib']
26
27
 
27
- spec.required_ruby_version = '>= 2.3'
28
+ spec.required_ruby_version = '>= 2.4.7'
28
29
 
29
30
  spec.add_dependency 'hiera', '~> 3.3', '>= 3.3.1'
30
- spec.add_dependency 'activesupport', '>= 4.0.2'
31
+ spec.add_dependency 'activesupport', '>= 5.2'
31
32
 
32
- spec.add_development_dependency 'bundler', '~> 1.14'
33
- spec.add_development_dependency 'rake', '~> 10.0'
34
- spec.add_development_dependency 'rspec', '~> 3.0'
35
- spec.add_development_dependency 'gem-release', '~> 0.7'
33
+ spec.add_development_dependency 'bundler', '~> 2.0'
34
+ spec.add_development_dependency 'rake', '~> 13.0'
35
+ spec.add_development_dependency 'rspec', '~> 3.9'
36
+ spec.add_development_dependency 'gem-release', '~> 2.0'
36
37
  end
@@ -0,0 +1 @@
1
+ true
@@ -0,0 +1 @@
1
+ GRpGA9D6BvjzBzJhwU8CWk4ct34uRbMk8GQfr4n4pXNk8mAg
@@ -0,0 +1,105 @@
1
+ -----BEGIN PGP PRIVATE KEY BLOCK-----
2
+
3
+ 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
103
+ PDXv14trDg==
104
+ =Rqfy
105
+ -----END PGP PRIVATE KEY BLOCK-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+
3
+ 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
49
+ wJ+Igj9ZPECXt3c8Ne/Xi2sO
50
+ =wZdG
51
+ -----END PGP PUBLIC KEY BLOCK-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCSfUlPi60sAdFNe3TTGiw/nbmmCuhoW+BPLpJupWvS8HU7UneMs6Zk47cdEaukIEDdTHRJPHDWfnUG3GLgVo8TSOmanlC3f9f8epofOQjyoGtlg/OvbQHqVMyZOcKx/fyzZr3SboadFgLApmjf1cT+JE2qiE2BddZ10rfQeZST0FU9/uFk9EQ4oUZKIWSPtLruQwNsfeZuG900Vq2XMivIjxBSgknB1fKNFtua+6XldcpwlzT+wcPuNsvyheBrJLf0iYrGjOToEhr+fqvz3diFGLMQwkiHIp62uG/2EkmCaHxGyAKfZ676EWuHjGrVxfHQ1XwvcXiCR66a/FEs5pr4NuggwFpJlqk29C3lC42uHN25A3EzULOOxr8RyK18e0ospB3G+MyTvs42EE7O5bX7zEUSkM31hhiUND1HjXtB6LnrvRuNLHMHCDJHUF+tv/ATIoq54RJo6hr3Y5Y+t70o043DoTYE5udBCHsTy3N7AAH+wnf8kp7KtF39HTZBvhmVwVN7hPhRl5MuMjKhh2/CP87LeeHoM4K1rEALlsu61hZHCapQOBwJKzK9CByDMP2nJHa3nMZAAuG7+8gywa7rf9z977HdO3DhLFjGXfGp2V38hJO2J/WcYmQ+UdZEoabjx4vpP7B5spmUZCl7EKtwyZ1a3hM50xqAUURdtn2j9w== maintainers@infrablocks.io
@@ -0,0 +1,2 @@
1
+ ---
2
+ :rubygems_api_key: 2937a6dcdc84dd7685848a67da4c394c
data/go ADDED
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$GO_DEBUG" ] && set -x
4
+ set -e
5
+
6
+ project_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
7
+
8
+ verbose="no"
9
+ skip_checks="no"
10
+ offline="no"
11
+
12
+ missing_dependency="no"
13
+
14
+ [ -n "$GO_DEBUG" ] && verbose="yes"
15
+ [ -n "$GO_SKIP_CHECKS" ] && skip_checks="yes"
16
+ [ -n "$GO_OFFLINE" ] && offline="yes"
17
+
18
+
19
+ if [[ "$skip_checks" = "no" ]]; then
20
+ echo "Checking for system dependencies."
21
+ ruby_version="$(cat "$project_dir"/.ruby-version)"
22
+ if ! type ruby >/dev/null 2>&1 || ! ruby -v | grep -q "$ruby_version"; then
23
+ echo "This codebase requires Ruby $ruby_version."
24
+ missing_dependency="yes"
25
+ fi
26
+
27
+ if [[ "$missing_dependency" = "yes" ]]; then
28
+ echo "Please install missing dependencies to continue."
29
+ exit 1
30
+ fi
31
+
32
+ echo "All system dependencies present. Continuing."
33
+ fi
34
+
35
+ if [[ "$offline" = "no" ]]; then
36
+ echo "Installing bundler."
37
+ if [[ "$verbose" = "yes" ]]; then
38
+ gem install --no-document bundler
39
+ else
40
+ gem install --no-document bundler > /dev/null
41
+ fi
42
+
43
+ echo "Installing ruby dependencies."
44
+ if [[ "$verbose" = "yes" ]]; then
45
+ bundle install
46
+ else
47
+ bundle install > /dev/null
48
+ fi
49
+ fi
50
+
51
+ echo "Starting rake."
52
+ if [[ "$verbose" = "yes" ]]; then
53
+ time bundle exec rake --verbose "$@"
54
+ else
55
+ time bundle exec rake "$@"
56
+ fi
@@ -2,6 +2,8 @@ require 'hiera'
2
2
  require 'active_support'
3
3
  require 'active_support/core_ext/hash/keys'
4
4
 
5
+ require_relative 'converters'
6
+
5
7
  module Confidante
6
8
  class Configuration
7
9
  def initialize(opts = {})
@@ -14,32 +16,41 @@ module Confidante
14
16
  options[:hiera] = Hiera.new(config: 'config/hiera.yaml')
15
17
  end
16
18
 
19
+ unless options[:converters]
20
+ options[:converters] =
21
+ [Confidante::Converters::EvaluatingConverter.new]
22
+ end
23
+
17
24
  @overrides = options[:overrides]
18
25
  @scope = options[:scope]
19
26
  @hiera = options[:hiera]
27
+ @converters = options[:converters]
20
28
  end
21
29
 
22
30
  def for_overrides(overrides)
23
31
  Configuration.new(
24
32
  overrides: overrides,
25
33
  scope: @scope,
26
- hiera: @hiera)
34
+ hiera: @hiera,
35
+ converters: @converters)
27
36
  end
28
37
 
29
38
  def for_scope(scope)
30
39
  Configuration.new(
31
40
  overrides: @overrides,
32
41
  scope: scope,
33
- hiera: @hiera)
42
+ hiera: @hiera,
43
+ converters: @converters)
34
44
  end
35
45
 
36
46
  def method_missing(method, *args, &block)
37
- @hiera.lookup(
38
- method.to_s,
39
- nil,
47
+ scope =
40
48
  {'cwd' => Dir.pwd}
41
49
  .merge(@scope.stringify_keys)
42
- .merge({'overrides' => @overrides.to_h.stringify_keys}))
50
+ .merge({'overrides' => @overrides.to_h.stringify_keys})
51
+ @converters.inject(@hiera.lookup(method.to_s, nil, scope)) do |v, c|
52
+ c.convert(v)
53
+ end
43
54
  end
44
55
  end
45
56
  end
@@ -0,0 +1,36 @@
1
+ module Confidante
2
+ module Converters
3
+ class EvaluatingConverter
4
+ def convert(thing)
5
+ case thing
6
+ when Hash
7
+ convert_hash(thing)
8
+ when Array
9
+ convert_array(thing)
10
+ else
11
+ convert_item(thing)
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def convert_hash(thing)
18
+ {}.tap do |h|
19
+ thing.each { |k, v| h[k.to_sym] = convert(v) }
20
+ end
21
+ end
22
+
23
+ def convert_array(thing)
24
+ thing.map { |v| convert(v) }
25
+ end
26
+
27
+ def convert_item(thing)
28
+ begin
29
+ eval(thing, binding)
30
+ rescue
31
+ thing
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,6 @@
1
+ require_relative 'converters/evaluating_converter'
2
+
3
+ module Confidante
4
+ module Converters
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Confidante
2
- VERSION = '0.7.0'
2
+ VERSION = '0.8.0.pre.1'
3
3
  end
data/lib/confidante.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'confidante/version'
2
+ require 'confidante/converters'
2
3
  require 'confidante/configuration'
3
4
 
4
5
  require 'hiera/backend/env_backend'
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$DEBUG" ] && set -x
4
+ set -e
5
+ set -o pipefail
6
+
7
+ git config --global user.email "circleci@infrablocks.io"
8
+ git config --global user.name "Circle CI"
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$DEBUG" ] && set -x
4
+ set -e
5
+ set -o pipefail
6
+
7
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
+ PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
+
10
+ cd "$PROJECT_DIR"
11
+
12
+ git crypt unlock
13
+
14
+ mkdir -p ~/.gem
15
+ cp config/secrets/rubygems/credentials ~/.gem/credentials
16
+ chmod 0600 ~/.gem/credentials
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$DEBUG" ] && set -x
4
+ set -e
5
+ set -o pipefail
6
+
7
+ apt-get update
8
+ apt-get install -y --no-install-recommends git ssh git-crypt
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$DEBUG" ] && set -x
4
+ set -e
5
+ set -o pipefail
6
+
7
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
+ PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
+
10
+ cd "$PROJECT_DIR"
11
+
12
+ set +e
13
+ openssl version
14
+ openssl aes-256-cbc \
15
+ -d \
16
+ -md sha1 \
17
+ -in ./.circleci/gpg.private.enc \
18
+ -k "${ENCRYPTION_PASSPHRASE}" | gpg --import -
19
+ set -e
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$DEBUG" ] && set -x
4
+ set -e
5
+ set -o pipefail
6
+
7
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
+ PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
+
10
+ cd "$PROJECT_DIR"
11
+
12
+ ./go version:bump[pre]
13
+ ./go release
14
+
15
+ git status
16
+ git push
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$DEBUG" ] && set -x
4
+ set -e
5
+ set -o pipefail
6
+
7
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
+ PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
+
10
+ cd "$PROJECT_DIR"
11
+
12
+ git pull
13
+
14
+ ./go version:bump[minor]
15
+ ./go release
16
+
17
+ git status
18
+ git push
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bash
2
+
3
+ [ -n "$DEBUG" ] && set -x
4
+ set -e
5
+ set -o pipefail
6
+
7
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
+ PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
+
10
+ cd "$PROJECT_DIR"
11
+
12
+ ./go spec
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confidante
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-27 00:00:00.000000000 Z
11
+ date: 2019-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hiera
@@ -36,70 +36,70 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 4.0.2
39
+ version: '5.2'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 4.0.2
46
+ version: '5.2'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.14'
53
+ version: '2.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.14'
60
+ version: '2.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '10.0'
67
+ version: '13.0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '10.0'
74
+ version: '13.0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rspec
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '3.0'
81
+ version: '3.9'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '3.0'
88
+ version: '3.9'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: gem-release
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '0.7'
95
+ version: '2.0'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '0.7'
102
+ version: '2.0'
103
103
  description: A configuration engine combining environment variables, programmatic
104
104
  overrides and the power of hiera.
105
105
  email:
@@ -108,6 +108,12 @@ executables: []
108
108
  extensions: []
109
109
  extra_rdoc_files: []
110
110
  files:
111
+ - ".circleci/config.yml"
112
+ - ".circleci/gpg.private.enc"
113
+ - ".git-crypt/.gitattributes"
114
+ - ".git-crypt/keys/default/0/41D2606F66C3FF28874362B61A16916844CE9D82.gpg"
115
+ - ".git-crypt/keys/default/0/837D1812341A8C7F3E556D33623A196DE10A7326.gpg"
116
+ - ".gitattributes"
111
117
  - ".gitignore"
112
118
  - ".rspec"
113
119
  - ".ruby-version"
@@ -120,12 +126,29 @@ files:
120
126
  - bin/console
121
127
  - bin/setup
122
128
  - confidante.gemspec
129
+ - config/secrets/.unlocked
130
+ - config/secrets/ci/encryption.passphrase
131
+ - config/secrets/ci/gpg.private
132
+ - config/secrets/ci/gpg.public
133
+ - config/secrets/ci/ssh.private
134
+ - config/secrets/ci/ssh.public
135
+ - config/secrets/rubygems/credentials
136
+ - go
123
137
  - lib/confidante.rb
124
138
  - lib/confidante/configuration.rb
139
+ - lib/confidante/converters.rb
140
+ - lib/confidante/converters/evaluating_converter.rb
125
141
  - lib/confidante/version.rb
126
142
  - lib/hiera/backend/env_backend.rb
127
143
  - lib/hiera/backend/overrides_backend.rb
128
- homepage: https://github.com/tobyclemson/confidante
144
+ - scripts/ci/common/configure-git.sh
145
+ - scripts/ci/common/configure-rubygems.sh
146
+ - scripts/ci/common/install-git-crypt.sh
147
+ - scripts/ci/common/install-gpg-key.sh
148
+ - scripts/ci/steps/prerelease.sh
149
+ - scripts/ci/steps/release.sh
150
+ - scripts/ci/steps/test.sh
151
+ homepage: https://github.com/infrablocks/confidante
129
152
  licenses:
130
153
  - MIT
131
154
  metadata: {}
@@ -137,15 +160,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
160
  requirements:
138
161
  - - ">="
139
162
  - !ruby/object:Gem::Version
140
- version: '2.3'
163
+ version: 2.4.7
141
164
  required_rubygems_version: !ruby/object:Gem::Requirement
142
165
  requirements:
143
- - - ">="
166
+ - - ">"
144
167
  - !ruby/object:Gem::Version
145
- version: '0'
168
+ version: 1.3.1
146
169
  requirements: []
147
- rubyforge_project:
148
- rubygems_version: 2.5.1
170
+ rubygems_version: 3.0.3
149
171
  signing_key:
150
172
  specification_version: 4
151
173
  summary: A configuration engine over hiera.