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



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

def report_pipeline_failure(issue_number, result, issues:, config:, logger: nil)
  IssueStateMachine.new(config: config, issues: issues).mark_failed(issue_number)
  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