in app/helpers/merge_requests_helper.rb [582:714]
def merge_request_dashboard_data
is_author_or_assignee = ::Feature.enabled?(:merge_request_dashboard_author_or_assignee, current_user,
type: :gitlab_com_derisk)
if Feature.enabled?(:mr_dashboard_list_type_toggle, current_user, type: :beta) &&
current_user.merge_request_dashboard_list_type == 'role_based'
return merge_request_dashboard_role_based_data
end
{
tabs: [
{
title: s_('MergeRequestsTab|Active'),
key: '',
lists: [
[
{
id: 'returned_to_you',
title: _('Returned to you'),
helpContent: _('Reviewers left feedback, or requested changes from you, on these merge requests.'),
query: is_author_or_assignee ? 'authorOrAssigneeMergeRequests' : 'assignedMergeRequests',
variables: {
reviewStates: %w[REVIEWED REQUESTED_CHANGES],
ignoredReviewerUsername: ::Users::Internal.duo_code_review_bot.username
}
},
{
id: 'reviews_requested',
title: _('Review requested'),
helpContent: _('These merge requests need a review from you.'),
query: 'reviewRequestedMergeRequests',
variables: {
reviewStates: %w[UNAPPROVED UNREVIEWED REVIEW_STARTED]
}
},
{
id: 'assigned_to_you',
title: is_author_or_assignee ? _('Your merge requests') : _('Assigned to you'),
helpContent: if is_author_or_assignee
_("Merge requests you authored or are assigned to, " \
"without reviewers.")
else
_("You're assigned to these merge requests, but they don't have reviewers yet.")
end,
query: is_author_or_assignee ? 'authorOrAssigneeMergeRequests' : 'assignedMergeRequests',
variables: {
or: {
reviewerWildcard: 'NONE',
onlyReviewerUsername: ::Users::Internal.duo_code_review_bot.username
}
}
}
],
[
{
id: 'waiting_for_assignee',
title: is_author_or_assignee ? _('Waiting for author or assignee') : _('Waiting for assignee'),
hideCount: true,
helpContent: _(
"Your reviews you've requested changes for " \
"or commented on."
),
query: 'reviewRequestedMergeRequests',
variables: {
reviewStates: %w[REVIEWED REQUESTED_CHANGES]
}
},
{
id: 'waiting_for_approvals',
title: _('Waiting for approvals'),
hideCount: true,
helpContent: _('Your merge requests that are waiting for approvals.'),
query: is_author_or_assignee ? 'authorOrAssigneeMergeRequests' : 'assignedMergeRequests',
variables: {
ignoredReviewerUsername: ::Users::Internal.duo_code_review_bot.username,
reviewStates: %w[UNREVIEWED UNAPPROVED REVIEW_STARTED],
not: {
reviewStates: %w[REQUESTED_CHANGES REVIEWED]
}
}
},
{
id: 'approved_by_you',
title: _('Approved by you'),
hideCount: true,
helpContent: _("You've reviewed and approved these merge requests."),
query: 'reviewRequestedMergeRequests',
variables: {
reviewState: 'APPROVED'
}
},
{
id: 'approved_by_others',
title: _('Approved by others'),
hideCount: true,
helpContent: _('Your merge requests with approvals by all assigned reviewers.'),
query: is_author_or_assignee ? 'authorOrAssigneeMergeRequests' : 'assignedMergeRequests',
variables: {
ignoredReviewerUsername: ::Users::Internal.duo_code_review_bot.username,
reviewState: 'APPROVED',
not: {
reviewStates: %w[REQUESTED_CHANGES REVIEWED UNREVIEWED REVIEW_STARTED UNAPPROVED]
}
}
}
]
]
},
{
title: s_('MergeRequestsTab|Merged'),
key: 'merged',
lists: [
[{
id: 'merged_recently',
title: _('Merged recently'),
helpContent: _('These merge requests merged after %{date}. You were an assignee or a reviewer.') % {
date: l(2.weeks.ago.to_date, format: :long)
},
query: 'assigneeOrReviewerMergeRequests',
variables: {
state: 'merged',
mergedAfter: 2.weeks.ago.to_time.iso8601,
sort: 'MERGED_AT_DESC'
}
}]
]
}
]
}
end