confidante 0.7.0 → 0.8.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ lQcYBFj+dO0BEADX+WpF6yTbUx/muI09T0GhakVsGrIdP/SaXaS85PDk1AQZuuY9
4
+ P3xuV6C5jMuQHsXXrgPnFdeSTawmqI70Vh58fLxiew9uH08xESgWkcDinamSYZdc
5
+ C6t5VLESV3GjyIfPYT5b5zMyHJ/ZXGUSB+zkO5W3h7oScw9+rjauX/0Ve2+ehJei
6
+ ojBW/w6slh/Kk/BYkeCuFz6a0aRlV+/sD7cKSR9MC5l1JLJWZKxAEeMrzrGofKJ+
7
+ Et3cyrCqnV45m5IKGKMeiFZq+qPuhFI6lpldbim7SMaAcTwBiz2K9hNOpcexCjn4
8
+ bup/6+q+BZODxLcYtOrlyZxScbiNhj1BFp0llrITU14fZBochiNa1aPkMzPOkIF0
9
+ nkYWlH1p3JjCM+GmqqemFXAVgkVx/q3oBhnpPdef7qyH3VhTGH8qjkbvkATqcIz9
10
+ 7NSrnudU0VFw+UUYCpvk+dCT9WctRwAzjeG7UHz5Y5BJ31fNHaRqhn23Aa5i9B9w
11
+ hV5hWwqFOYU+ndbXlAKeqx7gTNvIpXpSPMsRWrnacHAolC6qW1z8+r3e6686AijH
12
+ 1PIgX2MLPh84keDKo61mzbc+ZnqvSkOKWTwBZK8F9amFB8XGRUiWyffHXZUgMnNV
13
+ Ovu9IYLZAMEc1ZXno2PUnOFw9C3eOvrbUdwMLxRYGCpTLU1ThgAx7jaXiwARAQAB
14
+ AA/8Ccfp4DC+ApDJKRHCk7w7JKxDaJns5xY2ZadIBqX3ouVXKjMkqjFt2TFuvfh6
15
+ X5SFMTdYRebfVGjgGwAXOUmNJ+YeQfeAw2P3milEv4DqU1kAjPiOekStB1mmi0Ya
16
+ h2hVfjbRNChMUUCqnJVqnl5thAiOxzkGXD+JvBr3rv354Dcu3ubyVxMxTT9P0tEZ
17
+ r3rzr48rtbanxysnXs+UtgQgLf8Rw8fis0NuMCtvAZfNyfYaZZ7/XOZN1en4BkIK
18
+ OmGpQ3vKJ1/VShL/yZWEg9K+L1UF3s107+ww44EC0IBEb5Nib8oexfl/9Tsh7mki
19
+ PR1zjVLkMHPo+HLeAMrLi18SzsOjGM1wP6LLZf21YvgIhRQVMWTu73ViECBUYuXK
20
+ kfthVv4N4B5yzMUw6cZ9wWB4f/YrBg3G5grgAPEr3ZO5QEG29Ju61lQ0Rwau0ZZV
21
+ SHM/qEcllQJtxx7sTz7qzk1mmnPmWmGWBTq3kTjaaXqrUsU7IO8bylMGwaQj+jdk
22
+ rmZ1WwRq4oy40rFiNojnhgFcznw4/Wde9zj7dNPaB6+dt03cmIKPBhywO+2w/QpM
23
+ i479fNpXbAObx0ks2KxmruJoXsKn+iyBXpFqdzjWLgP5GqZ5gIBqgVqbi1He9S14
24
+ kHGyHW0hw4jvIL7KsJsTbYjTMT9aDt8XaHyec4uj71/HMcEIANtvWUjs5Fzo+aJq
25
+ p8zdfc+i0FlX7wIqzyH4XhYgW2h+TDihZKbzVC6WgnS49LJQsnVz1kGOtaqyiEE8
26
+ SAeWkl5MMSt3paz9iC6XU2q3B2VG6zTeh/vjX7bWPqvvdzIkbo7xSWGwtSY1mZhv
27
+ roTtn66mGDQfbV38iXUIWIVKWBNKK20K+mOOF0uQ6H8bFU1t7plsCrjDdaOps+J9
28
+ KIPhKJzr4DYKhe2mplV5GxbUwe8q7W5cINDPkR6UaMQTJIa5J5GPyOz9spI0YCQp
29
+ /B5LI5iohqM2fvsKU0majP7VQF9AvtmkMITnqIvLcyUklpn49HYq5gEDOH+/0blq
30
+ kUQoX70IAPv2cNoMvS5DAlzf+PMVT+k8VlsD4bNvrV1t/yq+HSNszxy7M0IS50d2
31
+ cVC5nptjDX79TLZZhiRTWZM5VRslU0cuLEXSPAp7xrhC3yUl5x39LlFwaWlUkxAJ
32
+ 2D8dZWWqroYiQv0CLznBQfmB0PVrDO0W8NqA7HwpjG+HfdYi8J7tJiJRby5vBjok
33
+ PbmD50uVuymLFWELWp7deaMQhEd5cP8S2CUsAAfeZjT2H3tWYPCX3IhxKA4sbg+m
34
+ ojCuY6h72ZBMXRQYlM5+Be5IGtR2Pw/HbTt8Kq6daK+wfJ4P7CNPBloIufEawmB/
35
+ c47vDoeFwqEqdiGmy6riXbzCOCZiROcIAPQLIGl1uCC/vhjzVYzKqG+wKQ5mQR6u
36
+ qyak2ihOAd+0O9jjL+hg/AK+7Nb87+cLFJyfbubmD5jDhK65IPV9jsg9k6bWxl8n
37
+ Jt0FSbOwgTKnYvGi9Aczz6ucRK9HaX45YI2zXvk6z0VwUSUYVdyJ+4ZT4ablJ5Id
38
+ j7+XeqAYZBxyW9K3LIUg++VTVPzxohET+AxgQ0AGQ2tKy+lFOaShZksYqvz/EOkS
39
+ eKtVOeHHEtAEQTrtFiyW/BTVDVmlVdEZFQmLl3AlrD5JLMETmO8fO17hMCH5JgXw
40
+ h2p76cknhPJtNuH6l37dDnRXpgZgS3Vxf7mKdD/8285N2hgsje4KGuhyhbQzT3Bl
41
+ biBTb3VyY2UgQ0kgPHRvYnljbGVtc29uK29wZW5zb3VyY2VjaUBnbWFpbC5jb20+
42
+ iQI4BBMBAgAiBQJY/nTtAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBi
43
+ Ohlt4QpzJsc+EACPsTRw56ayMPa4QHgSpcil0fG8BbQSjdvfZv33kvPHzicL3Jtl
44
+ 9jXTw8bQlHoGklssA6CB2x3/RRnyIYo1PFWRTk6QOw9iWtMRAgujpZt3Vq17NKoA
45
+ Vcj1M49Qka1fzaHf/Gn9Zk+8g7miaN2w8m7ENz3wXY4Wo1KXn6SjTIaW9Yi9J5pE
46
+ dfZuQ3ZKigls6M7NU7wh/CvLCC6fapM0CYFdRMrK/BJ37hz+YOneRCeYN3XrBXsP
47
+ KGDF1zepHYw5YLHLbsyfhAVH/EVvfCm6Iqs9lbfnsd4CnMXiuJ9/fJILI3cx5jNK
48
+ pThBz4p8VJpat8NHir89ET/+J7g0yZ4hwoVRU0GK8l5BESADuW6urDrudUfy0UKL
49
+ URsKhxMVpfHfFU7N9zhqujX7VQ2uj1VEFKgR+xH5jXSkDZbBvqtE7oGAFiKcBCiR
50
+ h7jiOLV65+dDMnhR3N/fEo2mIV2Dtht/jOkwj+aZKx1jQ13rxJWXztLYUm4Ek5FZ
51
+ bwbTCc+/8hG447RoBN2l6Oe2WK5Y8Wt+0ggfezecVwcYEQQTq9ds5Gd9luFqDmPG
52
+ 2O05jfBR0ydsbPdBvQeZaFB66FYzxiScHbwQPfY87t+9PiqBRfhRUKwgqvYTHO0D
53
+ tVfUjMRfcdKItiK+MKcvES7Ym2BE+min6C/4hxtgH5uW0uzZBIcGkmzz2Z0HFwRY
54
+ /nTtARAAxabzCoHIBX1t6jpuwO+RT0insUeTAaEI/a/ZWm2mN9B3WQwbgLBjgw3L
55
+ 3GX2JTIKUdV1cDAWC0avOmPkrj2Nh614xOcEeJEQgcNCcOgqTpB+gJtc5ASFtQ7A
56
+ 7KasIZmRXERTT3XEVLa9Sru8/vExTvY+AL4YaVzhohiITdhnCC7wdgGud2Y/RJ2W
57
+ s8f5DV7ah31cZnMubhssCF9DALv0KyOr56CrE5GCQtvNnbyVIN/ahVf2Z+fHIiEo
58
+ hBh1fvv9IoGf1ya/rQmb7bDUaASc1ElGr6z7WJZSk5gJaz3Ez2fW//dfTNfHRJ4O
59
+ hBC8+Jwe2t5FBlttnjZ+BqoZsVzvqwoZixkHFBERk7kycnTqT+8n1q6eHKcuHz7Z
60
+ HxM2itNkLy8U2mrwv7j6tEitIXnNO3j7K1dUgD3/qZZGoj61VdwatA+CJYWGDjKq
61
+ WSJkFliSsu+557Up7ddzBsE1qwqy/tgtaXcQU8UYyM1XwBV+Yf9RD1xLNWmoTHn8
62
+ F8xYCne02iqnFkM+Muak2Ftx/ItykcNgepC6jzv4PtsuOutTzqVKJnUodzLCTTul
63
+ sq6hQPtIyLhMkKjCA4I14mR15RY5ncNkANa2GBbzfimbQgAdlJRUUrPVKbsLBbDo
64
+ 53z+xaCx9U3NmxZZEBlyKgdV0l6wAt+y2ZgTvr0DSxSPnGdH+j0AEQEAAQAP90m2
65
+ AG2qsbwFEhxPStPwSzminuda0RvDTw/3qElRGyT8rxPxIcJjlA5hSJBwdg1a3BrT
66
+ azirmcXh5L6h5fT4uIE9YkWaqUH4LP3+2voyRc2/zlE2SkqingHSokr0pL0cAT1u
67
+ y/hdXcVy70/aUGGKn+ASyozDdIHWtxYZAdiw4tg/xZg8wTBilO6lgVyY90F+JYFT
68
+ xkVu2drSqud0ZoFms2icFs5EFfq9XqUs8F4jGc/aj4COqd1dUvu1qRhFBuHp7Vnb
69
+ to7UpJjckd+aGdWw/yEsTxrt7yP266otrKrnOr6s9AisTdcahUtf+/uoJe3KS2Ip
70
+ yYXx2gT1IuAuulgAO300eHzLLLzQYOncnJDApGIK+UcjYU9lU8z8uBiygaqVYNRd
71
+ 3u3No48K83pUyNjBs/dsA9MVlzMqQQg5uFclY5eJ3JWTQ5tNh5T9pl4Xl5cKpKWG
72
+ tYOknB85LQUeLeq9Cs552pzkW1ss8+FdjueHosWRr94n2DSTtJIR1QRa4n8p1rVi
73
+ 8Sw0dXOGx6+j+2kUKsAgRLnnweE+6sFl+NUyy1yOUeoNOio/GZ+k3erRfzdxzp27
74
+ LqfXBtv1IW2/kVIEdyX7DDkWAuVLgmJf8w1c+0h5XKSReluSjM3dcD82hW5i7ezt
75
+ nsVFjFx8CQB291MqUHJCzKM+P78wCGSdaGRh7ZEIAODvoX3VCjes1nwgO6m2y37k
76
+ Jq0aFGiEuVk0Gu4r9deLMgy2TMua47EwJy0ecYEn/qqSySfxpcriJppW65wS5MAQ
77
+ q2XbBhTL14P4kc2eFV1wCqWixPaomwa0PujPWqmOSMsCJvfq65qdBS5SVtEyYMda
78
+ 5ZmCUmPpPfNM3s6CGmGbx7/WccNyyv5v+j3EFH+M6iMHOTYyCqSXcUp0u1uQYALq
79
+ YHcjV9U4eM6qMUDyPmYTvssJBhkZvYc0my4nPlNebfL2E6SkVH23014WR4IbUDwQ
80
+ zrh5uNhKBY5qHkr2rXj3xUFINrJPS0McP7dCFwRjv2TWK+e67zMmXCLvLNdon3EI
81
+ AODyub/ab8XdiZKo8MVuS0KxNkwr6F7qtuk9tOUU7az/utuFA2976wkuFJTIh/AF
82
+ ZLFCjimBhfhXTbV4EKwmKTQltdtxJ+akU4b4BiRkiawUOXNedP+Rq3ODNi/nmTio
83
+ zH8lNje5HNm8Ct5GAneCFynFeJ0ybiULmkPC4Jllt1l/+qYlnl6rVOD1D6MTSmzQ
84
+ 4oB+TCJ9xcGPIOLdrGP/mmKTi36SW7Fw2oyWydnqNJG3q032dNOxbBVmSPO6ivlb
85
+ TQHhzFy3UNFGqDNsS/VQwLPJpRdDNXYuTQGX4nx3buDSAVts8yryseeriJc4a6zm
86
+ S1KT9NsIK/5Zs1Vfd6WoOY0H/3s1iYsH7pV/QT9CiFisepBe0t25eXMjwk1gxPnK
87
+ ZBtwfdHr4cokX19tLZC0pqCe6zbaiHq5/Z41/P8XAwh3lT8pLilLHPwPDUeGUbic
88
+ hGUS9bFymdwRfHkypCxJd/KmTV6eMqqsj1v1OI+fco60GWb4IaeMM1iN2MtcEbcM
89
+ SOC5ez9/CMgFyKOyJ/buohRkvkcggQt+xvNiqE/cdgPScf+S7kLWfgAfyuyuNOGV
90
+ bPJCJZ7VM8THp4t7jUNS934DThLXR466eSKWwzlZFlEvtNKl0Pbh+f1E0rDeSFSU
91
+ uNYLm98TN2IWEpExVLXgBAVKKb7iG7QXUBveVXxZGt92hL+OF4kCHwQYAQIACQUC
92
+ WP507QIbDAAKCRBiOhlt4QpzJuklD/4kudFl7XSj+IV+XGlJv7yvR780AnsuqQO/
93
+ 0PX4W7b2pGwNNyH8RwfvImNkoA/kOwQTPPwWE/Xfxew6G/ApxEVvmAdsHGDnwxYD
94
+ EzTCRdSVXm1uXEwQBunVAR2+fZqvfCXgc2mNTO2aWakQP0gS99avr/zwmUonCAa7
95
+ 1rH6BHygvJkGAaCnnPNXGK+7r/r4V3BuCMig35p1DzUwtiLYhumjH/LOnkFGreVR
96
+ 49F7mKvpnUV6aUR4Pq0fYjnky9sqTwYb0RQNzBcWm/RDhjRg30tvnJHFwal/9XA6
97
+ 8P8k0Ok93aXJgSXSAY2oBnWR+mPia8hDOH3weC5dF7kiPb//SqClm3wJllOJFcLt
98
+ l5slexQAfm75ne00kS1veph010qeeykI2LDgJLrGzYwSL7dOgWHBl9gVENSdDFFm
99
+ gFN0oiw/lwUe6jTlmdsfgREEovx8d9xrHlG+R0h9bEJSQQ7+NjUKSDc3Y6DPEJCc
100
+ GGTjtw2gITDKu3ggyU3m01OSVbj5kk6SqwoEhyCCOfAvjv/CHQnmvbk9yM2IpHwN
101
+ i/AL4IVz29wMlkOKzljb7pCZ/ON+IFA/MNFGSHCwx4n0O/KI/ObjvGQ2YSNDgZdF
102
+ QjOCf/B4BaJ94XkNKWIEZr3TW5lSQQOkev03dWRewasrNPoJmcCfiII/WTxAl7d3
103
+ PDXv14trDg==
104
+ =Rqfy
105
+ -----END PGP PRIVATE KEY BLOCK-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+
3
+ mQINBFj+dO0BEADX+WpF6yTbUx/muI09T0GhakVsGrIdP/SaXaS85PDk1AQZuuY9
4
+ P3xuV6C5jMuQHsXXrgPnFdeSTawmqI70Vh58fLxiew9uH08xESgWkcDinamSYZdc
5
+ C6t5VLESV3GjyIfPYT5b5zMyHJ/ZXGUSB+zkO5W3h7oScw9+rjauX/0Ve2+ehJei
6
+ ojBW/w6slh/Kk/BYkeCuFz6a0aRlV+/sD7cKSR9MC5l1JLJWZKxAEeMrzrGofKJ+
7
+ Et3cyrCqnV45m5IKGKMeiFZq+qPuhFI6lpldbim7SMaAcTwBiz2K9hNOpcexCjn4
8
+ bup/6+q+BZODxLcYtOrlyZxScbiNhj1BFp0llrITU14fZBochiNa1aPkMzPOkIF0
9
+ nkYWlH1p3JjCM+GmqqemFXAVgkVx/q3oBhnpPdef7qyH3VhTGH8qjkbvkATqcIz9
10
+ 7NSrnudU0VFw+UUYCpvk+dCT9WctRwAzjeG7UHz5Y5BJ31fNHaRqhn23Aa5i9B9w
11
+ hV5hWwqFOYU+ndbXlAKeqx7gTNvIpXpSPMsRWrnacHAolC6qW1z8+r3e6686AijH
12
+ 1PIgX2MLPh84keDKo61mzbc+ZnqvSkOKWTwBZK8F9amFB8XGRUiWyffHXZUgMnNV
13
+ Ovu9IYLZAMEc1ZXno2PUnOFw9C3eOvrbUdwMLxRYGCpTLU1ThgAx7jaXiwARAQAB
14
+ tDNPcGVuIFNvdXJjZSBDSSA8dG9ieWNsZW1zb24rb3BlbnNvdXJjZWNpQGdtYWls
15
+ LmNvbT6JAjgEEwECACIFAlj+dO0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA
16
+ AAoJEGI6GW3hCnMmxz4QAI+xNHDnprIw9rhAeBKlyKXR8bwFtBKN299m/feS88fO
17
+ Jwvcm2X2NdPDxtCUegaSWywDoIHbHf9FGfIhijU8VZFOTpA7D2Ja0xECC6Olm3dW
18
+ rXs0qgBVyPUzj1CRrV/Nod/8af1mT7yDuaJo3bDybsQ3PfBdjhajUpefpKNMhpb1
19
+ iL0nmkR19m5DdkqKCWzozs1TvCH8K8sILp9qkzQJgV1Eysr8EnfuHP5g6d5EJ5g3
20
+ desFew8oYMXXN6kdjDlgsctuzJ+EBUf8RW98Kboiqz2Vt+ex3gKcxeK4n398kgsj
21
+ dzHmM0qlOEHPinxUmlq3w0eKvz0RP/4nuDTJniHChVFTQYryXkERIAO5bq6sOu51
22
+ R/LRQotRGwqHExWl8d8VTs33OGq6NftVDa6PVUQUqBH7EfmNdKQNlsG+q0TugYAW
23
+ IpwEKJGHuOI4tXrn50MyeFHc398SjaYhXYO2G3+M6TCP5pkrHWNDXevElZfO0thS
24
+ bgSTkVlvBtMJz7/yEbjjtGgE3aXo57ZYrljxa37SCB97N5xXBxgRBBOr12zkZ32W
25
+ 4WoOY8bY7TmN8FHTJ2xs90G9B5loUHroVjPGJJwdvBA99jzu370+KoFF+FFQrCCq
26
+ 9hMc7QO1V9SMxF9x0oi2Ir4wpy8RLtibYET6aKfoL/iHG2Afm5bS7NkEhwaSbPPZ
27
+ uQINBFj+dO0BEADFpvMKgcgFfW3qOm7A75FPSKexR5MBoQj9r9labaY30HdZDBuA
28
+ sGODDcvcZfYlMgpR1XVwMBYLRq86Y+SuPY2HrXjE5wR4kRCBw0Jw6CpOkH6Am1zk
29
+ BIW1DsDspqwhmZFcRFNPdcRUtr1Ku7z+8TFO9j4AvhhpXOGiGIhN2GcILvB2Aa53
30
+ Zj9EnZazx/kNXtqHfVxmcy5uGywIX0MAu/QrI6vnoKsTkYJC282dvJUg39qFV/Zn
31
+ 58ciISiEGHV++/0igZ/XJr+tCZvtsNRoBJzUSUavrPtYllKTmAlrPcTPZ9b/919M
32
+ 18dEng6EELz4nB7a3kUGW22eNn4GqhmxXO+rChmLGQcUERGTuTJydOpP7yfWrp4c
33
+ py4fPtkfEzaK02QvLxTaavC/uPq0SK0hec07ePsrV1SAPf+plkaiPrVV3Bq0D4Il
34
+ hYYOMqpZImQWWJKy77nntSnt13MGwTWrCrL+2C1pdxBTxRjIzVfAFX5h/1EPXEs1
35
+ aahMefwXzFgKd7TaKqcWQz4y5qTYW3H8i3KRw2B6kLqPO/g+2y4661POpUomdSh3
36
+ MsJNO6WyrqFA+0jIuEyQqMIDgjXiZHXlFjmdw2QA1rYYFvN+KZtCAB2UlFRSs9Up
37
+ uwsFsOjnfP7FoLH1Tc2bFlkQGXIqB1XSXrAC37LZmBO+vQNLFI+cZ0f6PQARAQAB
38
+ iQIfBBgBAgAJBQJY/nTtAhsMAAoJEGI6GW3hCnMm6SUP/iS50WXtdKP4hX5caUm/
39
+ vK9HvzQCey6pA7/Q9fhbtvakbA03IfxHB+8iY2SgD+Q7BBM8/BYT9d/F7Dob8CnE
40
+ RW+YB2wcYOfDFgMTNMJF1JVebW5cTBAG6dUBHb59mq98JeBzaY1M7ZpZqRA/SBL3
41
+ 1q+v/PCZSicIBrvWsfoEfKC8mQYBoKec81cYr7uv+vhXcG4IyKDfmnUPNTC2ItiG
42
+ 6aMf8s6eQUat5VHj0XuYq+mdRXppRHg+rR9iOeTL2ypPBhvRFA3MFxab9EOGNGDf
43
+ S2+ckcXBqX/1cDrw/yTQ6T3dpcmBJdIBjagGdZH6Y+JryEM4ffB4Ll0XuSI9v/9K
44
+ oKWbfAmWU4kVwu2XmyV7FAB+bvmd7TSRLW96mHTXSp57KQjYsOAkusbNjBIvt06B
45
+ YcGX2BUQ1J0MUWaAU3SiLD+XBR7qNOWZ2x+BEQSi/Hx33GseUb5HSH1sQlJBDv42
46
+ NQpINzdjoM8QkJwYZOO3DaAhMMq7eCDJTebTU5JVuPmSTpKrCgSHIII58C+O/8Id
47
+ Cea9uT3IzYikfA2L8AvghXPb3AyWQ4rOWNvukJn8434gUD8w0UZIcLDHifQ78oj8
48
+ 5uO8ZDZhI0OBl0VCM4J/8HgFon3heQ0pYgRmvdNbmVJBA6R6/Td1ZF7Bqys0+gmZ
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.