summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-11-04 12:57:23 +0100
committerJames Lopez <james@jameslopez.es>2016-11-17 08:22:57 +0100
commitbd31f24c548878597322b34965789c88ff8d2dde (patch)
tree10d9e8f425506f3f1097b1d3e6a1cc50ad3a22cf
parenteccb6a5e920920bda11104ca608e652f84a944bf (diff)
downloadgitlab-ce-bd31f24c548878597322b34965789c88ff8d2dde.tar.gz
Added branch option to test events
Also fixed test events ordering issue
-rw-r--r--app/controllers/projects/cycle_analytics/events_controller.rb10
-rw-r--r--lib/gitlab/cycle_analytics/events.rb5
-rw-r--r--lib/gitlab/cycle_analytics/events_fetcher.rb4
-rw-r--r--lib/gitlab/cycle_analytics/events_query.rb5
-rw-r--r--lib/gitlab/cycle_analytics/metrics_fetcher.rb2
-rw-r--r--lib/gitlab/cycle_analytics/query_config.rb2
-rw-r--r--spec/lib/gitlab/cycle_analytics/events_spec.rb2
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)