Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
f0e7d79c
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f0e7d79c
编写于
2月 02, 2018
作者:
A
Andrew McCallum
提交者:
Sean McGivern
2月 02, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Resolve "Incorrect merge request title when Jira activated and multiple commits on branch"
上级
283ace44
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
81 addition
and
12 deletion
+81
-12
app/services/merge_requests/build_service.rb
app/services/merge_requests/build_service.rb
+23
-7
changelogs/unreleased/40793-fix-mr-title-for-jira.yml
changelogs/unreleased/40793-fix-mr-title-for-jira.yml
+5
-0
spec/services/merge_requests/build_service_spec.rb
spec/services/merge_requests/build_service_spec.rb
+53
-5
未找到文件。
app/services/merge_requests/build_service.rb
浏览文件 @
f0e7d79c
module
MergeRequests
class
BuildService
<
MergeRequests
::
BaseService
include
Gitlab
::
Utils
::
StrongMemoize
def
execute
@issue_iid
=
params
.
delete
(
:issue_iid
)
@
params_
issue_iid
=
params
.
delete
(
:issue_iid
)
self
.
merge_request
=
MergeRequest
.
new
(
params
)
merge_request
.
compare_commits
=
[]
...
...
@@ -123,7 +125,7 @@ module MergeRequests
#
def
assign_title_and_description
assign_title_and_description_from_single_commit
assign_title_from_issue
assign_title_from_issue
if
target_project
.
issues_enabled?
||
target_project
.
external_issue_tracker
merge_request
.
title
||=
source_branch
.
titleize
.
humanize
merge_request
.
title
=
wip_title
if
compare_commits
.
empty?
...
...
@@ -132,9 +134,9 @@ module MergeRequests
end
def
append_closes_description
return
unless
issue
_iid
return
unless
issue
closes_issue
=
"Closes #
#{
issue_iid
}
"
closes_issue
=
"Closes
#
{
issue
.
to_reference
}
"
if
description
.
present?
merge_request
.
description
+=
closes_issue
.
prepend
(
"
\n\n
"
)
...
...
@@ -154,13 +156,27 @@ module MergeRequests
end
def
assign_title_from_issue
return
unless
issue
&&
issue
.
is_a?
(
Issue
)
return
unless
issue
merge_request
.
title
=
"Resolve
\"
#{
issue
.
title
}
\"
"
if
issue
.
is_a?
(
Issue
)
merge_request
.
title
=
"Resolve
\"
#{
issue
.
title
}
\"
"
unless
merge_request
.
title
branch_title
=
source_branch
.
downcase
.
remove
(
issue_iid
.
downcase
).
titleize
.
humanize
merge_request
.
title
=
"Resolve
#{
issue_iid
}
"
merge_request
.
title
+=
"
\"
#{
branch_title
}
\"
"
unless
branch_title
.
empty?
end
end
def
issue_iid
@issue_iid
||=
source_branch
.
match
(
/\A(\d+)-/
).
try
(
:[]
,
1
)
strong_memoize
(
:issue_iid
)
do
@params_issue_iid
||
begin
id
=
if
target_project
.
external_issue_tracker
source_branch
.
match
(
target_project
.
external_issue_reference_pattern
).
try
(
:[]
,
0
)
end
id
||
source_branch
.
match
(
/\A(\d+)-/
).
try
(
:[]
,
1
)
end
end
end
def
issue
...
...
changelogs/unreleased/40793-fix-mr-title-for-jira.yml
0 → 100644
浏览文件 @
f0e7d79c
---
title
:
Prevent JIRA issue identifier from being humanized.
merge_request
:
16491
author
:
Andrew McCallum
type
:
fixed
spec/services/merge_requests/build_service_spec.rb
浏览文件 @
f0e7d79c
...
...
@@ -172,11 +172,32 @@ describe MergeRequests::BuildService do
end
end
context
'branch starts with
external issue IID followed by a hyphen
'
do
context
'branch starts with
numeric characters followed by a hyphen with no issue tracker
'
do
let
(
:source_branch
)
{
'12345-fix-issue'
}
before
do
allow
(
project
).
to
receive
(
:external_issue_tracker
).
and_return
(
false
)
allow
(
project
).
to
receive
(
:issues_enabled?
).
and_return
(
false
)
end
it
'uses the title of the commit as the title of the merge request'
do
expect
(
merge_request
.
title
).
to
eq
(
commit_1
.
safe_message
.
split
(
"
\n
"
).
first
)
end
it
'uses the description of the commit as the description of the merge request'
do
commit_description
=
commit_1
.
safe_message
.
split
(
/\n+/
,
2
).
last
expect
(
merge_request
.
description
).
to
eq
(
"
#{
commit_description
}
"
)
end
end
context
'branch starts with JIRA-formatted external issue IID followed by a hyphen'
do
let
(
:source_branch
)
{
'EXMPL-12345-fix-issue'
}
before
do
allow
(
project
).
to
receive
(
:external_issue_tracker
).
and_return
(
true
)
allow
(
project
).
to
receive
(
:issues_enabled?
).
and_return
(
false
)
allow
(
project
).
to
receive
(
:external_issue_reference_pattern
).
and_return
(
IssueTrackerService
.
reference_pattern
)
end
it
'uses the title of the commit as the title of the merge request'
do
...
...
@@ -186,7 +207,7 @@ describe MergeRequests::BuildService do
it
'uses the description of the commit as the description of the merge request and appends the closes text'
do
commit_description
=
commit_1
.
safe_message
.
split
(
/\n+/
,
2
).
last
expect
(
merge_request
.
description
).
to
eq
(
"
#{
commit_description
}
\n\n
Closes
#
12345"
)
expect
(
merge_request
.
description
).
to
eq
(
"
#{
commit_description
}
\n\n
Closes
EXMPL-
12345"
)
end
end
end
...
...
@@ -252,19 +273,46 @@ describe MergeRequests::BuildService do
end
end
context
'branch starts with
external issue IID followed by a hyphen
'
do
context
'branch starts with
numeric characters followed by a hyphen with no issue tracker
'
do
let
(
:source_branch
)
{
'12345-fix-issue'
}
before
do
allow
(
project
).
to
receive
(
:external_issue_tracker
).
and_return
(
true
)
allow
(
project
).
to
receive
(
:external_issue_tracker
).
and_return
(
false
)
allow
(
project
).
to
receive
(
:issues_enabled?
).
and_return
(
false
)
end
it
'sets the title to the humanized branch title'
do
expect
(
merge_request
.
title
).
to
eq
(
'12345 fix issue'
)
end
end
context
'branch starts with JIRA-formatted external issue IID'
do
let
(
:source_branch
)
{
'EXMPL-12345'
}
before
do
allow
(
project
).
to
receive
(
:external_issue_tracker
).
and_return
(
true
)
allow
(
project
).
to
receive
(
:issues_enabled?
).
and_return
(
false
)
allow
(
project
).
to
receive
(
:external_issue_reference_pattern
).
and_return
(
IssueTrackerService
.
reference_pattern
)
end
it
'sets the title to the humanized branch title'
do
expect
(
merge_request
.
title
).
to
eq
(
'Resolve EXMPL-12345'
)
end
it
'appends the closes text'
do
expect
(
merge_request
.
description
).
to
eq
(
'Closes #12345'
)
expect
(
merge_request
.
description
).
to
eq
(
'Closes EXMPL-12345'
)
end
context
'followed by hyphenated text'
do
let
(
:source_branch
)
{
'EXMPL-12345-fix-issue'
}
it
'sets the title to the humanized branch title'
do
expect
(
merge_request
.
title
).
to
eq
(
'Resolve EXMPL-12345 "Fix issue"'
)
end
it
'appends the closes text'
do
expect
(
merge_request
.
description
).
to
eq
(
'Closes EXMPL-12345'
)
end
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录