Module: Legion::Extensions::Developer::Runners::Ship

Extended by:
Ship
Included in:
Ship
Defined in:
lib/legion/extensions/developer/runners/ship.rb

Constant Summary collapse

RESUME_ROUTING_KEY =
'lex.developer.runners.ship.finalize'
RESUME_EXCHANGE =
'lex.developer'

Instance Method Summary collapse

Instance Method Details

#finalize(results: nil, work_item: nil, args: nil) ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/legion/extensions/developer/runners/ship.rb', line 15

def finalize(results: nil, work_item: nil, args: nil, **)
  results = Legion::JSON.load(results) if results.is_a?(String) # rubocop:disable Legion/HelperMigration/DirectJson
  work_item ||= results&.dig(:work_item) || args&.dig(:work_item)
  raise ArgumentError, "work_item is nil in #{__method__}" if work_item.nil?

  started_at = Time.now.utc.iso8601

  gate = consent_gate(work_item)
  return gate if gate

  finalize_pr_actions(work_item)
  cleanup_caches(work_item)
  write_audit(work_item)

  work_item = stamp_shipped(work_item, started_at)
  { success: true, work_item: work_item }
end