Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-19 15:06:00 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-19 15:06:00 +0300
commitb570d73ecd31e2ca9cf8c2f1adb056edf2869477 (patch)
tree0b8aa67eab6da552d8499f1fdcf9a7495dcf1379 /app
parent34b3567c97ecc0f317adae04e10e4d7d8c8830db (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/helpers/projects_helper.rb1
-rw-r--r--app/models/ci/pipeline.rb6
-rw-r--r--app/models/concerns/issuable.rb1
-rw-r--r--app/models/concerns/issuable_states.rb23
-rw-r--r--app/models/issue.rb5
-rw-r--r--app/models/merge_request.rb3
-rw-r--r--app/presenters/release_presenter.rb3
-rw-r--r--app/serializers/analytics_merge_request_entity.rb4
-rw-r--r--app/services/ci/create_pipeline_service.rb4
-rw-r--r--app/services/ci/process_pipeline_service.rb12
-rw-r--r--app/services/ci/retry_pipeline_service.rb4
-rw-r--r--app/services/issuable_base_service.rb2
-rw-r--r--app/workers/pipeline_process_worker.rb4
13 files changed, 32 insertions, 40 deletions
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index 47214ac4ee2..64d61bba71a 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -188,6 +188,7 @@ module ProjectsHelper
"cross-project:#{can?(current_user, :read_cross_project)}",
max_project_member_access_cache_key(project),
pipeline_status,
+ Gitlab::I18n.locale,
'v2.6'
]
diff --git a/app/models/ci/pipeline.rb b/app/models/ci/pipeline.rb
index f730b949ee9..4f71d52d469 100644
--- a/app/models/ci/pipeline.rb
+++ b/app/models/ci/pipeline.rb
@@ -599,12 +599,6 @@ module Ci
project.notes.for_commit_id(sha)
end
- # rubocop: disable CodeReuse/ServiceClass
- def process!(trigger_build_ids = nil)
- Ci::ProcessPipelineService.new(project, user).execute(self, trigger_build_ids)
- end
- # rubocop: enable CodeReuse/ServiceClass
-
def update_status
retry_optimistic_lock(self) do
new_status = latest_builds_status.to_s
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb
index 01cd1e0224b..6ea12e1cd59 100644
--- a/app/models/concerns/issuable.rb
+++ b/app/models/concerns/issuable.rb
@@ -23,7 +23,6 @@ module Issuable
include Sortable
include CreatedAtFilterable
include UpdatedAtFilterable
- include IssuableStates
include ClosedAtFilterable
include VersionedDescription
diff --git a/app/models/concerns/issuable_states.rb b/app/models/concerns/issuable_states.rb
deleted file mode 100644
index f0b9f0d1f3a..00000000000
--- a/app/models/concerns/issuable_states.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-# frozen_string_literal: true
-
-module IssuableStates
- extend ActiveSupport::Concern
-
- # The state:string column is being migrated to state_id:integer column
- # This is a temporary hook to keep state column in sync until it is removed.
- # Check https: https://gitlab.com/gitlab-org/gitlab/issues/33814 for more information
- # The state column can be safely removed after 2019-10-27
- included do
- before_save :sync_issuable_deprecated_state
- end
-
- def sync_issuable_deprecated_state
- return if self.is_a?(Epic)
- return unless respond_to?(:state)
- return if state_id.nil?
-
- deprecated_state = self.class.available_states.key(state_id)
-
- self.write_attribute(:state, deprecated_state)
- end
-end
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 948cadc34e5..6461edbe5d5 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -66,7 +66,10 @@ class Issue < ApplicationRecord
scope :public_only, -> { where(confidential: false) }
scope :confidential_only, -> { where(confidential: true) }
- scope :counts_by_state, -> { reorder(nil).group(:state).count }
+ scope :counts_by_state, -> { reorder(nil).group(:state_id).count }
+
+ # Only remove after 2019-12-22 and with %12.7
+ self.ignored_columns += %i[state]
after_commit :expire_etag_cache
after_save :ensure_metrics, unless: :imported?
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index a8c15ef2028..399fc030d24 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -228,6 +228,9 @@ class MergeRequest < ApplicationRecord
with_state(:opened).where(auto_merge_enabled: true)
end
+ # Only remove after 2019-12-22 and with %12.7
+ self.ignored_columns += %i[state]
+
after_save :keep_around_commit
alias_attribute :project, :target_project
diff --git a/app/presenters/release_presenter.rb b/app/presenters/release_presenter.rb
index 4eed278661c..65034158a06 100644
--- a/app/presenters/release_presenter.rb
+++ b/app/presenters/release_presenter.rb
@@ -58,6 +58,7 @@ class ReleasePresenter < Gitlab::View::Presenter::Delegated
end
def release_edit_page_available?
- ::Feature.enabled?(:release_edit_page, project, default_enabled: true)
+ ::Feature.enabled?(:release_edit_page, project, default_enabled: true) &&
+ can?(current_user, :update_release, release)
end
end
diff --git a/app/serializers/analytics_merge_request_entity.rb b/app/serializers/analytics_merge_request_entity.rb
index 21d7eeb81b0..4344de2b9b4 100644
--- a/app/serializers/analytics_merge_request_entity.rb
+++ b/app/serializers/analytics_merge_request_entity.rb
@@ -1,7 +1,9 @@
# frozen_string_literal: true
class AnalyticsMergeRequestEntity < AnalyticsIssueEntity
- expose :state
+ expose :state do |object|
+ MergeRequest.available_states.key(object[:state_id])
+ end
expose :url do |object|
url_to(:namespace_project_merge_request, object)
diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb
index 5778a48bce6..8887534bece 100644
--- a/app/services/ci/create_pipeline_service.rb
+++ b/app/services/ci/create_pipeline_service.rb
@@ -57,7 +57,9 @@ module Ci
cancel_pending_pipelines if project.auto_cancel_pending_pipelines?
pipeline_created_counter.increment(source: source)
- pipeline.process!
+ Ci::ProcessPipelineService
+ .new(pipeline)
+ .execute
end
end
diff --git a/app/services/ci/process_pipeline_service.rb b/app/services/ci/process_pipeline_service.rb
index 039670f58c8..f33cbf7ab29 100644
--- a/app/services/ci/process_pipeline_service.rb
+++ b/app/services/ci/process_pipeline_service.rb
@@ -1,14 +1,16 @@
# frozen_string_literal: true
module Ci
- class ProcessPipelineService < BaseService
+ class ProcessPipelineService
include Gitlab::Utils::StrongMemoize
attr_reader :pipeline
- def execute(pipeline, trigger_build_ids = nil)
+ def initialize(pipeline)
@pipeline = pipeline
+ end
+ def execute(trigger_build_ids = nil)
update_retried
success = process_stages_without_needs
@@ -72,7 +74,7 @@ module Ci
def process_build(build, current_status)
Gitlab::OptimisticLocking.retry_lock(build) do |subject|
- Ci::ProcessBuildService.new(project, @user)
+ Ci::ProcessBuildService.new(project, build.user)
.execute(subject, current_status)
end
end
@@ -129,5 +131,9 @@ module Ci
.update_all(retried: true) if latest_statuses.any?
end
# rubocop: enable CodeReuse/ActiveRecord
+
+ def project
+ pipeline.project
+ end
end
end
diff --git a/app/services/ci/retry_pipeline_service.rb b/app/services/ci/retry_pipeline_service.rb
index 42a13367a99..1f747aac98f 100644
--- a/app/services/ci/retry_pipeline_service.rb
+++ b/app/services/ci/retry_pipeline_service.rb
@@ -24,7 +24,9 @@ module Ci
.new(project, current_user)
.close_all(pipeline)
- pipeline.process!
+ Ci::ProcessPipelineService
+ .new(pipeline)
+ .execute
end
end
end
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb
index 8a79c5f889d..200eca0e43c 100644
--- a/app/services/issuable_base_service.rb
+++ b/app/services/issuable_base_service.rb
@@ -397,7 +397,7 @@ class IssuableBaseService < BaseService
end
def update_project_counter_caches?(issuable)
- issuable.state_changed?
+ issuable.state_id_changed?
end
def parent
diff --git a/app/workers/pipeline_process_worker.rb b/app/workers/pipeline_process_worker.rb
index 2a36ab992e9..200f3619332 100644
--- a/app/workers/pipeline_process_worker.rb
+++ b/app/workers/pipeline_process_worker.rb
@@ -11,7 +11,9 @@ class PipelineProcessWorker
# rubocop: disable CodeReuse/ActiveRecord
def perform(pipeline_id, build_ids = nil)
Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline|
- pipeline.process!(build_ids)
+ Ci::ProcessPipelineService
+ .new(pipeline)
+ .execute(build_ids)
end
end
# rubocop: enable CodeReuse/ActiveRecord