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>2023-08-29 00:10:41 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-08-29 00:10:41 +0300
commit9a4a8e6be70657c1a30b0c602ea2ba58576257fe (patch)
tree6a276e9b1171830765fec54bdd064849da484b2e /app
parent672c5fcf46b385257ce01c2f773a65aa3578175d (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/repository/components/last_commit.vue22
-rw-r--r--app/controllers/projects/environments_controller.rb6
-rw-r--r--app/controllers/projects/jobs_controller.rb8
-rw-r--r--app/mailers/emails/profile.rb2
-rw-r--r--app/models/group.rb12
-rw-r--r--app/models/project.rb3
-rw-r--r--app/models/project_team.rb1
-rw-r--r--app/services/groups/destroy_service.rb5
-rw-r--r--app/services/merge_requests/create_ref_service.rb4
-rw-r--r--app/services/projects/destroy_service.rb6
-rw-r--r--app/views/notify/new_email_address_added_email.html.haml (renamed from app/views/notify/new_email_address_added_email.haml)0
-rw-r--r--app/views/notify/new_email_address_added_email.text.erb (renamed from app/views/notify/new_email_address_added_email.erb)0
12 files changed, 39 insertions, 30 deletions
diff --git a/app/assets/javascripts/repository/components/last_commit.vue b/app/assets/javascripts/repository/components/last_commit.vue
index fa51ef30546..e03bec1c922 100644
--- a/app/assets/javascripts/repository/components/last_commit.vue
+++ b/app/assets/javascripts/repository/components/last_commit.vue
@@ -4,7 +4,7 @@ import SafeHtml from '~/vue_shared/directives/safe_html';
import defaultAvatarUrl from 'images/no_avatar.png';
import pathLastCommitQuery from 'shared_queries/repository/path_last_commit.query.graphql';
import { sprintf, s__ } from '~/locale';
-import CiIcon from '~/vue_shared/components/ci_icon.vue';
+import CiBadgeLink from '~/vue_shared/components/ci_badge_link.vue';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
import TimeagoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';
@@ -20,13 +20,13 @@ export default {
UserAvatarLink,
TimeagoTooltip,
ClipboardButton,
- CiIcon,
GlButton,
GlButtonGroup,
GlLink,
GlLoadingIcon,
UserAvatarImage,
SignatureBadge,
+ CiBadgeLink,
},
directives: {
GlTooltip: GlTooltipDirective,
@@ -191,18 +191,14 @@ export default {
>
<signature-badge v-if="commit.signature" :signature="commit.signature" />
<div v-if="commit.pipeline" class="ci-status-link">
- <gl-link
- v-gl-tooltip.left
- :href="commit.pipeline.detailedStatus.detailsPath"
- :title="statusTitle"
+ <ci-badge-link
+ :status="commit.pipeline.detailedStatus"
+ :details-path="commit.pipeline.detailedStatus.detailsPath"
+ :aria-label="statusTitle"
+ badge-size="lg"
+ :show-text="false"
class="js-commit-pipeline"
- >
- <ci-icon
- :status="commit.pipeline.detailedStatus"
- :size="24"
- :aria-label="statusTitle"
- />
- </gl-link>
+ />
</div>
<gl-button-group class="gl-ml-4 js-commit-sha-group">
<gl-button label class="gl-font-monospace" data-testid="last-commit-id-label">{{
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index e1e0bb83b40..f17b70cf62a 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -109,10 +109,8 @@ class Projects::EnvironmentsController < Projects::ApplicationController
job = stop_actions.first if stop_actions&.count == 1
action_or_env_url =
- if job.instance_of?(::Ci::Build)
- polymorphic_url([project, job])
- elsif job.instance_of?(::Ci::Bridge)
- project_pipeline_url(project, job.pipeline_id)
+ if job
+ project_job_url(project, job)
else
project_environment_url(project, @environment)
end
diff --git a/app/controllers/projects/jobs_controller.rb b/app/controllers/projects/jobs_controller.rb
index 4e0b304a2ee..cdce9f883f2 100644
--- a/app/controllers/projects/jobs_controller.rb
+++ b/app/controllers/projects/jobs_controller.rb
@@ -8,8 +8,8 @@ class Projects::JobsController < Projects::ApplicationController
urgency :low, [:index, :show, :trace, :retry, :play, :cancel, :unschedule, :erase, :raw]
- before_action :find_job_as_build, except: [:index, :play, :retry]
- before_action :find_job_as_processable, only: [:play, :retry]
+ before_action :find_job_as_build, except: [:index, :play, :retry, :show]
+ before_action :find_job_as_processable, only: [:play, :retry, :show]
before_action :authorize_read_build_trace!, only: [:trace, :raw]
before_action :authorize_read_build!
before_action :authorize_update_build!,
@@ -38,6 +38,10 @@ class Projects::JobsController < Projects::ApplicationController
end
def show
+ if @build.instance_of?(::Ci::Bridge)
+ redirect_to project_pipeline_path(@build.downstream_pipeline.project, @build.downstream_pipeline.id)
+ end
+
respond_to do |format|
format.html
format.json do
diff --git a/app/mailers/emails/profile.rb b/app/mailers/emails/profile.rb
index 25d68d47228..b7ba21c6f12 100644
--- a/app/mailers/emails/profile.rb
+++ b/app/mailers/emails/profile.rb
@@ -155,7 +155,7 @@ module Emails
@user = user
@email = email
- mail_with_locale(to: @user.notification_email_or_default, subject: subject(_("New email address added")))
+ email_with_layout(to: @user.notification_email_or_default, subject: subject(_("New email address added")))
end
def new_achievement_email(user, achievement)
diff --git a/app/models/group.rb b/app/models/group.rb
index 9df3c143e0c..944566bce94 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -36,10 +36,10 @@ class Group < Namespace
alias_method :members, :group_members
has_many :users, through: :group_members
- has_many :owners,
- -> { where(members: { access_level: Gitlab::Access::OWNER }) },
- through: :all_group_members,
- source: :user
+ has_many :owners, -> {
+ where(members: { access_level: Gitlab::Access::OWNER })
+ .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/422405")
+ }, through: :all_group_members, source: :user
has_many :requesters, -> { where.not(requested_at: nil) }, dependent: :destroy, as: :source, class_name: 'GroupMember' # rubocop:disable Cop/ActiveRecordDependent
has_many :namespace_requesters, -> { where.not(requested_at: nil).unscope(where: %i[source_id source_type]) },
@@ -341,6 +341,10 @@ class Group < Namespace
end
end
+ def users
+ super.loaded? ? super : super.allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/422405")
+ end
+
# Overrides notification_settings has_many association
# This allows to apply notification settings from parent groups
# to child groups and projects.
diff --git a/app/models/project.rb b/app/models/project.rb
index 3d97628c216..185ab947a8d 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -338,7 +338,8 @@ class Project < ApplicationRecord
primary_key: :project_namespace_id, foreign_key: :member_namespace_id, inverse_of: :project,
class_name: 'ProjectMember'
- has_many :users, through: :project_members
+ has_many :users, -> { allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/422405") },
+ through: :project_members
has_many :project_callouts, class_name: 'Users::ProjectCallout', foreign_key: :project_id
diff --git a/app/models/project_team.rb b/app/models/project_team.rb
index 3b9b82ee094..34754f4fc95 100644
--- a/app/models/project_team.rb
+++ b/app/models/project_team.rb
@@ -80,6 +80,7 @@ class ProjectTeam
# so we filter out only members of project or project's group
def members_in_project_and_ancestors
members.where(id: member_user_ids)
+ .allow_cross_joins_across_databases(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/422405')
end
def members_with_access_levels(access_levels = [])
diff --git a/app/services/groups/destroy_service.rb b/app/services/groups/destroy_service.rb
index 45e8972213e..0b54de469f8 100644
--- a/app/services/groups/destroy_service.rb
+++ b/app/services/groups/destroy_service.rb
@@ -83,7 +83,10 @@ module Groups
# rubocop:disable CodeReuse/ActiveRecord
def destroy_group_bots
- bot_ids = group.members_and_requesters.joins(:user).merge(User.project_bot).pluck(:user_id)
+ bot_ids = group.members_and_requesters.joins(:user)
+ .merge(User.project_bot)
+ .allow_cross_joins_across_databases(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/422405')
+ .pluck(:user_id)
current_user_id = current_user.id
group.run_after_commit do
diff --git a/app/services/merge_requests/create_ref_service.rb b/app/services/merge_requests/create_ref_service.rb
index e0f10183bac..b0039cfbf69 100644
--- a/app/services/merge_requests/create_ref_service.rb
+++ b/app/services/merge_requests/create_ref_service.rb
@@ -25,9 +25,7 @@ module MergeRequests
source_sha = initial_source_sha # the SHA to be the merged result of the source (minus the merge commit)
expected_old_oid = "" # the SHA we expect target_ref to be at prior to an update (an optimistic lock)
- # TODO: Update this message with the removal of FF merge_trains_create_ref_service and update tests
- # This is for compatibility with MergeToRefService during the rollout.
- return ServiceResponse.error(message: '3:Invalid merge source') unless first_parent_sha.present?
+ return ServiceResponse.error(message: 'Invalid merge source') unless first_parent_sha.present?
commit_sha, source_sha, expected_old_oid = maybe_squash!(commit_sha, source_sha, expected_old_oid)
commit_sha, source_sha, expected_old_oid = maybe_rebase!(commit_sha, source_sha, expected_old_oid)
diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb
index 0ae6fcb4d97..a2a2f9d2800 100644
--- a/app/services/projects/destroy_service.rb
+++ b/app/services/projects/destroy_service.rb
@@ -255,7 +255,11 @@ module Projects
# We need to remove them when a project is deleted
# rubocop: disable CodeReuse/ActiveRecord
def destroy_project_bots!
- project.members.includes(:user).references(:user).merge(User.project_bot).each do |member|
+ members = project.members
+ .allow_cross_joins_across_databases(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/422405')
+ .includes(:user).references(:user).merge(User.project_bot)
+
+ members.each do |member|
Users::DestroyService.new(current_user).execute(member.user, skip_authorization: true)
end
end
diff --git a/app/views/notify/new_email_address_added_email.haml b/app/views/notify/new_email_address_added_email.html.haml
index 6d00aaedfd5..6d00aaedfd5 100644
--- a/app/views/notify/new_email_address_added_email.haml
+++ b/app/views/notify/new_email_address_added_email.html.haml
diff --git a/app/views/notify/new_email_address_added_email.erb b/app/views/notify/new_email_address_added_email.text.erb
index 3af1953c902..3af1953c902 100644
--- a/app/views/notify/new_email_address_added_email.erb
+++ b/app/views/notify/new_email_address_added_email.text.erb