summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-02 15:08:01 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-02 15:08:01 +0000
commitb375c6c05fbd03aea33a9ee9f82e678bdaa8c3cc (patch)
tree55f2a32e5fd3d67597fc8c6cc2a01793ee15c87a /lib
parent988b28ec1a379d38f6ac9ed04886ee564fd447fd (diff)
downloadgitlab-ce-b375c6c05fbd03aea33a9ee9f82e678bdaa8c3cc.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/banzai/filter/inline_embeds_filter.rb18
-rw-r--r--lib/banzai/filter/inline_grafana_metrics_filter.rb6
-rw-r--r--lib/banzai/filter/inline_metrics_filter.rb10
-rw-r--r--lib/gitlab/ci/pipeline/chain/build/associations.rb28
4 files changed, 45 insertions, 17 deletions
diff --git a/lib/banzai/filter/inline_embeds_filter.rb b/lib/banzai/filter/inline_embeds_filter.rb
index 5b579aeae6b..79ac8555636 100644
--- a/lib/banzai/filter/inline_embeds_filter.rb
+++ b/lib/banzai/filter/inline_embeds_filter.rb
@@ -22,11 +22,18 @@ module Banzai
doc
end
- # Implement in child class.
+ # Child class must provide the metrics_dashboard_url.
#
# Return a Nokogiri::XML::Element to embed in the
- # markdown.
+ # markdown which provides a url to the metric_dashboard endpoint where
+ # data can be requested through a prometheus proxy. InlineMetricsRedactorFilter
+ # is responsible for premissions to see this div (and relies on the class 'js-render-metrics' ).
def create_element(params)
+ doc.document.create_element(
+ 'div',
+ class: 'js-render-metrics',
+ 'data-dashboard-url': metrics_dashboard_url(params)
+ )
end
# Implement in child class unless overriding #embed_params
@@ -71,6 +78,13 @@ module Banzai
Gitlab::Metrics::Dashboard::Url.parse_query(url)
end
end
+
+ # Implement in child class.
+ #
+ # Provides a full url to request the relevant panels of metric data.
+ def metrics_dashboard_url
+ raise NotImplementedError
+ end
end
end
end
diff --git a/lib/banzai/filter/inline_grafana_metrics_filter.rb b/lib/banzai/filter/inline_grafana_metrics_filter.rb
index 321580b532f..69ae747333f 100644
--- a/lib/banzai/filter/inline_grafana_metrics_filter.rb
+++ b/lib/banzai/filter/inline_grafana_metrics_filter.rb
@@ -10,11 +10,7 @@ module Banzai
def create_element(params)
begin_loading_dashboard(params[:url])
- doc.document.create_element(
- 'div',
- class: 'js-render-metrics',
- 'data-dashboard-url': metrics_dashboard_url(params)
- )
+ super
end
def embed_params(node)
diff --git a/lib/banzai/filter/inline_metrics_filter.rb b/lib/banzai/filter/inline_metrics_filter.rb
index 21371e52680..409e8db87f4 100644
--- a/lib/banzai/filter/inline_metrics_filter.rb
+++ b/lib/banzai/filter/inline_metrics_filter.rb
@@ -5,16 +5,6 @@ module Banzai
# HTML filter that inserts a placeholder element for each
# reference to a metrics dashboard.
class InlineMetricsFilter < Banzai::Filter::InlineEmbedsFilter
- # Placeholder element for the frontend to use as an
- # injection point for charts.
- def create_element(params)
- doc.document.create_element(
- 'div',
- class: 'js-render-metrics',
- 'data-dashboard-url': metrics_dashboard_url(params)
- )
- end
-
# Search params for selecting metrics links. A few
# simple checks is enough to boost performance without
# the cost of doing a full regex match.
diff --git a/lib/gitlab/ci/pipeline/chain/build/associations.rb b/lib/gitlab/ci/pipeline/chain/build/associations.rb
new file mode 100644
index 00000000000..eb49c56bcd7
--- /dev/null
+++ b/lib/gitlab/ci/pipeline/chain/build/associations.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Ci
+ module Pipeline
+ module Chain
+ class Build
+ class Associations < Chain::Base
+ def perform!
+ return unless @command.bridge
+
+ @pipeline.build_source_pipeline(
+ source_pipeline: @command.bridge.pipeline,
+ source_project: @command.bridge.project,
+ source_bridge: @command.bridge,
+ project: @command.project
+ )
+ end
+
+ def break?
+ false
+ end
+ end
+ end
+ end
+ end
+ end
+end