Change issue show page to group MRs by projects and namespaces
Closes #26466.
This commit is contained in:
parent
5b73e0eb35
commit
9abbe3cc86
|
@ -121,8 +121,7 @@ class Projects::IssuesController < Projects::ApplicationController
|
|||
end
|
||||
|
||||
def referenced_merge_requests
|
||||
@merge_requests = @issue.referenced_merge_requests(current_user)
|
||||
@closed_by_merge_requests = @issue.closed_by_merge_requests(current_user)
|
||||
@merge_requests, @closed_by_merge_requests = ::Issues::FetchReferencedMergeRequestsService.new(project, current_user).execute(issue)
|
||||
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
module Issues
|
||||
class FetchReferencedMergeRequestsService < Issues::BaseService
|
||||
def execute(issue)
|
||||
referenced_merge_requests = issue.referenced_merge_requests(current_user)
|
||||
referenced_merge_requests = Gitlab::IssuableSorter.sort(project, referenced_merge_requests) { |i| i.iid.to_s }
|
||||
closed_by_merge_requests = issue.closed_by_merge_requests(current_user)
|
||||
closed_by_merge_requests = Gitlab::IssuableSorter.sort(project, closed_by_merge_requests) { |i| i.iid.to_s }
|
||||
|
||||
[referenced_merge_requests, closed_by_merge_requests]
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Group MRs on issue page by project and namespace.
|
||||
merge_request: 8494
|
||||
author: Jeff Stubler
|
|
@ -0,0 +1,35 @@
|
|||
require 'spec_helper.rb'
|
||||
|
||||
describe Issues::FetchReferencedMergeRequestsService do
|
||||
let(:project) { create(:project) }
|
||||
let(:issue) { create(:issue, project: project) }
|
||||
let(:other_project) { create(:project) }
|
||||
|
||||
let(:mr) { create(:merge_request, source_project: project, target_project: project, id: 2)}
|
||||
let(:other_mr) { create(:merge_request, source_project: other_project, target_project: other_project, id: 1)}
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:service) { described_class.new(project, user) }
|
||||
|
||||
context 'with mentioned merge requests' do
|
||||
it 'returns a list of sorted merge requests' do
|
||||
allow(issue).to receive(:referenced_merge_requests).with(user).and_return([other_mr, mr])
|
||||
|
||||
mrs, closed_by_mrs = service.execute(issue)
|
||||
|
||||
expect(mrs).to match_array([mr, other_mr])
|
||||
expect(closed_by_mrs).to match_array([])
|
||||
end
|
||||
end
|
||||
|
||||
context 'with closed-by merge requests' do
|
||||
it 'returns a list of sorted merge requests' do
|
||||
allow(issue).to receive(:closed_by_merge_requests).with(user).and_return([other_mr, mr])
|
||||
|
||||
mrs, closed_by_mrs = service.execute(issue)
|
||||
|
||||
expect(mrs).to match_array([])
|
||||
expect(closed_by_mrs).to match_array([mr, other_mr])
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue