secret_hub 0.2.0 → 0.2.2

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
2
  SHA256:
3
- metadata.gz: 43f49eb823e6839d1fcdd99c1b06dc18fa0c0bcae324228a8a024c24e8743c2b
4
- data.tar.gz: b649439d4b9a740c6a2cbe2ad7f85aaf52cd23cba4287b47e6f6b5d013831055
3
+ metadata.gz: 6395f8f799ffb59615d0c926519b74bc6c924c2696841a16f847f14e1750988c
4
+ data.tar.gz: 57a8dd0b5de09ea6ff62084a269e882a57a8197736e87a8caeeeed236ecb2817
5
5
  SHA512:
6
- metadata.gz: 10c662e3948d97f76be14de4afdf66d97a163b1449852261f0c10410b281bce3b205a3c3d3108b286b8e92ac34aa047983fac84ed9bd007b2ffa49001f518cea
7
- data.tar.gz: 565e5a95d926b8a78f8299fc3eb49ec36156a3013d98edce0d313929d60742ceea6ec1dc127460b3c95aa340aa4da6a8aa7b30753d25f69a3f00fa6020066e5d
6
+ metadata.gz: 385b7a968fbb014cfa1166e69dfa7c189af538d98e87f9df9ceaf07bd41f64137ae503732a2b25939edb71c9ee44cba811d5df2fe0ec53bcad7c557ed07d4049
7
+ data.tar.gz: 28994ec833f8cc308823e300922f28c132b184a7fe105d24c84f0c7e29a41a70525fe109d49ba9600c38427d02b03bc4b84d3e33a7bbda6c8d425649241ee377
data/README.md CHANGED
@@ -61,7 +61,7 @@ Run secrethub COMMAND --help for command specific help
61
61
  $ secrethub repo
62
62
  Usage:
63
63
  secrethub repo list REPO
64
- secrethub repo save REPO KEY VALUE
64
+ secrethub repo save REPO KEY [VALUE]
65
65
  secrethub repo delete REPO KEY
66
66
  secrethub repo (-h|--help)
67
67
 
@@ -69,7 +69,7 @@ Usage:
69
69
  $ secrethub org
70
70
  Usage:
71
71
  secrethub org list ORG
72
- secrethub org save ORG KEY VALUE
72
+ secrethub org save ORG KEY [VALUE]
73
73
  secrethub org delete ORG KEY
74
74
  secrethub org (-h|--help)
75
75
 
data/bin/secrethub CHANGED
@@ -8,12 +8,12 @@ router = SecretHub::CLI.router
8
8
 
9
9
  begin
10
10
  exit router.run ARGV
11
- rescue Interrupt => e
11
+ rescue Interrupt
12
12
  say "\nGoodbye"
13
13
  exit 1
14
14
  rescue => e
15
15
  puts e.backtrace.reverse if ENV['DEBUG']
16
- say! "!txtred!#{e.class}"
16
+ say! "rib` #{e.class}`"
17
17
  say! e.message
18
18
  exit 1
19
- end
19
+ end
@@ -8,8 +8,8 @@ module SecretHub
8
8
  class CLI
9
9
  def self.router
10
10
  router = MisterBin::Runner.new version: VERSION,
11
- header: "GitHub Secret Manager",
12
- footer: "Run !txtpur!secrethub COMMAND --help!txtrst! for command specific help"
11
+ header: 'GitHub Secret Manager',
12
+ footer: 'Run m`secrethub COMMAND --help` for command specific help'
13
13
 
14
14
  router.route 'repo', to: Commands::Repo
15
15
  router.route 'org', to: Commands::Org
@@ -18,5 +18,4 @@ module SecretHub
18
18
  router
19
19
  end
20
20
  end
21
-
22
21
  end
@@ -10,7 +10,6 @@ module SecretHub
10
10
  def github
11
11
  @github ||= GitHubClient.new
12
12
  end
13
-
14
13
  end
15
14
  end
16
- end
15
+ end
@@ -6,45 +6,46 @@ module SecretHub
6
6
  class Bulk < Base
7
7
  using StringObfuscation
8
8
 
9
- summary "Manage multiple secrets in multiple repositories"
10
-
11
- usage "secrethub bulk init [CONFIG]"
12
- usage "secrethub bulk show [CONFIG --visible]"
13
- usage "secrethub bulk list [CONFIG]"
14
- usage "secrethub bulk save [CONFIG --clean --dry --only REPO]"
15
- usage "secrethub bulk clean [CONFIG --dry]"
16
- usage "secrethub bulk (-h|--help)"
17
-
18
- command "init", "Create a sample configuration file in the current directory"
19
- command "show", "Show the configuration file"
20
- command "save", "Save multiple secrets to multiple repositories"
21
- command "clean", "Delete secrets from multiple repositories unless they are specified in the config file"
22
- command "list", "Show all secrets in all repositories"
23
-
24
- option "-c, --clean", "Also delete any other secret not defined in the configuration file"
25
- option "-v, --visible", "Also show secret values"
26
- option "-d, --dry", "Dry run"
27
- option "-o, --only REPO", "Save all secrets to a single repository from the configuration file"
28
-
29
- param "CONFIG", "Path to the configuration file [default: secrethub.yml]"
30
-
31
- example "secrethub bulk init"
32
- example "secrethub bulk show --visible"
33
- example "secrethub bulk clean"
34
- example "secrethub bulk list mysecrets.yml"
35
- example "secrethub bulk save mysecrets.yml --dry"
36
- example "secrethub bulk save --clean"
37
- example "secrethub bulk save --only me/my-important-repo"
9
+ summary 'Manage multiple secrets in multiple repositories'
10
+
11
+ usage 'secrethub bulk init [CONFIG]'
12
+ usage 'secrethub bulk show [CONFIG --visible]'
13
+ usage 'secrethub bulk list [CONFIG]'
14
+ usage 'secrethub bulk save [CONFIG --clean --dry --only REPO]'
15
+ usage 'secrethub bulk clean [CONFIG --dry]'
16
+ usage 'secrethub bulk (-h|--help)'
17
+
18
+ command 'init', 'Create a sample configuration file in the current directory'
19
+ command 'show', 'Show the configuration file'
20
+ command 'save', 'Save multiple secrets to multiple repositories'
21
+ command 'clean', 'Delete secrets from multiple repositories unless they are specified in the config file'
22
+ command 'list', 'Show all secrets in all repositories'
23
+
24
+ option '-c, --clean', 'Also delete any other secret not defined in the configuration file'
25
+ option '-v, --visible', 'Also show secret values'
26
+ option '-d, --dry', 'Dry run'
27
+ option '-o, --only REPO', 'Save all secrets to a single repository from the configuration file'
28
+
29
+ param 'CONFIG', 'Path to the configuration file [default: secrethub.yml]'
30
+
31
+ example 'secrethub bulk init'
32
+ example 'secrethub bulk show --visible'
33
+ example 'secrethub bulk clean'
34
+ example 'secrethub bulk list mysecrets.yml'
35
+ example 'secrethub bulk save mysecrets.yml --dry'
36
+ example 'secrethub bulk save --clean'
37
+ example 'secrethub bulk save --only me/my-important-repo'
38
38
 
39
39
  def init_command
40
40
  raise SecretHubError, "File #{config_file} already exists" if File.exist? config_file
41
+
41
42
  FileUtils.cp config_template, config_file
42
- say "!txtgrn!Saved #{config_file}"
43
+ say "Saved g`#{config_file}`"
43
44
  end
44
45
 
45
46
  def show_command
46
47
  config.each do |repo, secrets|
47
- say "!txtblu!#{repo}:"
48
+ say "b`#{repo}`:"
48
49
  secrets.each do |key, value|
49
50
  show_secret key, value, args['--visible']
50
51
  end
@@ -53,9 +54,9 @@ module SecretHub
53
54
 
54
55
  def list_command
55
56
  config.each_repo do |repo|
56
- say "!txtblu!#{repo}:"
57
+ say "b`#{repo}`:"
57
58
  github.secrets(repo).each do |secret|
58
- say "- !txtpur!#{secret}"
59
+ say "- m`#{secret}`"
59
60
  end
60
61
  end
61
62
  end
@@ -66,22 +67,23 @@ module SecretHub
66
67
  skipped = 0
67
68
 
68
69
  config.each do |repo, secrets|
69
- next if only and repo != only
70
- say "!txtblu!#{repo}"
70
+ next if only && (repo != only)
71
+
72
+ say "b`#{repo}`"
71
73
  skipped += update_repo repo, secrets, dry
72
74
  clean_repo repo, secrets.keys, dry if args['--clean']
73
75
  end
74
76
 
75
- puts "\n" if skipped > 0 or dry
76
- say "Skipped #{skipped} missing secrets" if skipped > 0
77
- say "Dry run, nothing happened" if dry
77
+ puts "\n" if skipped.positive? || dry
78
+ say "Skipped #{skipped} missing secrets" if skipped.positive?
79
+ say 'Dry run, nothing happened' if dry
78
80
  end
79
81
 
80
82
  def clean_command
81
83
  dry = args['--dry']
82
84
 
83
85
  config.each do |repo, secrets|
84
- say "!txtblu!#{repo}"
86
+ say "b`#{repo}`"
85
87
  clean_repo repo, secrets.keys, dry
86
88
  end
87
89
 
@@ -95,9 +97,9 @@ module SecretHub
95
97
  delete_candidates = repo_keys - keys
96
98
 
97
99
  delete_candidates.each do |key|
98
- say "delete !txtpur!#{key} "
100
+ say "delete m`#{key}` "
99
101
  github.delete_secret repo, key unless dry
100
- say "!txtgrn!OK"
102
+ say 'g`OK`'
101
103
  end
102
104
  end
103
105
 
@@ -105,12 +107,12 @@ module SecretHub
105
107
  skipped = 0
106
108
 
107
109
  secrets.each do |key, value|
108
- say "save !txtpur!#{key} "
110
+ say "save m`#{key}` "
109
111
  if value
110
112
  github.put_secret repo, key, value unless dry
111
- say "!txtgrn!OK"
113
+ say 'g`OK`'
112
114
  else
113
- say "!txtred!MISSING"
115
+ say 'r`MISSING`'
114
116
  skipped += 1
115
117
  end
116
118
  end
@@ -121,9 +123,9 @@ module SecretHub
121
123
  def show_secret(key, value, visible)
122
124
  if value
123
125
  value = value.obfuscate unless visible
124
- say " !txtpur!#{key}: !txtcyn!#{value}"
126
+ say " m`#{key}`: c`#{value}`"
125
127
  else
126
- say " !txtpur!#{key}: !txtred!*MISSING*"
128
+ say " m`#{key}`: r`*MISSING*`"
127
129
  end
128
130
  end
129
131
 
@@ -1,40 +1,41 @@
1
1
  module SecretHub
2
2
  module Commands
3
3
  class Org < Base
4
- summary "Manage organization secrets"
5
-
6
- usage "secrethub org list ORG"
7
- usage "secrethub org save ORG KEY VALUE"
8
- usage "secrethub org delete ORG KEY"
9
- usage "secrethub org (-h|--help)"
4
+ summary 'Manage organization secrets'
10
5
 
11
- command "list", "Show all organization secrets"
12
- command "save", "Create or update an organization secret (with private repositories visibility)"
13
- command "delete", "Delete an organization secret"
6
+ usage 'secrethub org list ORG'
7
+ usage 'secrethub org save ORG KEY [VALUE]'
8
+ usage 'secrethub org delete ORG KEY'
9
+ usage 'secrethub org (-h|--help)'
14
10
 
15
- param "ORG", "Name of the organization"
16
- param "KEY", "The name of the secret"
17
- param "VALUE", "The plain text secret value"
11
+ command 'list', 'Show all organization secrets'
12
+ command 'save', 'Create or update an organization secret (with private repositories visibility)'
13
+ command 'delete', 'Delete an organization secret'
18
14
 
19
- example "secrethub org list myorg"
20
- example "secrethub org save myorg PASSWORD s3cr3t"
21
- example "secrethub org delete myorg PASSWORD"
15
+ param 'ORG', 'Name of the organization'
16
+ param 'KEY', 'The name of the secret'
17
+ param 'VALUE', 'The plain text secret value. If not provided, it is expected to be set as an environment variable'
18
+
19
+ example 'secrethub org list myorg'
20
+ example 'secrethub org save myorg PASSWORD'
21
+ example 'secrethub org save myorg PASSWORD s3cr3t'
22
+ example 'secrethub org delete myorg PASSWORD'
22
23
 
23
24
  def list_command
24
- say "!txtblu!#{org}:"
25
+ say "b`#{org}`:"
25
26
  github.org_secrets(org).each do |secret|
26
- say "- !txtpur!#{secret}"
27
+ say "- m`#{secret}`"
27
28
  end
28
29
  end
29
30
 
30
- def save_command
31
+ def save_command
31
32
  github.put_org_secret org, key, value
32
- say "Saved !txtblu!#{org} !txtpur!#{key}"
33
+ say "Saved b`#{org}` m`#{key}`"
33
34
  end
34
35
 
35
36
  def delete_command
36
37
  github.delete_org_secret org, key
37
- say "Deleted !txtblu!#{org} !txtpur!#{key}"
38
+ say "Deleted b`#{org}` m`#{key}`"
38
39
  end
39
40
 
40
41
  private
@@ -48,9 +49,14 @@ module SecretHub
48
49
  end
49
50
 
50
51
  def value
51
- args['VALUE']
52
- end
52
+ result = args['VALUE'] || ENV[key]
53
+ unless result
54
+ raise InvalidInput,
55
+ "Please provide a value, either in the command line or in the environment variable '#{key}'"
56
+ end
53
57
 
58
+ result
59
+ end
54
60
  end
55
61
  end
56
62
  end
@@ -1,40 +1,41 @@
1
1
  module SecretHub
2
2
  module Commands
3
3
  class Repo < Base
4
- summary "Manage repository secrets"
5
-
6
- usage "secrethub repo list REPO"
7
- usage "secrethub repo save REPO KEY VALUE"
8
- usage "secrethub repo delete REPO KEY"
9
- usage "secrethub repo (-h|--help)"
4
+ summary 'Manage repository secrets'
10
5
 
11
- command "list", "Show all repository secrets"
12
- command "save", "Create or update a repository secret"
13
- command "delete", "Delete a repository secret"
6
+ usage 'secrethub repo list REPO'
7
+ usage 'secrethub repo save REPO KEY [VALUE]'
8
+ usage 'secrethub repo delete REPO KEY'
9
+ usage 'secrethub repo (-h|--help)'
14
10
 
15
- param "REPO", "Full name of the GitHub repository (user/repo)"
16
- param "KEY", "The name of the secret"
17
- param "VALUE", "The plain text secret value"
11
+ command 'list', 'Show all repository secrets'
12
+ command 'save', 'Create or update a repository secret'
13
+ command 'delete', 'Delete a repository secret'
18
14
 
19
- example "secrethub repo list me/myrepo"
20
- example "secrethub repo save me/myrepo PASSWORD s3cr3t"
21
- example "secrethub repo delete me/myrepo PASSWORD"
15
+ param 'REPO', 'Full name of the GitHub repository (user/repo)'
16
+ param 'KEY', 'The name of the secret'
17
+ param 'VALUE', 'The plain text secret value. If not provided, it is expected to be set as an environment variable'
18
+
19
+ example 'secrethub repo list me/myrepo'
20
+ example 'secrethub repo save me/myrepo PASSWORD'
21
+ example 'secrethub repo save me/myrepo PASSWORD s3cr3t'
22
+ example 'secrethub repo delete me/myrepo PASSWORD'
22
23
 
23
24
  def list_command
24
- say "!txtblu!#{repo}:"
25
+ say "b`#{repo}`:"
25
26
  github.secrets(repo).each do |secret|
26
- say "- !txtpur!#{secret}"
27
+ say "- m`#{secret}`"
27
28
  end
28
29
  end
29
30
 
30
- def save_command
31
+ def save_command
31
32
  github.put_secret repo, key, value
32
- say "Saved !txtblu!#{repo} !txtpur!#{key}"
33
+ say "Saved b`#{repo}` m`#{key}`"
33
34
  end
34
35
 
35
36
  def delete_command
36
37
  github.delete_secret repo, key
37
- say "Deleted !txtblu!#{repo} !txtpur!#{key}"
38
+ say "Deleted b`#{repo}` m`#{key}`"
38
39
  end
39
40
 
40
41
  private
@@ -48,9 +49,14 @@ module SecretHub
48
49
  end
49
50
 
50
51
  def value
51
- args['VALUE']
52
- end
52
+ result = args['VALUE'] || ENV[key]
53
+ unless result
54
+ raise InvalidInput,
55
+ "Please provide a value, either in the command line or in the environment variable '#{key}'"
56
+ end
53
57
 
58
+ result
59
+ end
54
60
  end
55
61
  end
56
62
  end
@@ -6,7 +6,12 @@ module SecretHub
6
6
 
7
7
  def self.load(config_file)
8
8
  raise ConfigurationError, "Config file not found #{config_file}" unless File.exist? config_file
9
+
10
+ new YAML.load_file config_file, aliases: true
11
+ rescue ArgumentError
12
+ # :nocov:
9
13
  new YAML.load_file config_file
14
+ # :nocov:
10
15
  end
11
16
 
12
17
  def initialize(data)
@@ -18,11 +23,11 @@ module SecretHub
18
23
  end
19
24
 
20
25
  def each(&block)
21
- to_h.each &block
26
+ to_h.each(&block)
22
27
  end
23
28
 
24
29
  def each_repo(&block)
25
- to_h.keys.each &block
30
+ to_h.keys.each(&block)
26
31
  end
27
32
 
28
33
  private
@@ -31,18 +36,20 @@ module SecretHub
31
36
  result = {}
32
37
  data.each do |repo, secrets|
33
38
  next unless repo.include? '/'
39
+
34
40
  result[repo] = resolve_secrets secrets
35
41
  end
36
42
  result
37
43
  end
38
44
 
39
45
  def resolve_secrets(secrets)
40
- secrets = [] unless secrets
41
-
42
- if secrets.is_a? Hash
43
- secrets.map { |key, value| [key, value || ENV[key]] }.to_h
44
- elsif secrets.is_a? Array
45
- secrets.map { |key| [key, ENV[key]] }.to_h
46
+ secrets ||= []
47
+
48
+ case secrets
49
+ when Hash
50
+ secrets.to_h { |key, value| [key, value || ENV[key]] }
51
+ when Array
52
+ secrets.to_h { |key| [key, ENV[key]] }
46
53
  end
47
54
  end
48
55
  end
@@ -1,7 +1,8 @@
1
1
  module SecretHub
2
2
  SecretHubError = Class.new StandardError
3
3
  ConfigurationError = Class.new SecretHubError
4
-
4
+ InvalidInput = Class.new SecretHubError
5
+
5
6
  class APIError < SecretHubError
6
7
  attr_reader :response
7
8
 
@@ -10,4 +11,4 @@ module SecretHub
10
11
  super "[#{response.code}] #{response.body}"
11
12
  end
12
13
  end
13
- end
14
+ end
@@ -39,8 +39,8 @@ module SecretHub
39
39
  secret = encrypt_for repo, value
40
40
  key_id = public_key(repo)['key_id']
41
41
  put "/repos/#{repo}/actions/secrets/#{name}",
42
- encrypted_value: secret,
43
- key_id: key_id
42
+ encrypted_value: secret,
43
+ key_id: key_id
44
44
  end
45
45
 
46
46
  # PUT /orgs/:org/actions/secrets/:secret_name
@@ -48,9 +48,9 @@ module SecretHub
48
48
  secret = encrypt_for org, value
49
49
  key_id = public_key(org)['key_id']
50
50
  put "/orgs/#{org}/actions/secrets/#{name}",
51
- encrypted_value: secret,
52
- key_id: key_id,
53
- visibility: 'private'
51
+ encrypted_value: secret,
52
+ key_id: key_id,
53
+ visibility: 'private'
54
54
  end
55
55
 
56
56
  # DELETE /repos/:owner/:repo/actions/secrets/:name
@@ -97,15 +97,14 @@ module SecretHub
97
97
  end
98
98
 
99
99
  def headers
100
- {
101
- "Authorization" => "token #{secret_token}",
102
- "User-Agent" => "SecretHub Gem"
100
+ {
101
+ 'Authorization' => "token #{secret_token}",
102
+ 'User-Agent' => 'SecretHub Gem',
103
103
  }
104
104
  end
105
105
 
106
106
  def secret_token
107
- ENV['GITHUB_ACCESS_TOKEN'] || raise(ConfigurationError, "Please set GITHUB_ACCESS_TOKEN")
107
+ ENV['GITHUB_ACCESS_TOKEN'] || raise(ConfigurationError, 'Please set GITHUB_ACCESS_TOKEN')
108
108
  end
109
-
110
109
  end
111
110
  end
@@ -6,18 +6,18 @@ module SecretHub
6
6
  def obfuscate
7
7
  text = dup
8
8
  trim = false
9
-
9
+
10
10
  if text.size > 40
11
11
  trim = true
12
12
  text = text[0..40]
13
13
  end
14
-
14
+
15
15
  result = StringObfuscator.obfuscate text,
16
- percent: 60,
16
+ percent: 60,
17
17
  min_obfuscated_length: 5
18
18
 
19
19
  trim ? "#{result}..." : result
20
20
  end
21
21
  end
22
22
  end
23
- end
23
+ end
@@ -1,4 +1,4 @@
1
- require "base64"
1
+ require 'base64'
2
2
  require 'rbnacl'
3
3
 
4
4
  module SecretHub
@@ -1,3 +1,3 @@
1
1
  module SecretHub
2
- VERSION = "0.2.0"
3
- end
2
+ VERSION = '0.2.2'
3
+ end
data/lib/secret_hub.rb CHANGED
@@ -2,5 +2,3 @@ require 'secret_hub/version'
2
2
  require 'secret_hub/exceptions'
3
3
  require 'secret_hub/github_client'
4
4
  require 'secret_hub/config'
5
-
6
- require 'byebug' if ENV['BYEBUG']
metadata CHANGED
@@ -1,71 +1,91 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secret_hub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-15 00:00:00.000000000 Z
11
+ date: 2024-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: mister_bin
14
+ name: colsole
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.1
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.8.1
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: httparty
15
35
  requirement: !ruby/object:Gem::Requirement
16
36
  requirements:
17
37
  - - "~>"
18
38
  - !ruby/object:Gem::Version
19
- version: '0.7'
39
+ version: '0.21'
20
40
  type: :runtime
21
41
  prerelease: false
22
42
  version_requirements: !ruby/object:Gem::Requirement
23
43
  requirements:
24
44
  - - "~>"
25
45
  - !ruby/object:Gem::Version
26
- version: '0.7'
46
+ version: '0.21'
27
47
  - !ruby/object:Gem::Dependency
28
- name: colsole
48
+ name: lp
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
31
51
  - - "~>"
32
52
  - !ruby/object:Gem::Version
33
- version: '0.7'
53
+ version: '0.2'
34
54
  type: :runtime
35
55
  prerelease: false
36
56
  version_requirements: !ruby/object:Gem::Requirement
37
57
  requirements:
38
58
  - - "~>"
39
59
  - !ruby/object:Gem::Version
40
- version: '0.7'
60
+ version: '0.2'
41
61
  - !ruby/object:Gem::Dependency
42
- name: httparty
62
+ name: mister_bin
43
63
  requirement: !ruby/object:Gem::Requirement
44
64
  requirements:
45
65
  - - "~>"
46
66
  - !ruby/object:Gem::Version
47
- version: '0.17'
67
+ version: 0.7.3
48
68
  type: :runtime
49
69
  prerelease: false
50
70
  version_requirements: !ruby/object:Gem::Requirement
51
71
  requirements:
52
72
  - - "~>"
53
73
  - !ruby/object:Gem::Version
54
- version: '0.17'
74
+ version: 0.7.3
55
75
  - !ruby/object:Gem::Dependency
56
- name: lp
76
+ name: rackup
57
77
  requirement: !ruby/object:Gem::Requirement
58
78
  requirements:
59
79
  - - "~>"
60
80
  - !ruby/object:Gem::Version
61
- version: '0.2'
81
+ version: '2.1'
62
82
  type: :runtime
63
83
  prerelease: false
64
84
  version_requirements: !ruby/object:Gem::Requirement
65
85
  requirements:
66
86
  - - "~>"
67
87
  - !ruby/object:Gem::Version
68
- version: '0.2'
88
+ version: '2.1'
69
89
  - !ruby/object:Gem::Dependency
70
90
  name: rbnacl
71
91
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +114,34 @@ dependencies:
94
114
  - - "~>"
95
115
  - !ruby/object:Gem::Version
96
116
  version: '0.1'
117
+ - !ruby/object:Gem::Dependency
118
+ name: bigdecimal
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: csv
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
97
145
  description: Command line interface for managing GitHub secrets in bulk
98
146
  email: db@dannyben.com
99
147
  executables:
@@ -119,8 +167,9 @@ files:
119
167
  homepage: https://github.com/dannyben/secret_hub
120
168
  licenses:
121
169
  - MIT
122
- metadata: {}
123
- post_install_message:
170
+ metadata:
171
+ rubygems_mfa_required: 'true'
172
+ post_install_message:
124
173
  rdoc_options: []
125
174
  require_paths:
126
175
  - lib
@@ -128,15 +177,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
177
  requirements:
129
178
  - - ">="
130
179
  - !ruby/object:Gem::Version
131
- version: 2.4.0
180
+ version: '3.0'
132
181
  required_rubygems_version: !ruby/object:Gem::Requirement
133
182
  requirements:
134
183
  - - ">="
135
184
  - !ruby/object:Gem::Version
136
185
  version: '0'
137
186
  requirements: []
138
- rubygems_version: 3.1.2
139
- signing_key:
187
+ rubygems_version: 3.5.6
188
+ signing_key:
140
189
  specification_version: 4
141
190
  summary: Manage GitHub secrets over multiple repositories
142
191
  test_files: []