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>2022-08-18 11:17:02 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-08-18 11:17:02 +0300
commitb39512ed755239198a9c294b6a45e65c05900235 (patch)
treed234a3efade1de67c46b9e5a38ce813627726aa7 /app/controllers/concerns
parentd31474cf3b17ece37939d20082b07f6657cc79a9 (diff)
Add latest changes from gitlab-org/gitlab@15-3-stable-eev15.3.0-rc42
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r--app/controllers/concerns/accepts_pending_invitations.rb14
-rw-r--r--app/controllers/concerns/creates_commit.rb3
-rw-r--r--app/controllers/concerns/issuable_actions.rb16
-rw-r--r--app/controllers/concerns/notes_actions.rb3
-rw-r--r--app/controllers/concerns/product_analytics_tracking.rb37
-rw-r--r--app/controllers/concerns/redis_tracking.rb2
-rw-r--r--app/controllers/concerns/uploads_actions.rb6
7 files changed, 64 insertions, 17 deletions
diff --git a/app/controllers/concerns/accepts_pending_invitations.rb b/app/controllers/concerns/accepts_pending_invitations.rb
index 5601b7a7f79..53dec698fa0 100644
--- a/app/controllers/concerns/accepts_pending_invitations.rb
+++ b/app/controllers/concerns/accepts_pending_invitations.rb
@@ -3,12 +3,12 @@
module AcceptsPendingInvitations
extend ActiveSupport::Concern
- def accept_pending_invitations
- return unless resource.active_for_authentication?
+ def accept_pending_invitations(user: resource)
+ return unless user.active_for_authentication?
- if resource.pending_invitations.load.any?
- resource.accept_pending_invitations!
- clear_stored_location_for_resource
+ if user.pending_invitations.load.any?
+ user.accept_pending_invitations!
+ clear_stored_location_for(user: user)
after_pending_invitations_hook
end
end
@@ -17,8 +17,8 @@ module AcceptsPendingInvitations
# no-op
end
- def clear_stored_location_for_resource
- session_key = stored_location_key_for(resource)
+ def clear_stored_location_for(user:)
+ session_key = stored_location_key_for(user)
session.delete(session_key)
end
diff --git a/app/controllers/concerns/creates_commit.rb b/app/controllers/concerns/creates_commit.rb
index 0fb77e2aaf4..b6ba1b13cc3 100644
--- a/app/controllers/concerns/creates_commit.rb
+++ b/app/controllers/concerns/creates_commit.rb
@@ -98,8 +98,7 @@ module CreatesCommit
project_new_merge_request_path(
@project_to_commit_into,
merge_request: {
- source_project_id: @project_to_commit_into.id,
- target_project_id: target_project.id,
+ target_project_id: @project_to_commit_into.default_merge_request_target.id,
source_branch: @branch_name,
target_branch: @start_branch
}
diff --git a/app/controllers/concerns/issuable_actions.rb b/app/controllers/concerns/issuable_actions.rb
index a5e49b1b16a..f1d80e37674 100644
--- a/app/controllers/concerns/issuable_actions.rb
+++ b/app/controllers/concerns/issuable_actions.rb
@@ -171,7 +171,7 @@ module IssuableActions
discussions = Discussion.build_collection(notes, issuable)
if issuable.is_a?(MergeRequest)
- render_cached(discussions, with: discussion_serializer, cache_context: -> (_) { discussion_cache_context }, context: self)
+ render_mr_discussions(discussions, discussion_serializer, discussion_cache_context)
elsif issuable.is_a?(Issue)
render json: discussion_serializer.represent(discussions, context: self) if stale?(etag: [discussion_cache_context, discussions])
else
@@ -182,6 +182,20 @@ module IssuableActions
private
+ def render_mr_discussions(discussions, serializer, cache_context)
+ return unless stale?(etag: [cache_context, discussions])
+
+ if Feature.enabled?(:disabled_mr_discussions_redis_cache, project)
+ render json: serializer.represent(discussions, context: self)
+ else
+ render_cached_discussions(discussions, serializer, cache_context)
+ end
+ end
+
+ def render_cached_discussions(discussions, serializer, cache_context)
+ render_cached(discussions, with: serializer, cache_context: -> (_) { cache_context }, context: self)
+ end
+
def paginated_discussions
return if params[:per_page].blank?
return if issuable.instance_of?(MergeRequest) && Feature.disabled?(:paginated_mr_discussions, project)
diff --git a/app/controllers/concerns/notes_actions.rb b/app/controllers/concerns/notes_actions.rb
index 928c617471b..b595c3c6790 100644
--- a/app/controllers/concerns/notes_actions.rb
+++ b/app/controllers/concerns/notes_actions.rb
@@ -217,7 +217,8 @@ module NotesActions
:note,
:line_code, # LegacyDiffNote
:position, # DiffNote
- :confidential
+ :confidential,
+ :internal
).tap do |create_params|
create_params.merge!(
params.permit(:merge_request_diff_head_sha, :in_reply_to_discussion_id)
diff --git a/app/controllers/concerns/product_analytics_tracking.rb b/app/controllers/concerns/product_analytics_tracking.rb
index dc7ba8295b9..260b433cc6f 100644
--- a/app/controllers/concerns/product_analytics_tracking.rb
+++ b/app/controllers/concerns/product_analytics_tracking.rb
@@ -13,6 +13,14 @@ module ProductAnalyticsTracking
route_events_to(destinations, name, &block)
end
end
+
+ def track_custom_event(*controller_actions, name:, conditions: nil, action:, label:, destinations: [:redis_hll], &block)
+ custom_conditions = [:trackable_html_request?, *conditions]
+
+ after_action only: controller_actions, if: custom_conditions do
+ route_custom_events_to(destinations, name, action, label, &block)
+ end
+ end
end
private
@@ -25,13 +33,40 @@ module ProductAnalyticsTracking
end
end
+ def route_custom_events_to(destinations, name, action, label, &block)
+ track_unique_redis_hll_event(name, &block) if destinations.include?(:redis_hll)
+
+ return unless destinations.include?(:snowplow) && event_enabled?(name)
+
+ optional_arguments = {
+ namespace: tracking_namespace_source,
+ project: tracking_project_source
+ }.compact
+
+ Gitlab::Tracking.event(
+ self.class.to_s,
+ action,
+ user: current_user,
+ property: name,
+ label: label,
+ **optional_arguments
+ )
+ end
+
def event_enabled?(event)
events_to_ff = {
g_analytics_valuestream: :route_hll_to_snowplow,
i_search_paid: :route_hll_to_snowplow_phase2,
i_search_total: :route_hll_to_snowplow_phase2,
- i_search_advanced: :route_hll_to_snowplow_phase2
+ i_search_advanced: :route_hll_to_snowplow_phase2,
+ i_ecosystem_jira_service_list_issues: :route_hll_to_snowplow_phase2,
+ users_viewing_analytics_group_devops_adoption: :route_hll_to_snowplow_phase2,
+ i_analytics_dev_ops_adoption: :route_hll_to_snowplow_phase2,
+ i_analytics_dev_ops_score: :route_hll_to_snowplow_phase2,
+ p_analytics_merge_request: :route_hll_to_snowplow_phase2,
+ i_analytics_instance_statistics: :route_hll_to_snowplow_phase2,
+ g_analytics_contribution: :route_hll_to_snowplow_phase2
}
Feature.enabled?(events_to_ff[event.to_sym], tracking_namespace_source)
diff --git a/app/controllers/concerns/redis_tracking.rb b/app/controllers/concerns/redis_tracking.rb
index c1135d2f759..445e72b8266 100644
--- a/app/controllers/concerns/redis_tracking.rb
+++ b/app/controllers/concerns/redis_tracking.rb
@@ -29,7 +29,7 @@ module RedisTracking
private
def track_unique_redis_hll_event(event_name, &block)
- custom_id = block_given? ? yield(self) : nil
+ custom_id = block ? yield(self) : nil
unique_id = custom_id || visitor_id
diff --git a/app/controllers/concerns/uploads_actions.rb b/app/controllers/concerns/uploads_actions.rb
index f914e804e18..e98d36854f1 100644
--- a/app/controllers/concerns/uploads_actions.rb
+++ b/app/controllers/concerns/uploads_actions.rb
@@ -143,10 +143,8 @@ module UploadsActions
end
def bypass_auth_checks_on_uploads?
- if ::Feature.enabled?(:enforce_auth_checks_on_uploads, target_project)
- if target_project && !target_project.public? && target_project.enforce_auth_checks_on_uploads?
- return false
- end
+ if target_project && !target_project.public? && target_project.enforce_auth_checks_on_uploads?
+ return false
end
action_name == 'show' && embeddable?