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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-29 18:06:43 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-29 18:06:43 +0300
commiteac0da9a47f0c7b8b970833d7d5b96cfee057bf7 (patch)
tree7b7865053435c6dcb4e2d945fcf45e309331c91b /lib/gitlab/slash_commands
parentb860c6ba2607541e3b5bdf0fc2daaa9ed41a8726 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/slash_commands')
-rw-r--r--lib/gitlab/slash_commands/presenters/access.rb4
-rw-r--r--lib/gitlab/slash_commands/presenters/base.rb47
-rw-r--r--lib/gitlab/slash_commands/presenters/issue_base.rb10
-rw-r--r--lib/gitlab/slash_commands/presenters/issue_close.rb32
-rw-r--r--lib/gitlab/slash_commands/presenters/issue_comment.rb24
-rw-r--r--lib/gitlab/slash_commands/presenters/issue_move.rb29
-rw-r--r--lib/gitlab/slash_commands/presenters/issue_new.rb31
-rw-r--r--lib/gitlab/slash_commands/presenters/issue_search.rb10
-rw-r--r--lib/gitlab/slash_commands/presenters/issue_show.rb41
-rw-r--r--lib/gitlab/slash_commands/presenters/note_base.rb10
10 files changed, 90 insertions, 148 deletions
diff --git a/lib/gitlab/slash_commands/presenters/access.rb b/lib/gitlab/slash_commands/presenters/access.rb
index fbc3cf2e049..c9c5c6da3bf 100644
--- a/lib/gitlab/slash_commands/presenters/access.rb
+++ b/lib/gitlab/slash_commands/presenters/access.rb
@@ -34,8 +34,8 @@ module Gitlab
def authorize
message =
- if @resource
- ":wave: Hi there! Before I do anything for you, please [connect your GitLab account](#{@resource})."
+ if resource
+ ":wave: Hi there! Before I do anything for you, please [connect your GitLab account](#{resource})."
else
":sweat_smile: Couldn't identify you, nor can I authorize you!"
end
diff --git a/lib/gitlab/slash_commands/presenters/base.rb b/lib/gitlab/slash_commands/presenters/base.rb
index 73814aa180f..54d74ed3998 100644
--- a/lib/gitlab/slash_commands/presenters/base.rb
+++ b/lib/gitlab/slash_commands/presenters/base.rb
@@ -18,6 +18,8 @@ module Gitlab
private
+ attr_reader :resource
+
def header_with_list(header, items)
message = [header]
@@ -67,12 +69,51 @@ module Gitlab
def resource_url
url_for(
[
- @resource.project.namespace.becomes(Namespace),
- @resource.project,
- @resource
+ resource.project.namespace.becomes(Namespace),
+ resource.project,
+ resource
]
)
end
+
+ def project_link
+ "[#{project.full_name}](#{project.web_url})"
+ end
+
+ def author_profile_link
+ "[#{author.to_reference}](#{url_for(author)})"
+ end
+
+ def response_message(custom_pretext: pretext)
+ {
+ attachments: [
+ {
+ title: "#{issue.title} · #{issue.to_reference}",
+ title_link: resource_url,
+ author_name: author.name,
+ author_icon: author.avatar_url,
+ fallback: fallback_message,
+ pretext: custom_pretext,
+ text: text,
+ color: color(resource),
+ fields: fields,
+ mrkdwn_in: fields_with_markdown
+ }
+ ]
+ }
+ end
+
+ def pretext
+ ''
+ end
+
+ def text
+ ''
+ end
+
+ def fields_with_markdown
+ %i(title pretext fields)
+ end
end
end
end
diff --git a/lib/gitlab/slash_commands/presenters/issue_base.rb b/lib/gitlab/slash_commands/presenters/issue_base.rb
index 0be31e234b5..4bc05d1f318 100644
--- a/lib/gitlab/slash_commands/presenters/issue_base.rb
+++ b/lib/gitlab/slash_commands/presenters/issue_base.rb
@@ -42,17 +42,11 @@ module Gitlab
]
end
- def project_link
- "[#{project.full_name}](#{project.web_url})"
- end
-
- def author_profile_link
- "[#{author.to_reference}](#{url_for(author)})"
- end
-
private
attr_reader :resource
+
+ alias_method :issue, :resource
end
end
end
diff --git a/lib/gitlab/slash_commands/presenters/issue_close.rb b/lib/gitlab/slash_commands/presenters/issue_close.rb
index b3f24f4296a..f8d9af2c3c6 100644
--- a/lib/gitlab/slash_commands/presenters/issue_close.rb
+++ b/lib/gitlab/slash_commands/presenters/issue_close.rb
@@ -7,43 +7,25 @@ module Gitlab
include Presenters::IssueBase
def present
- if @resource.confidential?
- ephemeral_response(close_issue)
+ if resource.confidential?
+ ephemeral_response(response_message)
else
- in_channel_response(close_issue)
+ in_channel_response(response_message)
end
end
def already_closed
- ephemeral_response(text: "Issue #{@resource.to_reference} is already closed.")
+ ephemeral_response(text: "Issue #{resource.to_reference} is already closed.")
end
private
- def close_issue
- {
- attachments: [
- {
- title: "#{@resource.title} · #{@resource.to_reference}",
- title_link: resource_url,
- author_name: author.name,
- author_icon: author.avatar_url,
- fallback: "Closed issue #{@resource.to_reference}: #{@resource.title}",
- pretext: pretext,
- color: color(@resource),
- fields: fields,
- mrkdwn_in: [
- :title,
- :pretext,
- :fields
- ]
- }
- ]
- }
+ def fallback_message
+ "Closed issue #{issue.to_reference}: #{issue.title}"
end
def pretext
- "I closed an issue on #{author_profile_link}'s behalf: *#{@resource.to_reference}* in #{project_link}"
+ "I closed an issue on #{author_profile_link}'s behalf: *#{issue.to_reference}* in #{project_link}"
end
end
end
diff --git a/lib/gitlab/slash_commands/presenters/issue_comment.rb b/lib/gitlab/slash_commands/presenters/issue_comment.rb
index cce71e23b21..6ad56dd3682 100644
--- a/lib/gitlab/slash_commands/presenters/issue_comment.rb
+++ b/lib/gitlab/slash_commands/presenters/issue_comment.rb
@@ -7,31 +7,13 @@ module Gitlab
include Presenters::NoteBase
def present
- ephemeral_response(new_note)
+ ephemeral_response(response_message)
end
private
- def new_note
- {
- attachments: [
- {
- title: "#{issue.title} · #{issue.to_reference}",
- title_link: resource_url,
- author_name: author.name,
- author_icon: author.avatar_url,
- fallback: "New comment on #{issue.to_reference}: #{issue.title}",
- pretext: pretext,
- color: color,
- fields: fields,
- mrkdwn_in: [
- :title,
- :pretext,
- :fields
- ]
- }
- ]
- }
+ def fallback_message
+ "New comment on #{issue.to_reference}: #{issue.title}"
end
def pretext
diff --git a/lib/gitlab/slash_commands/presenters/issue_move.rb b/lib/gitlab/slash_commands/presenters/issue_move.rb
index 01f2025ee10..5b9ca89c063 100644
--- a/lib/gitlab/slash_commands/presenters/issue_move.rb
+++ b/lib/gitlab/slash_commands/presenters/issue_move.rb
@@ -19,30 +19,15 @@ module Gitlab
private
def moved_issue(old_issue)
- {
- attachments: [
- {
- title: "#{@resource.title} · #{@resource.to_reference}",
- title_link: resource_url,
- author_name: author.name,
- author_icon: author.avatar_url,
- fallback: "Issue #{@resource.to_reference}: #{@resource.title}",
- pretext: pretext(old_issue),
- color: color(@resource),
- fields: fields,
- mrkdwn_in: [
- :title,
- :pretext,
- :text,
- :fields
- ]
- }
- ]
- }
+ response_message(custom_pretext: custom_pretext(old_issue))
end
- def pretext(old_issue)
- "Moved issue *#{issue_link(old_issue)}* to *#{issue_link(@resource)}*"
+ def fallback_message
+ "Issue #{issue.to_reference}: #{issue.title}"
+ end
+
+ def custom_pretext(old_issue)
+ "Moved issue *#{issue_link(old_issue)}* to *#{issue_link(issue)}*"
end
def issue_link(issue)
diff --git a/lib/gitlab/slash_commands/presenters/issue_new.rb b/lib/gitlab/slash_commands/presenters/issue_new.rb
index 1424a4ac381..552456f5836 100644
--- a/lib/gitlab/slash_commands/presenters/issue_new.rb
+++ b/lib/gitlab/slash_commands/presenters/issue_new.rb
@@ -7,36 +7,21 @@ module Gitlab
include Presenters::IssueBase
def present
- in_channel_response(new_issue)
+ in_channel_response(response_message)
end
private
- def new_issue
- {
- attachments: [
- {
- title: "#{@resource.title} · #{@resource.to_reference}",
- title_link: resource_url,
- author_name: author.name,
- author_icon: author.avatar_url,
- fallback: "New issue #{@resource.to_reference}: #{@resource.title}",
- pretext: pretext,
- color: color(@resource),
- fields: fields,
- mrkdwn_in: [
- :title,
- :pretext,
- :text,
- :fields
- ]
- }
- ]
- }
+ def fallback_message
+ "New issue #{issue.to_reference}: #{issue.title}"
+ end
+
+ def fields_with_markdown
+ %i(title pretext text fields)
end
def pretext
- "I created an issue on #{author_profile_link}'s behalf: *#{@resource.to_reference}* in #{project_link}"
+ "I created an issue on #{author_profile_link}'s behalf: *#{issue.to_reference}* in #{project_link}"
end
end
end
diff --git a/lib/gitlab/slash_commands/presenters/issue_search.rb b/lib/gitlab/slash_commands/presenters/issue_search.rb
index 0d497efec0e..fffa082baac 100644
--- a/lib/gitlab/slash_commands/presenters/issue_search.rb
+++ b/lib/gitlab/slash_commands/presenters/issue_search.rb
@@ -7,12 +7,12 @@ module Gitlab
include Presenters::IssueBase
def present
- text = if @resource.count >= 5
+ text = if resource.count >= 5
"Here are the first 5 issues I found:"
- elsif @resource.one?
+ elsif resource.one?
"Here is the only issue I found:"
else
- "Here are the #{@resource.count} issues I found:"
+ "Here are the #{resource.count} issues I found:"
end
ephemeral_response(text: text, attachments: attachments)
@@ -21,7 +21,7 @@ module Gitlab
private
def attachments
- @resource.map do |issue|
+ resource.map do |issue|
url = "[#{issue.to_reference}](#{url_for([namespace, project, issue])})"
{
@@ -37,7 +37,7 @@ module Gitlab
end
def project
- @project ||= @resource.first.project
+ @project ||= resource.first.project
end
def namespace
diff --git a/lib/gitlab/slash_commands/presenters/issue_show.rb b/lib/gitlab/slash_commands/presenters/issue_show.rb
index 5a2c79a928e..448381b64ed 100644
--- a/lib/gitlab/slash_commands/presenters/issue_show.rb
+++ b/lib/gitlab/slash_commands/presenters/issue_show.rb
@@ -7,55 +7,36 @@ module Gitlab
include Presenters::IssueBase
def present
- if @resource.confidential?
- ephemeral_response(show_issue)
+ if resource.confidential?
+ ephemeral_response(response_message)
else
- in_channel_response(show_issue)
+ in_channel_response(response_message)
end
end
private
- def show_issue
- {
- attachments: [
- {
- title: "#{@resource.title} · #{@resource.to_reference}",
- title_link: resource_url,
- author_name: author.name,
- author_icon: author.avatar_url,
- fallback: "Issue #{@resource.to_reference}: #{@resource.title}",
- pretext: pretext,
- text: text,
- color: color(@resource),
- fields: fields,
- mrkdwn_in: [
- :pretext,
- :text,
- :fields
- ]
- }
- ]
- }
+ def fallback_message
+ "Issue #{resource.to_reference}: #{resource.title}"
end
def text
- message = ["**#{status_text(@resource)}**"]
+ message = ["**#{status_text(resource)}**"]
- if @resource.upvotes.zero? && @resource.downvotes.zero? && @resource.user_notes_count.zero?
+ if resource.upvotes.zero? && resource.downvotes.zero? && resource.user_notes_count.zero?
return message.join
end
message << " · "
- message << ":+1: #{@resource.upvotes} " unless @resource.upvotes.zero?
- message << ":-1: #{@resource.downvotes} " unless @resource.downvotes.zero?
- message << ":speech_balloon: #{@resource.user_notes_count}" unless @resource.user_notes_count.zero?
+ message << ":+1: #{resource.upvotes} " unless resource.upvotes.zero?
+ message << ":-1: #{resource.downvotes} " unless resource.downvotes.zero?
+ message << ":speech_balloon: #{resource.user_notes_count}" unless resource.user_notes_count.zero?
message.join
end
def pretext
- "Issue *#{@resource.to_reference}* from #{project.full_name}"
+ "Issue *#{resource.to_reference}* from #{project.full_name}"
end
end
end
diff --git a/lib/gitlab/slash_commands/presenters/note_base.rb b/lib/gitlab/slash_commands/presenters/note_base.rb
index 7758fc740de..71a9b99d0fd 100644
--- a/lib/gitlab/slash_commands/presenters/note_base.rb
+++ b/lib/gitlab/slash_commands/presenters/note_base.rb
@@ -6,7 +6,7 @@ module Gitlab
module NoteBase
GREEN = '#38ae67'
- def color
+ def color(_)
GREEN
end
@@ -18,18 +18,10 @@ module Gitlab
issue.project
end
- def project_link
- "[#{project.full_name}](#{project.web_url})"
- end
-
def author
resource.author
end
- def author_profile_link
- "[#{author.to_reference}](#{url_for(author)})"
- end
-
def fields
[
{