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:
Diffstat (limited to 'app/graphql/mutations/merge_requests')
-rw-r--r--app/graphql/mutations/merge_requests/create.rb10
-rw-r--r--app/graphql/mutations/merge_requests/reviewer_rereview.rb27
-rw-r--r--app/graphql/mutations/merge_requests/update.rb11
3 files changed, 37 insertions, 11 deletions
diff --git a/app/graphql/mutations/merge_requests/create.rb b/app/graphql/mutations/merge_requests/create.rb
index 64fa8417e50..9ac8f70be95 100644
--- a/app/graphql/mutations/merge_requests/create.rb
+++ b/app/graphql/mutations/merge_requests/create.rb
@@ -3,7 +3,7 @@
module Mutations
module MergeRequests
class Create < BaseMutation
- include ResolvesProject
+ include FindsProject
graphql_name 'MergeRequestCreate'
@@ -39,7 +39,7 @@ module Mutations
authorize :create_merge_request_from
def resolve(project_path:, **attributes)
- project = authorized_find!(full_path: project_path)
+ project = authorized_find!(project_path)
params = attributes.merge(author_id: current_user.id)
merge_request = ::MergeRequests::CreateService.new(project, current_user, params).execute
@@ -49,12 +49,6 @@ module Mutations
errors: errors_on_object(merge_request)
}
end
-
- private
-
- def find_object(full_path:)
- resolve_project(full_path: full_path)
- end
end
end
end
diff --git a/app/graphql/mutations/merge_requests/reviewer_rereview.rb b/app/graphql/mutations/merge_requests/reviewer_rereview.rb
new file mode 100644
index 00000000000..f6f4881654e
--- /dev/null
+++ b/app/graphql/mutations/merge_requests/reviewer_rereview.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Mutations
+ module MergeRequests
+ class ReviewerRereview < Base
+ graphql_name 'MergeRequestReviewerRereview'
+
+ argument :user_id, ::Types::GlobalIDType[::User],
+ loads: Types::UserType,
+ required: true,
+ description: <<~DESC
+ The user ID for the user that has been requested for a new review.
+ DESC
+
+ def resolve(project_path:, iid:, user:)
+ merge_request = authorized_find!(project_path: project_path, iid: iid)
+
+ result = ::MergeRequests::RequestReviewService.new(merge_request.project, current_user).execute(merge_request, user)
+
+ {
+ merge_request: merge_request,
+ errors: Array(result[:message])
+ }
+ end
+ end
+ end
+end
diff --git a/app/graphql/mutations/merge_requests/update.rb b/app/graphql/mutations/merge_requests/update.rb
index 4721ebab41b..6a94d2f37b2 100644
--- a/app/graphql/mutations/merge_requests/update.rb
+++ b/app/graphql/mutations/merge_requests/update.rb
@@ -19,9 +19,14 @@ module Mutations
required: false,
description: copy_field_description(Types::MergeRequestType, :description)
- def resolve(args)
- merge_request = authorized_find!(**args.slice(:project_path, :iid))
- attributes = args.slice(:title, :description, :target_branch).compact
+ argument :state, ::Types::MergeRequestStateEventEnum,
+ required: false,
+ as: :state_event,
+ description: 'The action to perform to change the state.'
+
+ def resolve(project_path:, iid:, **args)
+ merge_request = authorized_find!(project_path: project_path, iid: iid)
+ attributes = args.compact
::MergeRequests::UpdateService
.new(merge_request.project, current_user, attributes)