firespring_dev_commands 2.1.28.pre.alpha.1 → 2.5.0.pre.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/firespring_dev_commands/audit/report.rb +2 -9
  3. data/lib/firespring_dev_commands/common.rb +0 -9
  4. data/lib/firespring_dev_commands/docker/status.rb +0 -20
  5. data/lib/firespring_dev_commands/docker.rb +0 -45
  6. data/lib/firespring_dev_commands/eol.rb +2 -12
  7. data/lib/firespring_dev_commands/git.rb +22 -17
  8. data/lib/firespring_dev_commands/jira/issue.rb +1 -3
  9. data/lib/firespring_dev_commands/node.rb +1 -1
  10. data/lib/firespring_dev_commands/php.rb +12 -28
  11. data/lib/firespring_dev_commands/platform.rb +31 -38
  12. data/lib/firespring_dev_commands/ruby.rb +3 -6
  13. data/lib/firespring_dev_commands/target_process/query.rb +4 -30
  14. data/lib/firespring_dev_commands/target_process.rb +1 -3
  15. data/lib/firespring_dev_commands/templates/aws.rb +6 -14
  16. data/lib/firespring_dev_commands/templates/docker/application.rb +2 -2
  17. data/lib/firespring_dev_commands/templates/docker/node/application.rb +5 -28
  18. data/lib/firespring_dev_commands/templates/docker/php/application.rb +16 -31
  19. data/lib/firespring_dev_commands/templates/docker/ruby/application.rb +5 -27
  20. data/lib/firespring_dev_commands/templates/eol.rb +2 -3
  21. data/lib/firespring_dev_commands/templates/git.rb +0 -17
  22. data/lib/firespring_dev_commands/version.rb +1 -1
  23. data/lib/firespring_dev_commands.rb +1 -1
  24. metadata +35 -48
  25. data/lib/firespring_dev_commands/bloom_growth/rock.rb +0 -34
  26. data/lib/firespring_dev_commands/bloom_growth/seat.rb +0 -16
  27. data/lib/firespring_dev_commands/bloom_growth/user.rb +0 -43
  28. data/lib/firespring_dev_commands/bloom_growth.rb +0 -132
  29. data/lib/firespring_dev_commands/certificate.rb +0 -59
  30. data/lib/firespring_dev_commands/coverage/base.rb +0 -16
  31. data/lib/firespring_dev_commands/coverage/cobertura.rb +0 -86
  32. data/lib/firespring_dev_commands/coverage/none.rb +0 -21
  33. data/lib/firespring_dev_commands/docker/desktop.rb +0 -59
  34. data/lib/firespring_dev_commands/jira/parent.rb +0 -19
  35. data/lib/firespring_dev_commands/os.rb +0 -35
  36. data/lib/firespring_dev_commands/port.rb +0 -24
  37. data/lib/firespring_dev_commands/templates/certificate.rb +0 -41
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7cdbf7bd3018268faebfd9301f055ea1ab48c2c98bb6a1327000f6677f45f3da
4
- data.tar.gz: 7b4cf7884dd2bbc167f4ec8434f5e07aaa6c8ee503a5fb3ac9fd13460deec80a
3
+ metadata.gz: e146e8c9d9c3422dfd7641c6a09ca8c2cdfad6ed430d73aec5808de28ed5d880
4
+ data.tar.gz: 273923aae5ccce231fc77174ed89cbe0e4f5ad59b52219b04303f983e9966e1d
5
5
  SHA512:
6
- metadata.gz: 30e7bc37e599f73d3f01287600466ce84fdf8ec2bc5da20f99b50c6cea26c3d4ee6b8c156749ea89739b2ee96cee44ade8c53f079076bb3d455d31750e38e6ac
7
- data.tar.gz: 6c619223341b4379007a3c4826d9b2c6684a67c740847a528520931534b31d1296e871665b939c0ae99481fec6eff2e554afc7049901a832da6524fc3e8ece42
6
+ metadata.gz: 67223e6ba12a10f798d7fee6b1cab844da41cd3dc65a449330e8c8bd0ef86180cc297889b7365b7b68f5ca8054919e9881693707ecfde02e539d0a7e22c6af51
7
+ data.tar.gz: ada0e13a3f2d8022687a2542503bad6bc847bf32fc17604116d17e06ed46ee7efa18aea35635c31a26c07f5ccdd6a3c5083235edaafd77684528bc487c17f3c7
@@ -3,12 +3,11 @@ module Dev
3
3
  class Audit
4
4
  # The class containing standardized information about an audit report
5
5
  class Report
6
- attr_accessor :items, :min_severity, :error_on_unknown, :ignorelist, :filtered_items
6
+ attr_accessor :items, :min_severity, :ignorelist, :filtered_items
7
7
 
8
8
  def initialize(
9
9
  items,
10
10
  min_severity: ENV.fetch('MIN_SEVERITY', nil),
11
- error_on_unknown: ENV.fetch('ERROR_ON_UNKNOWN', nil),
12
11
  ignorelist: ENV['IGNORELIST'].to_s.split(/\s*,\s*/)
13
12
  )
14
13
  # Items should be an array of Item objects
@@ -16,18 +15,12 @@ module Dev
16
15
  raise 'items must all be report items' unless @items.all?(Dev::Audit::Report::Item)
17
16
 
18
17
  @min_severity = min_severity || Level::HIGH
19
- @error_on_unknown = error_on_unknown
20
18
  @ignorelist = Array(ignorelist).compact
21
19
  end
22
20
 
23
21
  # Get all severities greater than or equal to the minimum severity
24
22
  def desired_severities
25
- max_severity = if error_on_unknown.to_s.strip == 'true'
26
- -1
27
- else
28
- -2
29
- end
30
- LEVELS.slice(LEVELS.find_index(min_severity)..max_severity)
23
+ LEVELS.slice(LEVELS.find_index(min_severity)..-1)
31
24
  end
32
25
 
33
26
  # Run the filters against the report items and filter out any which should be excluded
@@ -187,14 +187,5 @@ module Dev
187
187
  return false
188
188
  end
189
189
  end
190
-
191
- # Center the string and pad on either side with the given padding character
192
- def center_pad(string = '', pad: '-', len: 80)
193
- string = " #{string} " unless string.strip.empty?
194
- center_dash = len / 2
195
- string = string.to_s
196
- center_str = string.length / 2
197
- string.rjust(center_dash + center_str - 1, pad).ljust(len - 1, pad)
198
- end
199
190
  end
200
191
  end
@@ -33,26 +33,6 @@ module Dev
33
33
  EXITED,
34
34
  DEAD
35
35
  ].freeze
36
-
37
- # TODO: Can we use 'curses' here and overwrite the correct line?
38
- def response_callback(response)
39
- response.split("\n").each do |line|
40
- data = JSON.parse(line)
41
- if data.include?('status')
42
- if data['id']
43
- LOG.info "#{data['id']}: #{data['status']}"
44
- else
45
- LOG.info (data['status']).to_s
46
- end
47
- elsif data.include?('errorDetail')
48
- raise data['errorDetail']['message']
49
- elsif data.include?('aux')
50
- next
51
- else
52
- raise "Unrecognized message from docker: #{data}"
53
- end
54
- end
55
- end
56
36
  end
57
37
  end
58
38
  end
@@ -117,44 +117,6 @@ module Dev
117
117
  format('%.1f %s', size.to_f / (1024**exp), units[exp])
118
118
  end
119
119
 
120
- # Push the local version of the docker image to the defined remote repository
121
- def push_image(image, name, tag = nil)
122
- unless tag
123
- if name.include?(':')
124
- name, tag = name.split(':')
125
- else
126
- tag = 'latest'
127
- end
128
- end
129
-
130
- puts "Pushing to #{name}:#{tag}"
131
- image.push(::Docker.creds, repo_tag: "#{name}:#{tag}") { |response| Dev::Docker::Status.new.response_callback(response) }
132
- end
133
-
134
- # Push the remote version of the docker image from the defined remote repository
135
- def pull_image(name, tag = nil)
136
- unless tag
137
- if name.include?(':')
138
- name, tag = name.split(':')
139
- else
140
- tag = 'latest'
141
- end
142
- end
143
-
144
- puts "\nPulling #{name}:#{tag}"
145
- opts = {
146
- fromImage: "#{name}:#{tag}",
147
- platform: Dev::Platform.new.architecture
148
- }
149
- ::Docker::Image.create(**opts) { |response| Dev::Docker::Status.new.response_callback(response) }
150
- end
151
-
152
- # Remove the local version of the given docker image
153
- def untag_image(image, name, tag)
154
- puts "Untagging #{name}:#{tag}"
155
- image.remove(name: "#{name}:#{tag}")
156
- end
157
-
158
120
  # Remove docker images with the "force" option set to true
159
121
  # This will remove the images even if they are currently in use and cause unintended side effects.
160
122
  def force_remove_images(name_and_tag)
@@ -176,14 +138,8 @@ module Dev
176
138
  Docker::Compose.new.mapped_public_port(name, private_port)
177
139
  end
178
140
 
179
- # Gets the default working dir of the container
180
- def working_dir(container)
181
- container.json['Config']['WorkingDir']
182
- end
183
-
184
141
  # Copies the source path on your local machine to the destination path on the container
185
142
  def copy_to_container(container, source_path, dest_path)
186
- dest_path = File.join(working_dir(container), dest_path) unless dest_path.start_with?(File::SEPARATOR)
187
143
  LOG.info "Copying #{source_path} to #{dest_path}... "
188
144
 
189
145
  container.archive_in(source_path, dest_path, overwrite: true)
@@ -198,7 +154,6 @@ module Dev
198
154
  # Copies the source path on the container to the destination path on your local machine
199
155
  # If required is set to true, the command will fail if the source path does not exist on the container
200
156
  def copy_from_container(container, source_path, dest_path, required: true)
201
- source_path = File.join(working_dir(container), source_path) unless source_path.start_with?(File::SEPARATOR)
202
157
  LOG.info "Copying #{source_path} to #{dest_path}... "
203
158
 
204
159
  tar = StringIO.new
@@ -46,23 +46,13 @@ module Dev
46
46
  @products
47
47
  end
48
48
 
49
- # Prints all of the product version statuses
50
- def status
51
- product_versions.sort_by(&:name).each(&:print_status)
52
- end
53
-
54
- # Returns true if any of the products are EOL
55
- def eol?
56
- product_versions.any?(&:eol)
57
- end
58
-
59
49
  # Prints all of the product version statuses
60
50
  # Raises an error if any products are EOL
61
51
  def check
62
52
  puts
63
- status
53
+ product_versions.sort_by(&:name).each(&:print_status)
64
54
  puts
65
- raise 'found EOL versions' if eol?
55
+ raise 'found EOL versions' if product_versions.any?(&:eol)
66
56
  end
67
57
  end
68
58
  end
@@ -113,10 +113,10 @@ module Dev
113
113
  next unless File.exist?(project_dir)
114
114
 
115
115
  repo_basename = File.basename(File.realpath(project_dir))
116
- header = "#{repo_basename} (#{original_branches[project_dir]})"
117
- puts Dev::Common.new.center_pad(header).light_green
116
+ header = " #{repo_basename} (#{original_branches[project_dir]}) "
117
+ puts center_pad(header).light_green
118
118
  @success &= status(dir: project_dir)
119
- puts Dev::Common.new.center_pad.light_green
119
+ puts center_pad.light_green
120
120
  end
121
121
  puts
122
122
 
@@ -165,10 +165,10 @@ module Dev
165
165
  next unless File.exist?(project_dir)
166
166
 
167
167
  repo_basename = File.basename(File.realpath(project_dir))
168
- header = "#{repo_basename} (#{original_branches[project_dir]})"
169
- puts Dev::Common.new.center_pad(header).light_green
168
+ header = " #{repo_basename} (#{original_branches[project_dir]}) "
169
+ puts center_pad(header).light_green
170
170
  reset(dir: project_dir)
171
- puts Dev::Common.new.center_pad.light_green
171
+ puts center_pad.light_green
172
172
  end
173
173
  puts
174
174
  end
@@ -191,9 +191,10 @@ module Dev
191
191
  next unless File.exist?(project_dir)
192
192
 
193
193
  repo_basename = File.basename(File.realpath(project_dir))
194
- puts Dev::Common.new.center_pad(repo_basename).light_green
194
+ header = " #{repo_basename} "
195
+ puts center_pad(header).light_green
195
196
  @success &= checkout(branch, dir: project_dir)
196
- puts Dev::Common.new.center_pad.light_green
197
+ puts center_pad.light_green
197
198
  end
198
199
  puts
199
200
 
@@ -284,9 +285,10 @@ module Dev
284
285
  next unless File.exist?(project_dir)
285
286
 
286
287
  repo_basename = File.basename(File.realpath(project_dir))
287
- puts Dev::Common.new.center_pad(repo_basename).light_green
288
+ header = " #{repo_basename} "
289
+ puts center_pad(header).light_green
288
290
  @success &= merge(branch, dir: project_dir)
289
- puts Dev::Common.new.center_pad.light_green
291
+ puts center_pad.light_green
290
292
  end
291
293
  puts
292
294
 
@@ -332,9 +334,10 @@ module Dev
332
334
  next unless File.exist?(project_dir)
333
335
 
334
336
  repo_basename = File.basename(File.realpath(project_dir))
335
- puts Dev::Common.new.center_pad(repo_basename).light_green
337
+ header = " #{repo_basename} "
338
+ puts center_pad(header).light_green
336
339
  @success &= pull(dir: project_dir)
337
- puts Dev::Common.new.center_pad.light_green
340
+ puts center_pad.light_green
338
341
  end
339
342
  puts
340
343
 
@@ -370,9 +373,10 @@ module Dev
370
373
  next unless File.exist?(project_dir)
371
374
 
372
375
  repo_basename = File.basename(File.realpath(project_dir))
373
- puts Dev::Common.new.center_pad(repo_basename).light_green
376
+ header = " #{repo_basename} "
377
+ puts center_pad(header).light_green
374
378
  @success &= push(dir: project_dir)
375
- puts Dev::Common.new.center_pad.light_green
379
+ puts center_pad.light_green
376
380
  end
377
381
  puts
378
382
 
@@ -435,10 +439,11 @@ module Dev
435
439
  end
436
440
 
437
441
  # Center the string and pad on either side with the given padding character
438
- # @deprecated Please use {Dev::Common#center_pad} instead
439
442
  def center_pad(string = '', pad: '-', len: 80)
440
- warn '[DEPRECATION] `Dev::Git#center_pad` is deprecated. Please use `Dev::Common#center_pad` instead.'
441
- Dev::Common.new.center_pad(string, pad:, len:)
443
+ center_dash = len / 2
444
+ string = string.to_s
445
+ center_str = string.length / 2
446
+ string.rjust(center_dash + center_str - 1, pad).ljust(len - 1, pad)
442
447
  end
443
448
 
444
449
  # Exclude the command from the message and print all error lines
@@ -5,13 +5,11 @@ module Dev
5
5
  # Issue subtypes which do not map to a story type
6
6
  NON_STORY_TYPES = ['epic', 'review', 'sub-task', 'code review sub-task', 'pre-deploy sub-task', 'deploy sub-task', 'devops sub-task'].freeze
7
7
 
8
- attr_accessor :data, :project, :parent, :id, :title, :points, :assignee, :resolved_date, :histories,
9
- :last_in_progress_history, :first_in_review_history, :last_closed_history
8
+ attr_accessor :data, :project, :id, :title, :points, :assignee, :resolved_date, :histories, :last_in_progress_history, :first_in_review_history, :last_closed_history
10
9
 
11
10
  def initialize(data)
12
11
  @data = data
13
12
  @project = Jira::Project.new(data)
14
- @parent = Jira::Parent.new(data) if data.respond_to?(:parent)
15
13
  @id = data.key
16
14
  @title = data.summary
17
15
  @points = calculate_points(data)
@@ -96,7 +96,7 @@ module Dev
96
96
  test
97
97
  end
98
98
 
99
- # Build the node test command
99
+ # Build the node test (with coverage) command
100
100
  def test_coverage_command
101
101
  test = base_command
102
102
  test << 'run' << 'test:coverage'
@@ -8,12 +8,11 @@ module Dev
8
8
  DEFAULT_PACKAGE_FILE = 'composer.json'.freeze
9
9
 
10
10
  # Config object for setting top level git config options
11
- Config = Struct.new(:container_path, :local_path, :package_file, :coverage) do
11
+ Config = Struct.new(:container_path, :local_path, :package_file) do
12
12
  def initialize
13
13
  self.container_path = DEFAULT_PATH
14
14
  self.local_path = DEV_COMMANDS_ROOT_DIR
15
15
  self.package_file = DEFAULT_PACKAGE_FILE
16
- self.coverage = nil
17
16
  end
18
17
  end
19
18
 
@@ -31,14 +30,12 @@ module Dev
31
30
  alias_method :configure, :config
32
31
  end
33
32
 
34
- attr_accessor :container_path, :local_path, :package_file, :coverage
33
+ attr_accessor :container_path, :local_path, :package_file
35
34
 
36
- def initialize(container_path: nil, local_path: nil, package_file: nil, coverage: nil)
35
+ def initialize(container_path: nil, local_path: nil, package_file: nil)
37
36
  @container_path = container_path || self.class.config.container_path
38
37
  @local_path = local_path || self.class.config.local_path
39
38
  @package_file = package_file || self.class.config.package_file
40
- @coverage = coverage || Dev::Coverage::None.new
41
- raise 'coverage must be an instance of the base class' unless @coverage.is_a?(Dev::Coverage::Base)
42
39
  end
43
40
 
44
41
  # The base npm command that is the starting point for all subsequent commands
@@ -61,12 +58,9 @@ module Dev
61
58
  end
62
59
 
63
60
  # Build the command to fix any security vulnerabilities that were found
64
- # def audit_fix_command
65
- # audit_fix = base_command
66
- # audit_fix << 'audit' << 'fix'
67
- # audit_fix.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
68
- # audit_fix
69
- # end
61
+ def audit_fix_command
62
+ raise 'not implemented'
63
+ end
70
64
 
71
65
  # Build the php install command
72
66
  def install_command
@@ -79,7 +73,7 @@ module Dev
79
73
  # Build the php lint command
80
74
  def lint_command
81
75
  lint = base_command
82
- lint << 'lint'
76
+ lint << 'run' << 'lint'
83
77
  lint.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
84
78
  lint
85
79
  end
@@ -87,7 +81,7 @@ module Dev
87
81
  # Build the php lint fix command
88
82
  def lint_fix_command
89
83
  lint_fix = base_command
90
- lint_fix << 'lint-fix'
84
+ lint_fix << 'run' << 'lint-fix'
91
85
  lint_fix.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
92
86
  lint_fix
93
87
  end
@@ -95,24 +89,14 @@ module Dev
95
89
  # Build the php test command
96
90
  def test_command
97
91
  test = []
98
- test << './vendor/bin/phpunit'
99
- test.concat(coverage.php_options) if coverage
92
+ lint_fix << 'run' << 'test'
100
93
  test.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
101
94
  test
102
95
  end
103
96
 
104
- # Run the check to ensure code coverage meets the desired threshold
105
- def check_test_coverage(application:)
106
- coverage.check(application:)
107
- end
108
-
109
- # Build the php fast test command
110
- def test_fast_command(processes = 4)
111
- test = []
112
- test << './vendor/bin/paratest'
113
- test.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
114
- test << "-p#{processes}" << '--runner=WrapperRunner'
115
- test
97
+ # Build the php test (with coverage) command
98
+ def test_coverage_command
99
+ raise 'not implemented'
116
100
  end
117
101
  end
118
102
  end
@@ -1,46 +1,39 @@
1
1
  module Dev
2
- # Class which returns information about the current platform
3
- class Platform
4
- # Constant containing all supported architectures
5
- ALLOWED_ARCHITECTURES = %w(linux/arm64 linux/amd64).freeze
6
-
7
- # If an architecture was specified in the ENV, use that. Otherwise auto-deted based of the OS reported architecture
8
- def architecture
9
- arch = env_architecture || os_architecture
10
- raise "Invalid DOCKER_ARCHITECTURE: #{arch} (allowed are #{ALLOWED_ARCHITECTURES.join(', ')})" unless ALLOWED_ARCHITECTURES.include?(arch)
11
-
12
- arch
13
- end
14
-
15
- # Check to see if a docker architecture has been specified in the ENV
16
- # If it has, verify the format and the value
17
- private def env_architecture
18
- arch = ENV['DOCKER_ARCHITECTURE'].to_s.strip.downcase
19
- return nil if arch.empty?
2
+ class Common
3
+ # Class which returns information about the current platform
4
+ class Platform
5
+ # Constant containing all supported architectures
6
+ ALLOWED_ARCHITECTURES = %w(arm64 amd64).freeze
20
7
 
21
- "linux/#{arch}" unless arch.start_with?('linux/')
22
- arch
23
- end
8
+ # Normalize the ruby platform to return a docker platform architecture format
9
+ def determine_compute_architecture
10
+ case RUBY_PLATFORM
11
+ when /x86_64|amd64/
12
+ 'linux/amd64' # 64-bit Intel/AMD architecture
13
+ when /arm|aarch64/
14
+ 'linux/arm64' # ARM architecture
15
+ else
16
+ raise 'Unknown or unsupported architecture'
17
+ end
18
+ end
24
19
 
25
- # Returns a valid docker architecture based off the RUBY_PLATFORM
26
- private def os_architecture
27
- return 'linux/amd64' if RUBY_PLATFORM.match?(/x86_64|amd64|x64-mingw/)
28
- return 'linux/arm64' if RUBY_PLATFORM.match?(/arm|aarch64/)
20
+ # Determine the platform architecture
21
+ # If one was specified in the DOCKER_ARCHITECTURE variable, use it
22
+ # Otherwise, use the RUBY_PLATFORM built-in to auto-detect and architecture
23
+ def architecture
24
+ docker_architecture = ENV['DOCKER_ARCHITECTURE'].to_s.strip.downcase
25
+ if docker_architecture.empty?
26
+ determine_compute_architecture
27
+ else
28
+ raise "Missing 'linux/' prefix in DOCKER_ARCHITECTURE: #{docker_architecture}" unless docker_architecture.start_with?('linux/')
29
29
 
30
- raise 'Unknown or unsupported architecture'
31
- end
32
- end
33
- end
30
+ architecture_name = docker_architecture.split('/')[1]
31
+ unless ALLOWED_ARCHITECTURES.include?(architecture_name)
32
+ raise "Invalid DOCKER_ARCHITECTURE: #{architecture_name}. Allowed architectures are #{ALLOWED_ARCHITECTURES.join(', ')}"
33
+ end
34
34
 
35
- module Dev
36
- class Common
37
- # Class which returns information about the current platform
38
- class Platform < Platform
39
- # Initializer for the deprecated class
40
- # @deprecated Please use {Dev::Platform#new} instead
41
- def initialize
42
- warn '[DEPRECATION] `Dev::Common::Platform#new` is deprecated. Please use `Dev::Platform#new` instead.'
43
- super
35
+ docker_architecture
36
+ end
44
37
  end
45
38
  end
46
39
  end
@@ -90,16 +90,14 @@ module Dev
90
90
 
91
91
  # Build the bundle lint command
92
92
  def lint_command
93
- lint = base_command
94
- lint << 'exec' << 'rubocop'
93
+ lint = ['rubocop']
95
94
  lint.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
96
95
  lint
97
96
  end
98
97
 
99
98
  # Build the bundle lint fix command
100
99
  def lint_fix_command
101
- lint_fix = base_command
102
- lint_fix << 'exec' << 'rubocop'
100
+ lint_fix = ['rubocop']
103
101
  lint_fix << '-A'
104
102
  lint_fix.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
105
103
  lint_fix
@@ -107,8 +105,7 @@ module Dev
107
105
 
108
106
  # Build the bundle test command
109
107
  def test_command
110
- test = base_command
111
- test << 'exec' << 'rspec'
108
+ test = ['rspec']
112
109
  test.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
113
110
  test
114
111
  end
@@ -2,13 +2,12 @@ module Dev
2
2
  class TargetProcess
3
3
  # Class for writing target process query statements
4
4
  class Query
5
- attr_accessor :where, :incl, :take, :empty
5
+ attr_accessor :where, :incl, :take
6
6
 
7
7
  def initialize
8
8
  @where = []
9
9
  @incl = []
10
10
  @take = 250
11
- @empty = false
12
11
  end
13
12
 
14
13
  # Add a new query clause
@@ -34,11 +33,6 @@ module Dev
34
33
  end
35
34
  end
36
35
 
37
- # Check if any of the "in" statements were empty. If so then we don't want to actually run the query
38
- def empty?
39
- @empty == true
40
- end
41
-
42
36
  # Generate the string representation for this query
43
37
  def generate
44
38
  {}.tap do |clause|
@@ -56,38 +50,22 @@ module Dev
56
50
  # TODO: Do these need moved to their associated entities?
57
51
  # Add a filter that looks for stories whose id is contained in the list of ids given
58
52
  def filter_by_user_story_ids(user_story_ids)
59
- if user_story_ids.nil? || user_story_ids.empty?
60
- @empty = true
61
- return
62
- end
63
53
  self << "(Id in ('#{user_story_ids.join("', '")}'))"
64
54
  end
65
55
 
66
56
  # Add a filter that looks for stories whose team id is contained in the list of ids given
67
57
  def filter_by_team_ids(team_ids)
68
- if team_ids.nil? || team_ids.empty?
69
- @empty = true
70
- return
71
- end
72
- self << "(Team.Id in ('#{team_ids.join("', '")}'))"
58
+ self << "(Team.Id in ('#{team_ids.join("', '")}'))" unless team_ids.nil? || team_ids.empty?
73
59
  end
74
60
 
75
61
  # Add a filter that looks for stories whose project id is contained in the list of ids given
76
62
  def filter_by_project(projects)
77
- if projects.nil? || projects.empty?
78
- @empty = true
79
- return
80
- end
81
63
  self << "(Project.Name in ('#{projects.join("', '")}'))"
82
64
  end
83
65
 
84
66
  # Add a filter that looks for stories whose state is contained in the list of states given
85
67
  def filter_by_states(states)
86
- if states.nil? || states.empty?
87
- @empty = true
88
- return
89
- end
90
- self << "(EntityState.Name in ('#{states.join("', '")}'))"
68
+ self << "(EntityState.Name in ('#{states.join("', '")}'))" unless states.nil? || states.empty?
91
69
  end
92
70
 
93
71
  # Add a filter that looks for stories whose state is set to final
@@ -136,11 +114,7 @@ module Dev
136
114
 
137
115
  # Add a filter that looks for assignable ids which are included in the given array
138
116
  def filter_by_entity_ids(entity_ids)
139
- if entity_ids.nil? || entity_ids.empty?
140
- @empty = true
141
- return
142
- end
143
- self << "(Assignable.Id in ('#{entity_ids.join("', '")}'))"
117
+ self << "(Assignable.Id in ('#{entity_ids.join("', '")}'))" unless entity_ids.nil? || entity_ids.empty?
144
118
  end
145
119
 
146
120
  # Add a filter that looks for a custom deploy date between the given dates`
@@ -15,7 +15,7 @@ module Dev
15
15
  # The text of the url variable key
16
16
  TP_URL = 'TP_URL'.freeze
17
17
 
18
- # Config object for setting top level target process config options
18
+ # Config object for setting top level jira config options
19
19
  Config = Struct.new(:username, :password, :url, :http_debug) do
20
20
  def initialize
21
21
  Dotenv.load(CONFIG_FILE) if File.exist?(CONFIG_FILE)
@@ -117,8 +117,6 @@ module Dev
117
117
  # Call the given block (if present) with each piece of data
118
118
  # Return all pieces of data
119
119
  def get(path, query, &)
120
- return [] if query.empty?
121
-
122
120
  query_string = query.generate
123
121
  url = "/api/v1/#{path}"
124
122
  url << "?#{URI.encode_www_form(query_string)}" unless query_string.empty?
@@ -101,22 +101,14 @@ module Dev
101
101
 
102
102
  DEV_COMMANDS_TOP_LEVEL.instance_eval do
103
103
  return if exclude.include?(:eol)
104
- return if ENV.fetch('CHECK_AWS', nil).to_s.strip == 'false'
105
104
 
106
- task eol: [:'eol:aws'] do
107
- # This is just a placeholder to execute the dependencies
108
- end
105
+ desc 'Compares the current date to the EOL date for supported resources'
106
+ task eol: %w(init ensure_aws_credentials) do
107
+ account_id = Dev::Aws::Profile.new.current
108
+ account_name = Dev::Aws::Account.new.name_by_account(account_id)
109
+ LOG.info " Current AWS Account is #{account_name} (#{account_id})".light_yellow
109
110
 
110
- namespace :eol do
111
- desc 'Compares the current date to the EOL date for supported aws resources'
112
- task aws: %w(init ensure_aws_credentials) do
113
- account_id = Dev::Aws::Profile.new.current
114
- account_name = Dev::Aws::Account.new.name_by_account(account_id)
115
- LOG.info " Current AWS Account is #{account_name} (#{account_id})".light_yellow
116
- puts
117
- Dev::EndOfLife.new(product_versions: Dev::EndOfLife::Aws.new.default_products).status
118
- puts
119
- end
111
+ Dev::EndOfLife.new(product_versions: Dev::EndOfLife::Aws.new.default_products).check
120
112
  end
121
113
  end
122
114
  end
@@ -72,7 +72,7 @@ module Dev
72
72
  return if exclude.include?(:sh)
73
73
 
74
74
  desc "Open a shell into a running #{application} container"
75
- task sh: %W(init_docker #{application}:up_no_deps _pre_sh_hooks) do
75
+ task sh: %W(init_docker #{application}:up _pre_sh_hooks) do
76
76
  Dev::Docker::Compose.new(services: [application]).sh
77
77
  Rake::Task[:_post_sh_hooks].execute
78
78
  end
@@ -154,7 +154,7 @@ module Dev
154
154
  return if exclude.include?(:reload)
155
155
 
156
156
  desc "Reloads the #{application} container"
157
- task reload: %w(init_docker _pre_reload_hooks down up_no_deps) do
157
+ task reload: %w(init_docker _pre_reload_hooks down up) do
158
158
  Rake::Task[:_post_reload_hooks].execute
159
159
  end
160
160
  end