Commit ca6da6ea authored by James Lopez's avatar James Lopez
Browse files

Renamed pipeline column and fixed permissions for builds in events controller

parent f4832281959c
......@@ -2,6 +2,7 @@ class Projects::CycleAnalytics::EventsController < Projects::ApplicationControll
include CycleAnalyticsParams
before_action :authorize_read_cycle_analytics!
before_action :authorize_read_builds!, only: [:test, :staging]
def issue
render_events(events.issue_events)
......@@ -16,7 +17,7 @@ def code
end
def test
@opts = { from: start_date(events_params), branch: events_params[:branch_name] }
@options = { from: start_date(events_params), branch: events_params[:branch_name] }
render_events(events.test_events)
end
......@@ -47,12 +48,12 @@ def events
end
def options
@opts ||= { from: start_date(events_params) }
@options ||= { from: start_date(events_params) }
end
def events_params
return {} unless params[:events].present?
{ start_date: params[:events][:start_date], branch_name: params[:events][:branch_name] }
params[:events].slice(:start_date, :branch_name)
end
end
class MergeRequest::Metrics < ActiveRecord::Base
belongs_to :merge_request
belongs_to :pipeline, class_name: 'Ci::Pipeline', foreign_key: :ci_commit_id
belongs_to :pipeline, class_name: 'Ci::Pipeline', foreign_key: :pipeline_id
def record!
if merge_request.merged? && self.merged_at.blank?
......
......@@ -12,11 +12,11 @@ def perform(pipeline_id)
private
def update_metrics_for_active_pipeline(pipeline)
metrics(pipeline).update_all(latest_build_started_at: pipeline.started_at, latest_build_finished_at: nil, ci_commit_id: pipeline.id)
metrics(pipeline).update_all(latest_build_started_at: pipeline.started_at, latest_build_finished_at: nil, pipeline_id: pipeline.id)
end
def update_metrics_for_succeeded_pipeline(pipeline)
metrics(pipeline).update_all(latest_build_started_at: pipeline.started_at, latest_build_finished_at: pipeline.finished_at, ci_commit_id: pipeline.id)
metrics(pipeline).update_all(latest_build_started_at: pipeline.started_at, latest_build_finished_at: pipeline.finished_at, pipeline_id: pipeline.id)
end
def metrics(pipeline)
......
......@@ -24,6 +24,8 @@ class AddPipelineIdToMergeRequestMetrics < ActiveRecord::Migration
# disable_ddl_transaction!
def change
add_reference :merge_request_metrics, :ci_commit, index: true, foreign_key: { on_delete: :cascade }
add_column :merge_request_metrics, :pipeline_id, :integer
add_index :merge_request_metrics, :pipeline_id
add_foreign_key :merge_request_metrics, :ci_commits, column: :pipeline_id, on_delete: :cascade
end
end
......@@ -634,12 +634,12 @@
t.datetime "merged_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ci_commit_id"
t.integer "pipeline_id"
end
add_index "merge_request_metrics", ["ci_commit_id"], name: "index_merge_request_metrics_on_ci_commit_id", using: :btree
add_index "merge_request_metrics", ["first_deployed_to_production_at"], name: "index_merge_request_metrics_on_first_deployed_to_production_at", using: :btree
add_index "merge_request_metrics", ["merge_request_id"], name: "index_merge_request_metrics", using: :btree
add_index "merge_request_metrics", ["pipeline_id"], name: "index_merge_request_metrics_on_pipeline_id", using: :btree
create_table "merge_requests", force: :cascade do |t|
t.string "target_branch", null: false
......@@ -1246,7 +1246,7 @@
add_foreign_key "labels", "namespaces", column: "group_id", on_delete: :cascade
add_foreign_key "lists", "boards"
add_foreign_key "lists", "labels"
add_foreign_key "merge_request_metrics", "ci_commits", on_delete: :cascade
add_foreign_key "merge_request_metrics", "ci_commits", column: "pipeline_id", on_delete: :cascade
add_foreign_key "merge_request_metrics", "merge_requests", on_delete: :cascade
add_foreign_key "merge_requests_closing_issues", "issues", on_delete: :cascade
add_foreign_key "merge_requests_closing_issues", "merge_requests", on_delete: :cascade
......
......@@ -20,7 +20,7 @@ def plan_custom_query(base_query)
end
def test_custom_query(base_query)
base_query.join(build_table).on(mr_metrics_table[:ci_commit_id].eq(build_table[:commit_id]))
base_query.join(build_table).on(mr_metrics_table[:pipeline_id].eq(build_table[:commit_id]))
end
alias_method :staging_custom_query, :test_custom_query
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment