summaryrefslogtreecommitdiff
path: root/app/services/jira
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-09 15:08:59 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-09 15:08:59 +0000
commit4a14cfd1959c6a03758d0a75afe7b4277cf113ec (patch)
treecaa9aa524ee10076f94a6369227aaf566cbb6e74 /app/services/jira
parentfaeb202bd4a4099d4cff5a5717915883ac51422f (diff)
downloadgitlab-ce-4a14cfd1959c6a03758d0a75afe7b4277cf113ec.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/jira')
-rw-r--r--app/services/jira/jql_builder_service.rb26
1 files changed, 25 insertions, 1 deletions
diff --git a/app/services/jira/jql_builder_service.rb b/app/services/jira/jql_builder_service.rb
index 2a4b18fcc8c..ddf7c4e30a6 100644
--- a/app/services/jira/jql_builder_service.rb
+++ b/app/services/jira/jql_builder_service.rb
@@ -12,6 +12,9 @@ module Jira
@jira_project_key = jira_project_key
@search = params[:search]
@labels = params[:labels]
+ @status = params[:status]
+ @reporter = params[:author_username]
+ @assignee = params[:assignee_username]
@sort = params[:sort] || DEFAULT_SORT
@sort_direction = params[:sort_direction] || DEFAULT_SORT_DIRECTION
end
@@ -25,12 +28,15 @@ module Jira
private
- attr_reader :jira_project_key, :sort, :sort_direction, :search, :labels
+ attr_reader :jira_project_key, :sort, :sort_direction, :search, :labels, :status, :reporter, :assignee
def jql_filters
[
by_project,
by_labels,
+ by_status,
+ by_reporter,
+ by_assignee,
by_summary_and_description
].compact.join(' AND ')
end
@@ -52,10 +58,28 @@ module Jira
labels.map { |label| %Q[labels = "#{escape_quotes(label)}"] }.join(' AND ')
end
+ def by_status
+ return if status.blank?
+
+ %Q[status = "#{escape_quotes(status)}"]
+ end
+
def order_by
"order by #{sort} #{sort_direction}"
end
+ def by_reporter
+ return if reporter.blank?
+
+ %Q[reporter = "#{escape_quotes(reporter)}"]
+ end
+
+ def by_assignee
+ return if assignee.blank?
+
+ %Q[assignee = "#{escape_quotes(assignee)}"]
+ end
+
def escape_quotes(param)
param.gsub('\\', '\\\\\\').gsub('"', '\\"')
end