From abc4eb0342b44847045cc0d441d3f7aa45f7c5dc Mon Sep 17 00:00:00 2001 From: Lucas Charles Date: Thu, 16 May 2019 14:26:33 -0700 Subject: [PATCH] Add report_approver to approval_merge_request_rules Updates `approval_merge_requests_rules` with 2 additional attributes: - `report_approver` (boolean) - `report_type` (enum) Currently only 1 report_type is supported: `security` but the model should be generic enough to eventually support others; i.e. license_management or code_quality --- db/schema.rb | 4 +++- .../models/approval_merge_request_fallback.rb | 4 ++++ ee/app/models/approval_merge_request_rule.rb | 4 ++++ ee/app/models/approval_project_rule.rb | 5 +++++ ...pprover-to-approval-merge-request-rules.yml | 5 +++++ ...approver_to_approval_merge_request_rules.rb | 18 ++++++++++++++++++ 6 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 ee/changelogs/unreleased/9928-add-report-approver-to-approval-merge-request-rules.yml create mode 100644 ee/db/migrate/20190516202550_add_report_approver_to_approval_merge_request_rules.rb diff --git a/db/schema.rb b/db/schema.rb index 92619982e2a13e..9c5499b3ef0342 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20190515125613) do +ActiveRecord::Schema.define(version: 20190516202550) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -242,6 +242,8 @@ t.integer "approvals_required", limit: 2, default: 0, null: false t.boolean "code_owner", default: false, null: false t.string "name", null: false + t.boolean "report_approver", default: false + t.integer "report_type", limit: 2 t.index ["merge_request_id", "code_owner", "name"], name: "approval_rule_name_index_for_code_owners", unique: true, where: "(code_owner = true)", using: :btree t.index ["merge_request_id", "code_owner"], name: "index_approval_merge_request_rules_1", using: :btree end diff --git a/ee/app/models/approval_merge_request_fallback.rb b/ee/app/models/approval_merge_request_fallback.rb index e88bfbf65d3104..a5de6550046fed 100644 --- a/ee/app/models/approval_merge_request_fallback.rb +++ b/ee/app/models/approval_merge_request_fallback.rb @@ -50,6 +50,10 @@ def code_owner false end + def report_approver + false + end + def source_rule nil end diff --git a/ee/app/models/approval_merge_request_rule.rb b/ee/app/models/approval_merge_request_rule.rb index 199a3da9ff5eb8..ed45161f196067 100644 --- a/ee/app/models/approval_merge_request_rule.rb +++ b/ee/app/models/approval_merge_request_rule.rb @@ -21,6 +21,10 @@ class ApprovalMergeRequestRule < ApplicationRecord has_one :approval_project_rule, through: :approval_merge_request_rule_source alias_method :source_rule, :approval_project_rule + enum report_type: { + security: 1 + } + validate :validate_approvals_required def self.find_or_create_code_owner_rule(merge_request, pattern) diff --git a/ee/app/models/approval_project_rule.rb b/ee/app/models/approval_project_rule.rb index 140d8f312e249c..095a3fcafd0956 100644 --- a/ee/app/models/approval_project_rule.rb +++ b/ee/app/models/approval_project_rule.rb @@ -19,6 +19,11 @@ def code_owner end alias_method :code_owner?, :code_owner + def report_approver + false + end + alias_method :report_approver?, :report_approver + def source_rule nil end diff --git a/ee/changelogs/unreleased/9928-add-report-approver-to-approval-merge-request-rules.yml b/ee/changelogs/unreleased/9928-add-report-approver-to-approval-merge-request-rules.yml new file mode 100644 index 00000000000000..772fe5ed0770cf --- /dev/null +++ b/ee/changelogs/unreleased/9928-add-report-approver-to-approval-merge-request-rules.yml @@ -0,0 +1,5 @@ +--- +title: Add report_approver to approval_merge_request_rules +merge_request: 12819 +author: +type: added diff --git a/ee/db/migrate/20190516202550_add_report_approver_to_approval_merge_request_rules.rb b/ee/db/migrate/20190516202550_add_report_approver_to_approval_merge_request_rules.rb new file mode 100644 index 00000000000000..39e5585a56eb5f --- /dev/null +++ b/ee/db/migrate/20190516202550_add_report_approver_to_approval_merge_request_rules.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class AddReportApproverToApprovalMergeRequestRules < ActiveRecord::Migration[5.1] + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + def change + change_table :approval_merge_request_rules do |t| + t.boolean :report_approver, default: false + t.integer :report_type, limit: 1 + end + end +end -- GitLab