diff options
Diffstat (limited to 'app/services/mattermost/commands/merge_request_service.rb')
-rw-r--r-- | app/services/mattermost/commands/merge_request_service.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/app/services/mattermost/commands/merge_request_service.rb b/app/services/mattermost/commands/merge_request_service.rb new file mode 100644 index 00000000000..907834ee0c2 --- /dev/null +++ b/app/services/mattermost/commands/merge_request_service.rb @@ -0,0 +1,46 @@ +module Mattermost + module Commands + class MergeRequestService < Mattermost::Commands::BaseService + class << self + def triggered_by?(command) + command == 'mergerequest' + end + + def available?(project) + project.merge_requests_enabled? + end + + def help_message(project) + return nil unless available?(project) + + message = "mergerequest show <merge request id>\n" + message << "mergerequest search <query>" + end + end + + private + + def subcommands + %w[show search] + end + + def collection + project.merge_requests + end + + def readable?(_) + can?(current_user, :read_merge_request, project) + end + + # 'mergerequest show 123' => 'show', ['123'] + # 'mergerequest search my query' => 'search',['my', 'query'] + def parse_command + split = command.split + subcommand = split[1] + args = split[2..-1] + + return subcommand, args + end + end + end +end |