Commit 4ab44e2f authored by Nikola Milojevic's avatar Nikola Milojevic

Merge branch 'fix-graphql-mr-merge-user-field' into 'master'

Fix GraphQL API mergeUser is null when mergeWhenPipelineSucceeds is false

See merge request gitlab-org/gitlab!76043
parents da8c9ccd a65d4e2b
...@@ -196,7 +196,7 @@ module Types ...@@ -196,7 +196,7 @@ module Types
field :auto_merge_strategy, GraphQL::Types::String, null: true, field :auto_merge_strategy, GraphQL::Types::String, null: true,
description: 'Selected auto merge strategy.' description: 'Selected auto merge strategy.'
field :merge_user, Types::UserType, null: true, field :merge_user, Types::UserType, null: true,
description: 'User who merged this merge request.' description: 'User who merged this merge request or set it to merge when pipeline succeeds.'
field :timelogs, Types::TimelogType.connection_type, null: false, field :timelogs, Types::TimelogType.connection_type, null: false,
description: 'Timelogs on the merge request.' description: 'Timelogs on the merge request.'
...@@ -276,6 +276,10 @@ module Types ...@@ -276,6 +276,10 @@ module Types
def reviewers def reviewers
object.reviewers object.reviewers
end end
def merge_user
object.metrics&.merged_by || object.merge_user
end
end end
end end
......
...@@ -11704,7 +11704,7 @@ Maven metadata. ...@@ -11704,7 +11704,7 @@ Maven metadata.
| <a id="mergerequestmergestatus"></a>`mergeStatus` **{warning-solid}** | [`String`](#string) | **Deprecated** in 14.0. This was renamed. Use: [`MergeRequest.mergeStatusEnum`](#mergerequestmergestatusenum). | | <a id="mergerequestmergestatus"></a>`mergeStatus` **{warning-solid}** | [`String`](#string) | **Deprecated** in 14.0. This was renamed. Use: [`MergeRequest.mergeStatusEnum`](#mergerequestmergestatusenum). |
| <a id="mergerequestmergestatusenum"></a>`mergeStatusEnum` | [`MergeStatus`](#mergestatus) | Merge status of the merge request. | | <a id="mergerequestmergestatusenum"></a>`mergeStatusEnum` | [`MergeStatus`](#mergestatus) | Merge status of the merge request. |
| <a id="mergerequestmergetrainscount"></a>`mergeTrainsCount` | [`Int`](#int) | Number of merge requests in the merge train. | | <a id="mergerequestmergetrainscount"></a>`mergeTrainsCount` | [`Int`](#int) | Number of merge requests in the merge train. |
| <a id="mergerequestmergeuser"></a>`mergeUser` | [`UserCore`](#usercore) | User who merged this merge request. | | <a id="mergerequestmergeuser"></a>`mergeUser` | [`UserCore`](#usercore) | User who merged this merge request or set it to merge when pipeline succeeds. |
| <a id="mergerequestmergewhenpipelinesucceeds"></a>`mergeWhenPipelineSucceeds` | [`Boolean`](#boolean) | Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS). | | <a id="mergerequestmergewhenpipelinesucceeds"></a>`mergeWhenPipelineSucceeds` | [`Boolean`](#boolean) | Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS). |
| <a id="mergerequestmergeable"></a>`mergeable` | [`Boolean!`](#boolean) | Indicates if the merge request is mergeable. | | <a id="mergerequestmergeable"></a>`mergeable` | [`Boolean!`](#boolean) | Indicates if the merge request is mergeable. |
| <a id="mergerequestmergeablediscussionsstate"></a>`mergeableDiscussionsState` | [`Boolean`](#boolean) | Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged. | | <a id="mergerequestmergeablediscussionsstate"></a>`mergeableDiscussionsState` | [`Boolean`](#boolean) | Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged. |
...@@ -133,4 +133,28 @@ RSpec.describe GitlabSchema.types['MergeRequest'] do ...@@ -133,4 +133,28 @@ RSpec.describe GitlabSchema.types['MergeRequest'] do
end end
end end
end end
describe '#merge_user' do
let_it_be(:project) { create(:project, :public) }
context 'when MR is merged' do
let(:merge_request) { create(:merge_request, :with_merged_metrics, target_project: project, source_project: project) }
it 'is not nil' do
value = resolve_field(:merge_user, merge_request)
expect(value).not_to be_nil
end
end
context 'when MR is set to merge when pipeline succeeds' do
let(:merge_request) { create(:merge_request, :merge_when_pipeline_succeeds, target_project: project, source_project: project) }
it 'is not nil' do
value = resolve_field(:merge_user, merge_request)
expect(value).not_to be_nil
end
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment