Show mentioned/issues being closed from a Merge Requests title
This commit is contained in:
parent
027a4bd274
commit
217937e569
3 changed files with 36 additions and 5 deletions
|
@ -561,7 +561,7 @@ class MergeRequest < ActiveRecord::Base
|
|||
# Return the set of issues that will be closed if this merge request is accepted.
|
||||
def closes_issues(current_user = self.author)
|
||||
if target_branch == project.default_branch
|
||||
messages = [description]
|
||||
messages = [title, description]
|
||||
messages.concat(commits.map(&:safe_message)) if merge_request_diff
|
||||
|
||||
Gitlab::ClosingIssueExtractor.new(project, current_user).
|
||||
|
@ -575,7 +575,7 @@ class MergeRequest < ActiveRecord::Base
|
|||
return [] unless target_branch == project.default_branch
|
||||
|
||||
ext = Gitlab::ReferenceExtractor.new(project, current_user)
|
||||
ext.analyze(description)
|
||||
ext.analyze("#{title}\n#{description}")
|
||||
|
||||
ext.issues - closes_issues(current_user)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Show Issues mentioned / being closed from a Merge Requests title below the
|
||||
'Accept Merge Request' button
|
||||
merge_request: 9194
|
||||
author: Jan Christophersen
|
|
@ -10,10 +10,12 @@ feature 'Merge Request closing issues message', feature: true do
|
|||
:merge_request,
|
||||
:simple,
|
||||
source_project: project,
|
||||
description: merge_request_description
|
||||
description: merge_request_description,
|
||||
title: merge_request_title
|
||||
)
|
||||
end
|
||||
let(:merge_request_description) { 'Merge Request Description' }
|
||||
let(:merge_request_title) { 'Merge Request Title' }
|
||||
|
||||
before do
|
||||
project.team << [user, :master]
|
||||
|
@ -45,8 +47,32 @@ feature 'Merge Request closing issues message', feature: true do
|
|||
end
|
||||
end
|
||||
|
||||
context 'closing some issues and mentioning, but not closing, others' do
|
||||
let(:merge_request_description) { "Description\n\ncloses #{issue_1.to_reference}\n\n refers to #{issue_2.to_reference}" }
|
||||
context 'closing some issues in title and mentioning, but not closing, others' do
|
||||
let(:merge_request_title) { "closes #{issue_1.to_reference}\n\n refers to #{issue_2.to_reference}" }
|
||||
|
||||
it 'does not display closing issue message' do
|
||||
expect(page).to have_content("Accepting this merge request will close issue #{issue_1.to_reference}. Issue #{issue_2.to_reference} is mentioned but will not be closed.")
|
||||
end
|
||||
end
|
||||
|
||||
context 'closing issues using title but not mentioning any other issue' do
|
||||
let(:merge_request_title) { "closing #{issue_1.to_reference}, #{issue_2.to_reference}" }
|
||||
|
||||
it 'does not display closing issue message' do
|
||||
expect(page).to have_content("Accepting this merge request will close issues #{issue_1.to_reference} and #{issue_2.to_reference}")
|
||||
end
|
||||
end
|
||||
|
||||
context 'mentioning issues using title but not closing them' do
|
||||
let(:merge_request_title) { "Refers to #{issue_1.to_reference} and #{issue_2.to_reference}" }
|
||||
|
||||
it 'does not display closing issue message' do
|
||||
expect(page).to have_content("Issues #{issue_1.to_reference} and #{issue_2.to_reference} are mentioned but will not be closed.")
|
||||
end
|
||||
end
|
||||
|
||||
context 'closing some issues using title and mentioning, but not closing, others' do
|
||||
let(:merge_request_title) { "closes #{issue_1.to_reference}\n\n refers to #{issue_2.to_reference}" }
|
||||
|
||||
it 'does not display closing issue message' do
|
||||
expect(page).to have_content("Accepting this merge request will close issue #{issue_1.to_reference}. Issue #{issue_2.to_reference} is mentioned but will not be closed.")
|
||||
|
|
Loading…
Reference in a new issue