rake_gpg 0.1.0.pre.1 → 0.1.0.pre.2

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: 244f0639de03e8b4339745ae30299db15b65b938ba5eef87bf6f34201861482c
4
- data.tar.gz: 28c1bdf776209d4f25346f04346e6be58eba480d7f424a64aa4be745f3e1b19f
3
+ metadata.gz: 71cc1c8c7a227a65593c2b45ff898e5f60f7aacc42a891446c593e0addbe927a
4
+ data.tar.gz: e7e090e33f25dffed018d7a0984ccb909a49586b7928c635c0577a454e9a47c1
5
5
  SHA512:
6
- metadata.gz: e689e81926a08b2bd9bba57e1a4a8d6089d1beeed6cfd1dad262641bcd92e19bb50c20a83ccbce5164a2190ef271785fa2e88fc3b7006de09fa01923571d4a45
7
- data.tar.gz: 5a98b0cd61caf00ec197156b54946a5464661d8de2ebdb1dc7dbba454947bb161b43f7eebabec601abbc098d4ed438e5239fb40475a42d939636ff533132d0f3
6
+ metadata.gz: bf95f82f7316eeab4712703039aa89a5de108452414f8759f21d9e99da6b7622d8ebf0ef92c81123426c663973ac1075eb5b36cdba4fd0e738533d3868504199
7
+ data.tar.gz: 92f5be43288e18e856d9913c359664839672f825e3befbfbfebffc366828e211ce7179da2c3518a97e7e8bc7610744e839bf169b77a2fb5ffc77483fddb4cd16
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_gpg (0.1.0.pre.1)
5
- gpgme (~> 2.0)
4
+ rake_gpg (0.1.0.pre.2)
6
5
  rake_factory (>= 0.23, < 1)
6
+ ruby_gpg2 (= 0.1.0.pre.22)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -25,16 +25,19 @@ GEM
25
25
  faraday (1.0.1)
26
26
  multipart-post (>= 1.2, < 3)
27
27
  gem-release (2.1.1)
28
- gpgme (2.0.20)
29
- mini_portile2 (~> 2.3)
28
+ hamster (3.0.0)
29
+ concurrent-ruby (~> 1.0)
30
30
  i18n (1.8.2)
31
31
  concurrent-ruby (~> 1.0)
32
- mini_portile2 (2.5.0)
32
+ lino (1.3.0)
33
+ hamster (~> 3.0)
34
+ open4 (~> 1.3)
33
35
  minitest (5.14.0)
34
36
  multipart-post (2.1.1)
35
37
  octokit (4.18.0)
36
38
  faraday (>= 0.9)
37
39
  sawyer (~> 0.8.0, >= 0.5.3)
40
+ open4 (1.3.4)
38
41
  public_suffix (4.0.4)
39
42
  rake (13.0.1)
40
43
  rake_circle_ci (0.7.0)
@@ -58,15 +61,17 @@ GEM
58
61
  rspec-core (~> 3.9.0)
59
62
  rspec-expectations (~> 3.9.0)
60
63
  rspec-mocks (~> 3.9.0)
61
- rspec-core (3.9.1)
62
- rspec-support (~> 3.9.1)
64
+ rspec-core (3.9.2)
65
+ rspec-support (~> 3.9.3)
63
66
  rspec-expectations (3.9.1)
64
67
  diff-lcs (>= 1.2.0, < 2.0)
65
68
  rspec-support (~> 3.9.0)
66
69
  rspec-mocks (3.9.1)
67
70
  diff-lcs (>= 1.2.0, < 2.0)
68
71
  rspec-support (~> 3.9.0)
69
- rspec-support (3.9.2)
72
+ rspec-support (3.9.3)
73
+ ruby_gpg2 (0.1.0.pre.22)
74
+ lino (= 1.3.0)
70
75
  sawyer (0.8.2)
71
76
  addressable (>= 2.3.5)
72
77
  faraday (> 0.8, < 2.0)
@@ -1,4 +1,5 @@
1
1
  require 'rake_gpg/version'
2
+ require 'rake_gpg/tasks'
2
3
 
3
4
  module RakeGPG
4
5
 
@@ -0,0 +1,7 @@
1
+ require_relative 'tasks/key'
2
+
3
+ module RakeGPG
4
+ module Tasks
5
+
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ require_relative 'key/generate'
2
+
3
+ module RakeGPG
4
+ module Tasks
5
+ module Key
6
+
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,91 @@
1
+ require 'rake_factory'
2
+ require 'ruby_gpg2'
3
+
4
+ module RakeGPG
5
+ module Tasks
6
+ module Key
7
+ class Generate < RakeFactory::Task
8
+ default_name :generate
9
+ default_description "Generate a GPG key"
10
+
11
+ parameter :name_prefix, default: 'gpg'
12
+ parameter :armor, default: true
13
+
14
+ parameter :work_directory, default: 'build/gpg'
15
+ parameter :home_directory, default: :temporary
16
+ parameter :output_directory
17
+
18
+ parameter :key_type, default: 'RSA'
19
+ parameter :key_length, default: 2048
20
+ parameter :subkey_type, default: 'RSA'
21
+ parameter :subkey_length, default: 2048
22
+
23
+ parameter :owner_name, required: true
24
+ parameter :owner_email, required: true
25
+ parameter :owner_comment
26
+
27
+ parameter :expiry, default: :never
28
+ parameter :passphrase
29
+
30
+ action do |t|
31
+ if t.home_directory == :temporary
32
+ Dir.mktmpdir(
33
+ 'home', t.work_directory) do |home_directory|
34
+ generate_key(t, home_directory)
35
+ end
36
+ else
37
+ generate_key(t, t.home_directory)
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ def generate_key(t, home_directory)
44
+ puts "Generating GPG key for #{t.owner_name} <#{t.owner_email}>..."
45
+
46
+ mkdir_p t.work_directory
47
+ mkdir_p t.output_directory if t.output_directory
48
+ mkdir_p home_directory if home_directory
49
+
50
+ result = RubyGPG2::ParameterFileContents
51
+ .new(t.parameter_values)
52
+ .in_temp_file(t.work_directory) do |f|
53
+ RubyGPG2.generate_key(
54
+ parameter_file_path: f.path,
55
+ home_directory: home_directory,
56
+ work_directory: t.work_directory,
57
+ without_passphrase: t.passphrase.nil?,
58
+ with_status: true)
59
+ end
60
+
61
+ key_fingerprint = result
62
+ .status
63
+ .filter_by_type(:key_created)
64
+ .first_line
65
+ .key_fingerprint
66
+
67
+ puts "Generated GPG key with fingerprint #{key_fingerprint}."
68
+
69
+ if t.output_directory
70
+ puts 'Export requested. ' +
71
+ "Exporting GPG key to #{t.output_directory}..."
72
+ RubyGPG2.export(
73
+ names: [key_fingerprint],
74
+ output_file_path:
75
+ "#{t.output_directory}/#{t.name_prefix}.public",
76
+ armor: t.armor,
77
+ home_directory: home_directory)
78
+ RubyGPG2.export_secret_keys(
79
+ names: [key_fingerprint],
80
+ output_file_path:
81
+ "#{t.output_directory}/#{t.name_prefix}.private",
82
+ armor: t.armor,
83
+ home_directory: home_directory)
84
+ end
85
+
86
+ puts "Done."
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -1,3 +1,3 @@
1
1
  module RakeGPG
2
- VERSION = '0.1.0.pre.1'
2
+ VERSION = '0.1.0.pre.2'
3
3
  end
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = '>= 2.6.0'
26
26
 
27
27
  spec.add_dependency 'rake_factory', '>= 0.23', '< 1'
28
- spec.add_dependency 'gpgme', '~> 2.0'
28
+ spec.add_dependency 'ruby_gpg2', '0.1.0.pre.22'
29
29
 
30
30
  spec.add_development_dependency 'bundler', '~> 2.1'
31
31
  spec.add_development_dependency 'rake', '~> 13.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_gpg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.1
4
+ version: 0.1.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-25 00:00:00.000000000 Z
11
+ date: 2020-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake_factory
@@ -31,19 +31,19 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '1'
33
33
  - !ruby/object:Gem::Dependency
34
- name: gpgme
34
+ name: ruby_gpg2
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: '2.0'
39
+ version: 0.1.0.pre.22
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: '2.0'
46
+ version: 0.1.0.pre.22
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -235,6 +235,9 @@ files:
235
235
  - config/secrets/rubygems/credentials
236
236
  - go
237
237
  - lib/rake_gpg.rb
238
+ - lib/rake_gpg/tasks.rb
239
+ - lib/rake_gpg/tasks/key.rb
240
+ - lib/rake_gpg/tasks/key/generate.rb
238
241
  - lib/rake_gpg/version.rb
239
242
  - rake_gpg.gemspec
240
243
  - scripts/ci/common/configure-git.sh