Module: Ocak::FailureReporting

Included in:
Commands::Resume, PipelineRunner
Defined in:
lib/ocak/failure_reporting.rb

Overview

Shared pipeline failure reporting — label transition + comment posting. Included by PipelineRunner and Commands::Resume.

Instance Method Summary collapse

Instance Method Details

#report_pipeline_failure(issue_number, result, issues:, config:, logger: nil) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/ocak/failure_reporting.rb', line 7

def report_pipeline_failure(issue_number, result, issues:, config:, logger: nil)
  issues.transition(issue_number, from: config.label_in_progress, to: config.label_failed)
  sanitized = result[:output][0..1000].to_s.gsub('```', "'''")
  issues.comment(issue_number,
                 "Pipeline failed at phase: #{result[:phase]}\n\n```\n#{sanitized}\n```")
rescue StandardError => e
  logger&.debug("Failure report failed: #{e.message}")
  nil
end