rake_fly 2.1.0 → 2.2.0.pre.5

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: a5f732064d69f725bcf59c6889e28f3e49c96d2763bc0cc9f9403f7229e689e7
4
- data.tar.gz: a0a5e39d6d40c19cab943c11fd9e840cd9cbd356e7ed4500e49b0eb83ca803bb
3
+ metadata.gz: f1553b29769e9089a1c21950076a23e0e5d00baaca2ec765ba4ebe8406ca055a
4
+ data.tar.gz: 25651a41be01bbf6a8d2a4ae116dfd966b41a6d81616122f8f16d89642ffae52
5
5
  SHA512:
6
- metadata.gz: b510f4e938b368bdd84dbf3c56b0274faa7ffa70ff480b5f11b61251e07ae1011c910cd63e54c6306924b8cb784dccfb6428b7e19e9c7ad6390d01372708ba54
7
- data.tar.gz: 30ee0fa5deacc7be21df4bb746831593e9dcf75835e9b2df924bd2863b5d4bb047ca7f1f31fc3e3ca1eb714135c65ba471bf5308573aa959aa44aeda5b1aef62
6
+ metadata.gz: 68ba456621bd07990e2d7d4e72c88f81a4ba0c4b06bbc738c4ff7856e8fda13aa3f9d1e2757ae94719976f2bcfda089bf8a722246f488522108f84f90e727276
7
+ data.tar.gz: 5927edbe22792ef8580f0441e557828ec0c1d2deefd953e2ac1b44a8139ff156d55a52d7728f71e3a9ff57cfae98c36a0165a6d6c30fc80b64a572541392fdf6
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_fly (2.1.0)
4
+ rake_fly (2.2.0.pre.5)
5
+ concourse.rb (>= 0.4)
5
6
  rake_dependencies (~> 2, < 3)
6
7
  rake_factory (>= 0.29, < 1)
7
- ruby_fly (>= 0.19)
8
+ ruby_fly (>= 0.29)
8
9
  semantic (~> 1.6.1)
9
10
 
10
11
  GEM
@@ -19,11 +20,46 @@ GEM
19
20
  addressable (2.7.0)
20
21
  public_suffix (>= 2.0.2, < 5.0)
21
22
  colored2 (3.1.2)
23
+ concourse.rb (0.4.0)
24
+ dry-schema (~> 0.5)
25
+ excon (~> 0.72)
26
+ semantic (~> 1.5)
22
27
  concurrent-ruby (1.1.7)
23
28
  diff-lcs (1.4.4)
24
29
  docile (1.3.4)
30
+ dry-configurable (0.12.0)
31
+ concurrent-ruby (~> 1.0)
32
+ dry-core (~> 0.5, >= 0.5.0)
33
+ dry-container (0.7.2)
34
+ concurrent-ruby (~> 1.0)
35
+ dry-configurable (~> 0.1, >= 0.1.3)
36
+ dry-core (0.5.0)
37
+ concurrent-ruby (~> 1.0)
38
+ dry-equalizer (0.3.0)
39
+ dry-inflector (0.2.0)
40
+ dry-initializer (3.0.4)
41
+ dry-logic (1.1.0)
42
+ concurrent-ruby (~> 1.0)
43
+ dry-core (~> 0.5, >= 0.5)
44
+ dry-schema (0.6.0)
45
+ concurrent-ruby (~> 1.0)
46
+ dry-configurable (~> 0.8, >= 0.8.0)
47
+ dry-core (~> 0.4)
48
+ dry-equalizer (~> 0.2)
49
+ dry-initializer (~> 3.0)
50
+ dry-logic (~> 1.0)
51
+ dry-types (~> 1.0)
52
+ dry-types (1.4.0)
53
+ concurrent-ruby (~> 1.0)
54
+ dry-container (~> 0.3)
55
+ dry-core (~> 0.4, >= 0.4.4)
56
+ dry-equalizer (~> 0.3)
57
+ dry-inflector (~> 0.1, >= 0.1.2)
58
+ dry-logic (~> 1.0, >= 1.0.2)
25
59
  excon (0.78.1)
26
60
  fakefs (0.20.1)
61
+ faker (2.15.1)
62
+ i18n (>= 1.6, < 2)
27
63
  faraday (1.3.0)
28
64
  faraday-net_http (~> 1.0)
29
65
  multipart-post (>= 1.2, < 3)
@@ -32,8 +68,9 @@ GEM
32
68
  gem-release (2.2.0)
33
69
  hamster (3.0.0)
34
70
  concurrent-ruby (~> 1.0)
35
- i18n (1.8.6)
71
+ i18n (1.8.7)
36
72
  concurrent-ruby (~> 1.0)
73
+ jwt (2.2.2)
37
74
  lino (1.7.0)
38
75
  hamster (~> 3.0)
39
76
  open4 (~> 1.3)
@@ -44,6 +81,7 @@ GEM
44
81
  faraday (>= 0.9)
45
82
  sawyer (~> 0.8.0, >= 0.5.3)
46
83
  open4 (1.3.4)
84
+ openssl (2.2.0)
47
85
  public_suffix (4.0.6)
48
86
  rake (13.0.3)
49
87
  rake_circle_ci (0.9.0)
@@ -85,7 +123,7 @@ GEM
85
123
  rspec-support (~> 3.10.0)
86
124
  rspec-support (3.10.1)
87
125
  ruby2_keywords (0.0.2)
88
- ruby_fly (0.23.0)
126
+ ruby_fly (0.29.0)
89
127
  lino (>= 1.5)
90
128
  ruby_gpg2 (0.8.0)
91
129
  lino (>= 1.5)
@@ -94,7 +132,7 @@ GEM
94
132
  addressable (>= 2.3.5)
95
133
  faraday (> 0.8, < 2.0)
96
134
  semantic (1.6.1)
97
- simplecov (0.21.0)
135
+ simplecov (0.21.1)
98
136
  docile (~> 1.1)
99
137
  simplecov-html (~> 0.11)
100
138
  simplecov_json_formatter (~> 0.1)
@@ -113,7 +151,10 @@ DEPENDENCIES
113
151
  activesupport (>= 4)
114
152
  bundler (~> 2.1)
115
153
  fakefs (~> 0.18)
154
+ faker (~> 2.15)
116
155
  gem-release (~> 2.0)
156
+ jwt (~> 2.2)
157
+ openssl (~> 2.2)
117
158
  rake (~> 13.0)
118
159
  rake_circle_ci (~> 0.9)
119
160
  rake_fly!
@@ -19,6 +19,9 @@ module RakeFly
19
19
  parameter :var_files
20
20
  parameter :non_interactive
21
21
 
22
+ parameter :home_directory,
23
+ default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
24
+
22
25
  parameter :get_task_name, :default => :get
23
26
  parameter :set_task_name, :default => :set
24
27
  parameter :unpause_task_name, :default => :unpause
@@ -1,3 +1,5 @@
1
+ require_relative 'tasks/authentication/login'
2
+ require_relative 'tasks/authentication/ensure'
1
3
  require_relative 'tasks/pipeline/get'
2
4
  require_relative 'tasks/pipeline/set'
3
5
  require_relative 'tasks/pipeline/unpause'
@@ -0,0 +1,43 @@
1
+ require 'ruby_fly'
2
+ require 'rake_factory'
3
+ require 'concourse'
4
+
5
+ module RakeFly
6
+ module Tasks
7
+ module Authentication
8
+ class Ensure < RakeFactory::Task
9
+ default_name :ensure
10
+ default_prerequisites RakeFactory::DynamicValue.new { |t|
11
+ [t.ensure_task_name]
12
+ }
13
+ default_description RakeFactory::DynamicValue.new { |t|
14
+ target = t.target || '<derived>'
15
+
16
+ "Ensure logged in for target #{target}"
17
+ }
18
+
19
+ parameter :target, required: true
20
+
21
+ parameter :home_directory,
22
+ default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
23
+
24
+ parameter :ensure_task_name, :default => :'fly:ensure'
25
+
26
+ action do |t, args|
27
+ puts "Ensuring target #{t.target} is logged in..."
28
+ status = RubyFly.status(
29
+ target: t.target,
30
+ environment: {
31
+ "HOME" => t.home_directory
32
+ })
33
+ if status == :logged_in
34
+ puts "Already logged in. Continuing..."
35
+ else
36
+ puts "Not logged in. Logging in..."
37
+ t.application[:login, t.scope].invoke(*args)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,80 @@
1
+ require 'ruby_fly'
2
+ require 'rake_factory'
3
+ require 'concourse'
4
+
5
+ module RakeFly
6
+ module Tasks
7
+ module Authentication
8
+ class Login < RakeFactory::Task
9
+ class FlyBackend
10
+ def resolve_prerequisites(task)
11
+ [task.ensure_task_name]
12
+ end
13
+
14
+ def execute(task)
15
+ RubyFly.login(
16
+ target: task.target,
17
+ concourse_url: task.concourse_url,
18
+ username: task.username,
19
+ password: task.password,
20
+ team: task.team,
21
+ environment: {
22
+ "HOME" => task.home_directory
23
+ })
24
+ end
25
+ end
26
+
27
+ class ApiBackend
28
+ def resolve_prerequisites(_)
29
+ []
30
+ end
31
+
32
+ def execute(task)
33
+ client = Concourse::Client.new(
34
+ url: task.concourse_url)
35
+ token = client.for_skymarshal.create_token(
36
+ username: task.username,
37
+ password: task.password)
38
+
39
+ rc = RubyFly::RC.load(home: task.home_directory)
40
+ rc.add_or_update_target(task.target) do |target|
41
+ target.api = task.concourse_url
42
+ target.team = task.team
43
+ target.bearer_token = token.access_token
44
+ end
45
+ rc.write!
46
+ end
47
+ end
48
+
49
+ default_name :login
50
+ default_prerequisites RakeFactory::DynamicValue.new { |t|
51
+ t.backend.new.resolve_prerequisites(t)
52
+ }
53
+ default_description RakeFactory::DynamicValue.new { |t|
54
+ concourse_url = t.concourse_url || '<derived>'
55
+ target = t.target || '<derived>'
56
+
57
+ "Login to #{concourse_url} as target #{target}"
58
+ }
59
+
60
+ parameter :concourse_url, required: true
61
+ parameter :team, default: 'main'
62
+ parameter :target, required: true
63
+ parameter :username
64
+ parameter :password
65
+
66
+ parameter :backend, default: ApiBackend
67
+
68
+ parameter :home_directory,
69
+ default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
70
+
71
+ parameter :ensure_task_name, :default => :'fly:ensure'
72
+
73
+ action do |t|
74
+ puts "Logging in to #{t.concourse_url} as target #{t.target}..."
75
+ t.backend.new.execute(t)
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -18,14 +18,20 @@ module RakeFly
18
18
 
19
19
  parameter :target, :required => true
20
20
  parameter :pipeline, :required => true
21
-
21
+
22
+ parameter :home_directory,
23
+ default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
24
+
22
25
  parameter :ensure_task_name, :default => :'fly:ensure'
23
26
 
24
27
  action do |t|
25
28
  puts "Getting pipeline #{t.pipeline} for target #{t.target}..."
26
29
  RubyFly.get_pipeline(
27
30
  target: t.target,
28
- pipeline: t.pipeline)
31
+ pipeline: t.pipeline,
32
+ environment: {
33
+ "HOME" => t.home_directory
34
+ })
29
35
  end
30
36
  end
31
37
  end
@@ -25,6 +25,9 @@ module RakeFly
25
25
  parameter :var_files
26
26
  parameter :non_interactive
27
27
 
28
+ parameter :home_directory,
29
+ default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
30
+
28
31
  parameter :ensure_task_name, :default => :'fly:ensure'
29
32
 
30
33
  action do |t|
@@ -36,7 +39,10 @@ module RakeFly
36
39
  config: t.config,
37
40
  vars: t.vars,
38
41
  var_files: t.var_files,
39
- non_interactive: t.non_interactive)
42
+ non_interactive: t.non_interactive,
43
+ environment: {
44
+ "HOME" => t.home_directory
45
+ })
40
46
  end
41
47
  end
42
48
  end
@@ -20,6 +20,9 @@ module RakeFly
20
20
  parameter :team
21
21
  parameter :pipeline, :required => true
22
22
 
23
+ parameter :home_directory,
24
+ default: RakeFactory::DynamicValue.new { |_| ENV['HOME'] }
25
+
23
26
  parameter :ensure_task_name, :default => :'fly:ensure'
24
27
 
25
28
  action do |t|
@@ -27,7 +30,10 @@ module RakeFly
27
30
  RubyFly.unpause_pipeline(
28
31
  target: t.target,
29
32
  team: t.team,
30
- pipeline: t.pipeline)
33
+ pipeline: t.pipeline,
34
+ environment: {
35
+ "HOME" => t.home_directory
36
+ })
31
37
  end
32
38
  end
33
39
  end
@@ -1,3 +1,3 @@
1
1
  module RakeFly
2
- VERSION = '2.1.0'
2
+ VERSION = '2.2.0.pre.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_fly
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0.pre.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-03 00:00:00.000000000 Z
11
+ date: 2021-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake_dependencies
@@ -56,14 +56,28 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: '0.19'
59
+ version: '0.29'
60
60
  type: :runtime
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: '0.19'
66
+ version: '0.29'
67
+ - !ruby/object:Gem::Dependency
68
+ name: concourse.rb
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0.4'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0.4'
67
81
  - !ruby/object:Gem::Dependency
68
82
  name: semantic
69
83
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +232,48 @@ dependencies:
218
232
  - - "~>"
219
233
  - !ruby/object:Gem::Version
220
234
  version: '0.18'
235
+ - !ruby/object:Gem::Dependency
236
+ name: jwt
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: '2.2'
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - "~>"
247
+ - !ruby/object:Gem::Version
248
+ version: '2.2'
249
+ - !ruby/object:Gem::Dependency
250
+ name: openssl
251
+ requirement: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: '2.2'
256
+ type: :development
257
+ prerelease: false
258
+ version_requirements: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: '2.2'
263
+ - !ruby/object:Gem::Dependency
264
+ name: faker
265
+ requirement: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '2.15'
270
+ type: :development
271
+ prerelease: false
272
+ version_requirements: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: '2.15'
221
277
  - !ruby/object:Gem::Dependency
222
278
  name: simplecov
223
279
  requirement: !ruby/object:Gem::Requirement
@@ -253,6 +309,8 @@ files:
253
309
  - lib/rake_fly/task_sets.rb
254
310
  - lib/rake_fly/task_sets/pipeline.rb
255
311
  - lib/rake_fly/tasks.rb
312
+ - lib/rake_fly/tasks/authentication/ensure.rb
313
+ - lib/rake_fly/tasks/authentication/login.rb
256
314
  - lib/rake_fly/tasks/pipeline/get.rb
257
315
  - lib/rake_fly/tasks/pipeline/push.rb
258
316
  - lib/rake_fly/tasks/pipeline/set.rb
@@ -273,9 +331,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
273
331
  version: '2.6'
274
332
  required_rubygems_version: !ruby/object:Gem::Requirement
275
333
  requirements:
276
- - - ">="
334
+ - - ">"
277
335
  - !ruby/object:Gem::Version
278
- version: '0'
336
+ version: 1.3.1
279
337
  requirements: []
280
338
  rubygems_version: 3.0.1
281
339
  signing_key: