Welcome to mirror list, hosted at ThFree Co, Russian Federation.

run.rb « presenters « slash_commands « gitlab « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c4bbc2314644fdebe8e2e6ab0bf3ba4ac5407d84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# frozen_string_literal: true

module Gitlab
  module SlashCommands
    module Presenters
      class Run < Presenters::Base
        # rubocop: disable CodeReuse/ActiveRecord
        def present(pipeline)
          build = pipeline.builds.take

          if build && (responder = Chat::Responder.responder_for(build))
            in_channel_response(responder.scheduled_output)
          else
            unsupported_chat_service
          end
        end
        # rubocop: enable CodeReuse/ActiveRecord

        def unsupported_chat_service
          ephemeral_response(text: 'Sorry, this chat service is currently not supported by GitLab ChatOps.')
        end

        def failed_to_schedule(command)
          ephemeral_response(
            text: 'The command could not be scheduled. Make sure that your ' \
              'project has a .gitlab-ci.yml that defines a job with the ' \
              "name #{command.inspect}"
          )
        end
      end
    end
  end
end