diff options
| author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-11-21 19:40:04 +0100 |
|---|---|---|
| committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-11-21 21:36:22 +0100 |
| commit | 41aa605d4ed3d0d302c70ecd01052115f818f949 (patch) | |
| tree | 392a694c913591493ed2de4de5c46acaf5222082 /lib | |
| parent | d375e3f15b6f0340addb9a20e0c03a1f1fca413a (diff) | |
| download | gitlab-ce-41aa605d4ed3d0d302c70ecd01052115f818f949.tar.gz | |
Improve deploy command message
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/gitlab/chat_commands/deploy.rb | 15 | ||||
| -rw-r--r-- | lib/mattermost/presenter.rb | 7 |
2 files changed, 20 insertions, 2 deletions
diff --git a/lib/gitlab/chat_commands/deploy.rb b/lib/gitlab/chat_commands/deploy.rb index c0b93cca68c..0eed1fce0dc 100644 --- a/lib/gitlab/chat_commands/deploy.rb +++ b/lib/gitlab/chat_commands/deploy.rb @@ -1,6 +1,8 @@ module Gitlab module ChatCommands class Deploy < BaseCommand + include Gitlab::Routing.url_helpers + def self.match(text) /\Adeploy\s+(?<from>.*)\s+to+\s+(?<to>.*)\z/.match(text) end @@ -25,7 +27,7 @@ module Gitlab return unless actions.present? if actions.one? - actions.first.play(current_user) + play!(from, to, actions.first) else Result.new(:error, 'Too many actions defined') end @@ -33,12 +35,23 @@ module Gitlab private + def play!(from, to, action) + new_action = action.play(current_user) + + Result.new(:success, "Deployment from #{from} to #{to} started. Follow the progress: #{url(new_action)}.") + end + def find_actions(from, to) environment = project.environments.find_by(name: from) return unless environment environment.actions_for(to).select(&:starts_environment?) end + + def url(subject) + polymorphic_url( + [ subject.project.namespace.becomes(Namespace), subject.project, subject ]) + end end end end diff --git a/lib/mattermost/presenter.rb b/lib/mattermost/presenter.rb index 6b12081575d..67eda983a74 100644 --- a/lib/mattermost/presenter.rb +++ b/lib/mattermost/presenter.rb @@ -49,7 +49,12 @@ module Mattermost private def show_result(result) - ephemeral_response(result.message) + case result.type + when :success + in_channel_response(result.message) + else + ephemeral_response(result.message) + end end def not_found |
