diff options
-rw-r--r-- | app/controllers/projects/cycle_analytics/events_controller.rb | 10 | ||||
-rw-r--r-- | lib/gitlab/cycle_analytics/events.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/cycle_analytics/events_fetcher.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/cycle_analytics/events_query.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/cycle_analytics/metrics_fetcher.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/cycle_analytics/query_config.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/cycle_analytics/events_spec.rb | 2 |
7 files changed, 19 insertions, 11 deletions
diff --git a/app/controllers/projects/cycle_analytics/events_controller.rb b/app/controllers/projects/cycle_analytics/events_controller.rb index 86ed01b9ea4..0f0fd17c8a7 100644 --- a/app/controllers/projects/cycle_analytics/events_controller.rb +++ b/app/controllers/projects/cycle_analytics/events_controller.rb @@ -17,6 +17,8 @@ class Projects::CycleAnalytics::EventsController < Projects::ApplicationControll end def test + @opts = { from: start_date, branch: events_params[:branch_name] } + render_events(builds: events.test_events) end @@ -54,12 +56,16 @@ class Projects::CycleAnalytics::EventsController < Projects::ApplicationControll end def events - @events ||= Gitlab::CycleAnalytics::Events.new(project: project, from: start_date) + @events ||= Gitlab::CycleAnalytics::Events.new(project: project, options: options) + end + + def options + @opts ||= { from: start_date } end def events_params return {} unless params[:events].present? - { start_date: params[:events][:start_date] } + { start_date: params[:events][:start_date], branch_name: params[:events][:branch_name] } end end diff --git a/lib/gitlab/cycle_analytics/events.rb b/lib/gitlab/cycle_analytics/events.rb index b39282b1e0f..c86b242857e 100644 --- a/lib/gitlab/cycle_analytics/events.rb +++ b/lib/gitlab/cycle_analytics/events.rb @@ -3,10 +3,9 @@ module Gitlab class Events include ActionView::Helpers::DateHelper - def initialize(project:, from:) + def initialize(project:, options:) @project = project - @from = from - @fetcher = EventsFetcher.new(project: project, from: from) + @fetcher = EventsFetcher.new(project: project, options: options) end def issue_events diff --git a/lib/gitlab/cycle_analytics/events_fetcher.rb b/lib/gitlab/cycle_analytics/events_fetcher.rb index 069b5873736..9b62a596aeb 100644 --- a/lib/gitlab/cycle_analytics/events_fetcher.rb +++ b/lib/gitlab/cycle_analytics/events_fetcher.rb @@ -3,8 +3,8 @@ module Gitlab class EventsFetcher include MetricsFetcher - def initialize(project:, from:) - @query = EventsQuery.new(project: project, from: from) + def initialize(project:, options:) + @query = EventsQuery.new(project: project, options: options) end def fetch(stage:) diff --git a/lib/gitlab/cycle_analytics/events_query.rb b/lib/gitlab/cycle_analytics/events_query.rb index f78272a4108..7a27e099be3 100644 --- a/lib/gitlab/cycle_analytics/events_query.rb +++ b/lib/gitlab/cycle_analytics/events_query.rb @@ -3,9 +3,10 @@ module Gitlab class EventsQuery include MetricsFetcher - def initialize(project:, from:) + def initialize(project:, options: {}) @project = project - @from = from + @from = options[:from] + @branch = options[:branch] end def execute(stage, &block) diff --git a/lib/gitlab/cycle_analytics/metrics_fetcher.rb b/lib/gitlab/cycle_analytics/metrics_fetcher.rb index 11f923cc27d..f6522905c10 100644 --- a/lib/gitlab/cycle_analytics/metrics_fetcher.rb +++ b/lib/gitlab/cycle_analytics/metrics_fetcher.rb @@ -38,6 +38,8 @@ module Gitlab where(issue_table[:deleted_at].eq(nil)). where(issue_table[:created_at].gteq(@from)) + query = query.where(build_table[:ref].eq(@branch)) if name == :test && @branch + # Load merge_requests query = query.join(mr_table, Arel::Nodes::OuterJoin). on(mr_table[:id].eq(mr_closing_issues_table[:merge_request_id])). diff --git a/lib/gitlab/cycle_analytics/query_config.rb b/lib/gitlab/cycle_analytics/query_config.rb index bd8ddf8a638..55db37ec796 100644 --- a/lib/gitlab/cycle_analytics/query_config.rb +++ b/lib/gitlab/cycle_analytics/query_config.rb @@ -56,7 +56,7 @@ module Gitlab { start_time_attrs: mr_metrics_table[:latest_build_started_at], end_time_attrs: mr_metrics_table[:latest_build_finished_at], projections: [build_table[:id]], - order: mr_table[:created_at] + order: build_table[:created_at] } end diff --git a/spec/lib/gitlab/cycle_analytics/events_spec.rb b/spec/lib/gitlab/cycle_analytics/events_spec.rb index c83dafbd256..a531c4c31b7 100644 --- a/spec/lib/gitlab/cycle_analytics/events_spec.rb +++ b/spec/lib/gitlab/cycle_analytics/events_spec.rb @@ -6,7 +6,7 @@ describe Gitlab::CycleAnalytics::Events do let(:user) { create(:user, :admin) } let!(:context) { create(:issue, project: project, created_at: 2.days.ago) } - subject { described_class.new(project: project, from: from_date) } + subject { described_class.new(project: project, options: { from: from_date }) } before do setup(context) |