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
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-28 18:06:57 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-28 18:06:57 +0300
commit7cdd70dcec27402e89e65451b4b1feb75b5eb267 (patch)
tree1691c8e1afd469fa426ecf5bc127de8df16d4855 /lib/gitlab
parent79348faced5e7e62103ad27f6a6594dfdca463e2 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab')
-rw-r--r--lib/gitlab/etag_caching/router.rb4
-rw-r--r--lib/gitlab/import_export/project_tree_restorer.rb26
-rw-r--r--lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb2
-rw-r--r--lib/gitlab/url_builder.rb21
-rw-r--r--lib/gitlab/visibility_level.rb12
5 files changed, 48 insertions, 17 deletions
diff --git a/lib/gitlab/etag_caching/router.rb b/lib/gitlab/etag_caching/router.rb
index efddda0ec65..17d9cf08367 100644
--- a/lib/gitlab/etag_caching/router.rb
+++ b/lib/gitlab/etag_caching/router.rb
@@ -23,6 +23,10 @@ module Gitlab
'issue_notes'
),
Gitlab::EtagCaching::Router::Route.new(
+ %r(#{RESERVED_WORDS_PREFIX}/noteable/merge_request/\d+/notes\z),
+ 'merge_request_notes'
+ ),
+ Gitlab::EtagCaching::Router::Route.new(
%r(#{RESERVED_WORDS_PREFIX}/issues/\d+/realtime_changes\z),
'issue_title'
),
diff --git a/lib/gitlab/import_export/project_tree_restorer.rb b/lib/gitlab/import_export/project_tree_restorer.rb
index c401f96b5c1..c89b8f563dc 100644
--- a/lib/gitlab/import_export/project_tree_restorer.rb
+++ b/lib/gitlab/import_export/project_tree_restorer.rb
@@ -85,13 +85,16 @@ module Gitlab
# we do not care if we process array or hash
data_hashes = [data_hashes] unless data_hashes.is_a?(Array)
+ relation_index = 0
+
# consume and remove objects from memory
while data_hash = data_hashes.shift
- process_project_relation_item!(relation_key, relation_definition, data_hash)
+ process_project_relation_item!(relation_key, relation_definition, relation_index, data_hash)
+ relation_index += 1
end
end
- def process_project_relation_item!(relation_key, relation_definition, data_hash)
+ def process_project_relation_item!(relation_key, relation_definition, relation_index, data_hash)
relation_object = build_relation(relation_key, relation_definition, data_hash)
return unless relation_object
return if group_model?(relation_object)
@@ -100,6 +103,25 @@ module Gitlab
relation_object.save!
save_id_mapping(relation_key, data_hash, relation_object)
+ rescue => e
+ # re-raise if not enabled
+ raise e unless Feature.enabled?(:import_graceful_failures, @project.group)
+
+ log_import_failure(relation_key, relation_index, e)
+ end
+
+ def log_import_failure(relation_key, relation_index, exception)
+ Gitlab::Sentry.track_acceptable_exception(exception,
+ extra: { project_id: @project.id, relation_key: relation_key, relation_index: relation_index })
+
+ ImportFailure.create(
+ project: @project,
+ relation_key: relation_key,
+ relation_index: relation_index,
+ exception_class: exception.class.to_s,
+ exception_message: exception.message.truncate(255),
+ correlation_id_value: Labkit::Correlation::CorrelationId.current_id
+ )
end
# Older, serialized CI pipeline exports may only have a
diff --git a/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb b/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb
index cddd4f18cc3..805283b0f93 100644
--- a/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb
+++ b/lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb
@@ -5,7 +5,7 @@ module Gitlab
module PerformanceBar
module RedisAdapterWhenPeekEnabled
def save(request_id)
- super if ::Gitlab::PerformanceBar.enabled_for_request? && request_id.present?
+ super if ::Gitlab::PerformanceBar.enabled_for_request?
end
end
end
diff --git a/lib/gitlab/url_builder.rb b/lib/gitlab/url_builder.rb
index 038067eeae4..5a9eef8288f 100644
--- a/lib/gitlab/url_builder.rb
+++ b/lib/gitlab/url_builder.rb
@@ -6,10 +6,10 @@ module Gitlab
include GitlabRoutingHelper
include ActionView::RecordIdentifier
- attr_reader :object
+ attr_reader :object, :opts
- def self.build(object)
- new(object).url
+ def self.build(object, opts = {})
+ new(object, opts).url
end
def url
@@ -24,10 +24,8 @@ module Gitlab
note_url
when WikiPage
wiki_page_url
- when ProjectSnippet
- project_snippet_url(object.project, object)
when Snippet
- snippet_url(object)
+ opts[:raw].present? ? raw_snippet_url(object) : snippet_url(object)
when Milestone
milestone_url(object)
when ::Ci::Build
@@ -41,8 +39,9 @@ module Gitlab
private
- def initialize(object)
+ def initialize(object, opts = {})
@object = object
+ @opts = opts
end
def commit_url(opts = {})
@@ -66,13 +65,7 @@ module Gitlab
merge_request_url(object.noteable, anchor: dom_id(object))
elsif object.for_snippet?
- snippet = object.noteable
-
- if snippet.is_a?(PersonalSnippet)
- snippet_url(snippet, anchor: dom_id(object))
- else
- project_snippet_url(snippet.project, snippet, anchor: dom_id(object))
- end
+ snippet_url(object.noteable, anchor: dom_id(object))
end
end
diff --git a/lib/gitlab/visibility_level.rb b/lib/gitlab/visibility_level.rb
index e2787744f09..a1d462ea9f5 100644
--- a/lib/gitlab/visibility_level.rb
+++ b/lib/gitlab/visibility_level.rb
@@ -115,6 +115,18 @@ module Gitlab
end
end
+ def visibility_level_decreased?
+ return false unless visibility_level_previous_changes
+
+ before, after = visibility_level_previous_changes
+
+ before && after && after < before
+ end
+
+ def visibility_level_previous_changes
+ previous_changes[:visibility_level]
+ end
+
def private?
visibility_level_value == PRIVATE
end