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-02-10 21:18:16 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-02-10 21:18:16 +0300
commite0277d5393d958865fdec470176ac5874edded06 (patch)
treef867094e393909ef822e354b1c72997ec5102f6f /lib/gitlab/quick_actions
parent74d9798736a89f07e047698e5e32964829bf8859 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/quick_actions')
-rw-r--r--lib/gitlab/quick_actions/merge_request_actions.rb75
1 files changed, 75 insertions, 0 deletions
diff --git a/lib/gitlab/quick_actions/merge_request_actions.rb b/lib/gitlab/quick_actions/merge_request_actions.rb
index 03f5ffd37ae..842d4ef482b 100644
--- a/lib/gitlab/quick_actions/merge_request_actions.rb
+++ b/lib/gitlab/quick_actions/merge_request_actions.rb
@@ -57,6 +57,11 @@ module Gitlab
access_check.can_push_to_branch?(merge_request.source_branch)
end
command :rebase do
+ unless quick_action_target.permits_force_push?
+ @execution_message[:rebase] = _('This merge request branch is protected from force push.')
+ next
+ end
+
if quick_action_target.cannot_be_merged?
@execution_message[:rebase] = _('This merge request cannot be rebased while there are conflicts.')
next
@@ -249,6 +254,76 @@ module Gitlab
@updates[:reviewer_ids] = []
end
end
+
+ desc do
+ if quick_action_target.allows_multiple_reviewers?
+ _('Request attention from assignee(s) or reviewer(s)')
+ else
+ _('Request attention from assignee or reviewer')
+ end
+ end
+ explanation do |users|
+ _('Request attention from %{users_sentence}.') % { users_sentence: reviewer_users_sentence(users) }
+ end
+ execution_message do |users = nil|
+ if users.blank?
+ _("Failed to request attention because no user was found.")
+ else
+ _('Requested attention from %{users_sentence}.') % { users_sentence: reviewer_users_sentence(users) }
+ end
+ end
+ params do
+ quick_action_target.allows_multiple_reviewers? ? '@user1 @user2' : '@user'
+ end
+ types MergeRequest
+ condition do
+ Feature.enabled?(:mr_attention_requests, project, default_enabled: :yaml) &&
+ current_user.can?(:"admin_#{quick_action_target.to_ability_name}", project)
+ end
+ parse_params do |attention_param|
+ extract_users(attention_param)
+ end
+ command :attention do |users|
+ next if users.empty?
+
+ users.each do |user|
+ ::MergeRequests::ToggleAttentionRequestedService.new(project: quick_action_target.project, merge_request: quick_action_target, current_user: current_user, user: user).execute
+ end
+ end
+
+ desc do
+ if quick_action_target.allows_multiple_reviewers?
+ _('Remove attention request(s)')
+ else
+ _('Remove attention request')
+ end
+ end
+ explanation do |users|
+ _('Removes attention from %{users_sentence}.') % { users_sentence: reviewer_users_sentence(users) }
+ end
+ execution_message do |users = nil|
+ if users.blank?
+ _("Failed to remove attention because no user was found.")
+ else
+ _('Removed attention from %{users_sentence}.') % { users_sentence: reviewer_users_sentence(users) }
+ end
+ end
+ params do
+ quick_action_target.allows_multiple_reviewers? ? '@user1 @user2' : '@user'
+ end
+ types MergeRequest
+ condition do
+ Feature.enabled?(:mr_attention_requests, project, default_enabled: :yaml) &&
+ current_user.can?(:"admin_#{quick_action_target.to_ability_name}", project)
+ end
+ parse_params do |attention_param|
+ extract_users(attention_param)
+ end
+ command :remove_attention do |users|
+ next if users.empty?
+
+ ::MergeRequests::BulkRemoveAttentionRequestedService.new(project: quick_action_target.project, merge_request: quick_action_target, current_user: current_user, users: users).execute
+ end
end
def reviewer_users_sentence(users)