summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-09-15 03:09:24 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-09-15 03:09:24 +0000
commit5fe82ba3d39345ce6c6df14a10b13998b13c68b2 (patch)
tree33c18c58ff44cb1c8301798bf2f2edbb80ac746d /lib
parent09bd62c59d070ab2bbcb4079a44dcb78c76666b5 (diff)
downloadgitlab-ce-5fe82ba3d39345ce6c6df14a10b13998b13c68b2.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/api/helpers/search_helpers.rb4
-rw-r--r--lib/api/search.rb4
-rw-r--r--lib/banzai/filter/alert_reference_filter.rb29
-rw-r--r--lib/banzai/pipeline/gfm_pipeline.rb3
-rw-r--r--lib/banzai/pipeline/single_line_pipeline.rb3
-rw-r--r--lib/banzai/reference_parser/alert_parser.rb19
6 files changed, 60 insertions, 2 deletions
diff --git a/lib/api/helpers/search_helpers.rb b/lib/api/helpers/search_helpers.rb
index 936684ea1f8..cb5f92fa62a 100644
--- a/lib/api/helpers/search_helpers.rb
+++ b/lib/api/helpers/search_helpers.rb
@@ -17,6 +17,10 @@ module API
# This is a separate method so that EE can redefine it.
%w(issues merge_requests milestones notes wiki_blobs commits blobs users)
end
+
+ def self.search_states
+ %w(all opened closed merged)
+ end
end
end
end
diff --git a/lib/api/search.rb b/lib/api/search.rb
index 53095e0b81a..b9c6a823f4f 100644
--- a/lib/api/search.rb
+++ b/lib/api/search.rb
@@ -32,6 +32,7 @@ module API
search_params = {
scope: params[:scope],
search: params[:search],
+ state: params[:state],
snippets: snippets?,
page: params[:page],
per_page: params[:per_page]
@@ -79,6 +80,7 @@ module API
type: String,
desc: 'The scope of the search',
values: Helpers::SearchHelpers.global_search_scopes
+ optional :state, type: String, desc: 'Filter results by state', values: Helpers::SearchHelpers.search_states
use :pagination
end
get do
@@ -100,6 +102,7 @@ module API
type: String,
desc: 'The scope of the search',
values: Helpers::SearchHelpers.group_search_scopes
+ optional :state, type: String, desc: 'Filter results by state', values: Helpers::SearchHelpers.search_states
use :pagination
end
get ':id/(-/)search' do
@@ -122,6 +125,7 @@ module API
desc: 'The scope of the search',
values: Helpers::SearchHelpers.project_search_scopes
optional :ref, type: String, desc: 'The name of a repository branch or tag. If not given, the default branch is used'
+ optional :state, type: String, desc: 'Filter results by state', values: Helpers::SearchHelpers.search_states
use :pagination
end
get ':id/(-/)search' do
diff --git a/lib/banzai/filter/alert_reference_filter.rb b/lib/banzai/filter/alert_reference_filter.rb
new file mode 100644
index 00000000000..228a4159c99
--- /dev/null
+++ b/lib/banzai/filter/alert_reference_filter.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+module Banzai
+ module Filter
+ class AlertReferenceFilter < IssuableReferenceFilter
+ self.reference_type = :alert
+
+ def self.object_class
+ AlertManagement::Alert
+ end
+
+ def self.object_sym
+ :alert
+ end
+
+ def parent_records(parent, ids)
+ parent.alert_management_alerts.where(iid: ids.to_a)
+ end
+
+ def url_for_object(alert, project)
+ ::Gitlab::Routing.url_helpers.details_project_alert_management_url(
+ project,
+ alert.iid,
+ only_path: context[:only_path]
+ )
+ end
+ end
+ end
+end
diff --git a/lib/banzai/pipeline/gfm_pipeline.rb b/lib/banzai/pipeline/gfm_pipeline.rb
index 0d6f36cd6e9..7057ac9d707 100644
--- a/lib/banzai/pipeline/gfm_pipeline.rb
+++ b/lib/banzai/pipeline/gfm_pipeline.rb
@@ -59,7 +59,8 @@ module Banzai
Filter::CommitRangeReferenceFilter,
Filter::CommitReferenceFilter,
Filter::LabelReferenceFilter,
- Filter::MilestoneReferenceFilter
+ Filter::MilestoneReferenceFilter,
+ Filter::AlertReferenceFilter
]
end
diff --git a/lib/banzai/pipeline/single_line_pipeline.rb b/lib/banzai/pipeline/single_line_pipeline.rb
index b06cb907025..a2fe6d52a90 100644
--- a/lib/banzai/pipeline/single_line_pipeline.rb
+++ b/lib/banzai/pipeline/single_line_pipeline.rb
@@ -23,7 +23,8 @@ module Banzai
Filter::MergeRequestReferenceFilter,
Filter::SnippetReferenceFilter,
Filter::CommitRangeReferenceFilter,
- Filter::CommitReferenceFilter
+ Filter::CommitReferenceFilter,
+ Filter::AlertReferenceFilter
]
end
diff --git a/lib/banzai/reference_parser/alert_parser.rb b/lib/banzai/reference_parser/alert_parser.rb
new file mode 100644
index 00000000000..7b864d26f67
--- /dev/null
+++ b/lib/banzai/reference_parser/alert_parser.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Banzai
+ module ReferenceParser
+ class AlertParser < BaseParser
+ self.reference_type = :alert
+
+ def references_relation
+ AlertManagement::Alert
+ end
+
+ private
+
+ def can_read_reference?(user, alert, node)
+ can?(user, :read_alert_management_alert, alert)
+ end
+ end
+ end
+end