Module: Jackal::Nellie::Formatter::MessageExtract

Included in:
GithubCommitComment, GithubCommitStatus, SlackComment
Defined in:
lib/jackal-nellie/formatter.rb

Instance Method Summary collapse

Instance Method Details

#failure_message(payload) ⇒ String

Message for failure results

Parameters:

  • payload (Smash)

Returns:

  • (String)


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/jackal-nellie/formatter.rb', line 23

def failure_message(payload)
  msg = ["[#{app_config.fetch(:branding, :name, 'Nellie')}]: Failure encountered:"]
  msg << ''
  failed_history = payload.fetch(:data, :nellie, :history, {}).detect do |i|
    i[:exit_code] != 0
  end
  if(failed_history)
    stdout = asset_store.get(failed_history.get(:logs, :stdout))
    stdout_pos = stdout.size - 1024
    stdout.seek(stdout_pos < 0 ? 0 : stdout_pos)
    stderr = asset_store.get(failed_history.get(:logs, :stderr))
    stderr_pos = stderr.size - 1034
    stderr.seek(stderr_pos < 0 ? 0 : stderr_pos)
    msg << '* STDOUT:' << '' << '```'
    msg << stdout.read
    msg << '```' << ''
    msg << '* STDERR:' << '' << '```'
    msg << stderr.read
    msg << '```'
  else
    msg << '```' << 'Failed to locate logs' << '```'
  end
  msg.join("\n")
end

#success_message(payload) ⇒ String

Message for successful results

Parameters:

  • payload (Smash)

Returns:

  • (String)


10
11
12
13
14
15
16
17
# File 'lib/jackal-nellie/formatter.rb', line 10

def success_message(payload)
  repo = [
    payload.get(:data, :code_fetcher, :info, :owner),
    payload.get(:data, :code_fetcher, :info, :name)
  ].join('/')
  sha = payload.get(:data, :code_fetcher, :info, :commit_sha)
  "[#{app_config.fetch(:branding, :name, 'Nellie')}]: Job completed successfully! (#{repo}@#{sha})"
end