Commit f7da15ba authored by Shinya Maeda's avatar Shinya Maeda

Use before_save :set_protected

parent d68ff7f5
...@@ -27,7 +27,6 @@ module Ci ...@@ -27,7 +27,6 @@ module Ci
validates :coverage, numericality: true, allow_blank: true validates :coverage, numericality: true, allow_blank: true
validates :ref, presence: true validates :ref, presence: true
validates :protected, inclusion: { in: [true, false], unless: :importing? }, on: :create
scope :unstarted, ->() { where(runner_id: nil) } scope :unstarted, ->() { where(runner_id: nil) }
scope :ignore_failures, ->() { where(allow_failure: false) } scope :ignore_failures, ->() { where(allow_failure: false) }
...@@ -47,6 +46,7 @@ module Ci ...@@ -47,6 +46,7 @@ module Ci
before_save :update_artifacts_size, if: :artifacts_file_changed? before_save :update_artifacts_size, if: :artifacts_file_changed?
before_save :ensure_token before_save :ensure_token
before_save :set_protected
before_destroy { unscoped_project } before_destroy { unscoped_project }
after_create do |build| after_create do |build|
...@@ -461,6 +461,10 @@ module Ci ...@@ -461,6 +461,10 @@ module Ci
end end
end end
def set_protected
self.protected = pipeline.protected
end
def erase_trace! def erase_trace!
trace.erase! trace.erase!
end end
......
...@@ -36,9 +36,9 @@ module Ci ...@@ -36,9 +36,9 @@ module Ci
validates :sha, presence: { unless: :importing? } validates :sha, presence: { unless: :importing? }
validates :ref, presence: { unless: :importing? } validates :ref, presence: { unless: :importing? }
validates :status, presence: { unless: :importing? } validates :status, presence: { unless: :importing? }
validates :protected, inclusion: { in: [true, false], unless: :importing? }, on: :create
validate :valid_commit_sha, unless: :importing? validate :valid_commit_sha, unless: :importing?
# before_save :set_protected
after_create :keep_around_commits, unless: :importing? after_create :keep_around_commits, unless: :importing?
enum source: { enum source: {
...@@ -445,6 +445,10 @@ module Ci ...@@ -445,6 +445,10 @@ module Ci
statuses.latest.status || 'skipped' statuses.latest.status || 'skipped'
end end
def set_protected
self.protected = project.protected_for?(self.ref)
end
def keep_around_commits def keep_around_commits
return unless project return unless project
......
...@@ -12,8 +12,7 @@ module Ci ...@@ -12,8 +12,7 @@ module Ci
tag: tag?, tag: tag?,
trigger_requests: Array(trigger_request), trigger_requests: Array(trigger_request),
user: current_user, user: current_user,
pipeline_schedule: schedule, pipeline_schedule: schedule
protected: project.protected_for?(ref)
) )
result = validate(current_user, result = validate(current_user,
......
...@@ -28,8 +28,7 @@ module Gitlab ...@@ -28,8 +28,7 @@ module Gitlab
attributes.merge(project: project, attributes.merge(project: project,
ref: pipeline.ref, ref: pipeline.ref,
tag: pipeline.tag, tag: pipeline.tag,
trigger_request: trigger, trigger_request: trigger)
protected: protected_ref?)
end end
end end
...@@ -44,12 +43,6 @@ module Gitlab ...@@ -44,12 +43,6 @@ module Gitlab
end end
end end
end end
private
def protected_ref?
@protected_ref ||= project.protected_for?(pipeline.ref)
end
end end
end end
end end
......
...@@ -52,6 +52,17 @@ describe Ci::RetryBuildService do ...@@ -52,6 +52,17 @@ describe Ci::RetryBuildService do
expect(new_build.send(attribute)).to eq build.send(attribute) expect(new_build.send(attribute)).to eq build.send(attribute)
end end
end end
context 'when job has nullified protected' do
before do
build.update_attribute(:protected, nil)
end
it "clones protected build attribute" do
expect(new_build.protected).not_to be_nil
expect(new_build.protected).to eq build.protected
end
end
end end
describe 'reject acessors' do describe 'reject acessors' do
......
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