Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
044e0e33
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,发现更多精彩内容 >>
提交
044e0e33
编写于
12月 02, 2015
作者:
D
Douwe Maan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow invalid URLs in closing pattern
上级
60828ab4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
52 addition
and
1 deletion
+52
-1
lib/gitlab/closing_issue_extractor.rb
lib/gitlab/closing_issue_extractor.rb
+3
-1
spec/lib/gitlab/closing_issue_extractor_spec.rb
spec/lib/gitlab/closing_issue_extractor_spec.rb
+49
-0
未找到文件。
lib/gitlab/closing_issue_extractor.rb
浏览文件 @
044e0e33
module
Gitlab
class
ClosingIssueExtractor
ISSUE_CLOSING_REGEX
=
begin
link_pattern
=
URI
.
regexp
(
%w(http https)
)
pattern
=
Gitlab
.
config
.
gitlab
.
issue_closing_pattern
pattern
=
pattern
.
sub
(
'%{issue_ref}'
,
"(?:(?:
#{
Issue
.
link_reference
_pattern
}
)|(?:
#{
Issue
.
reference_pattern
}
))"
)
pattern
=
pattern
.
sub
(
'%{issue_ref}'
,
"(?:(?:
#{
link
_pattern
}
)|(?:
#{
Issue
.
reference_pattern
}
))"
)
Regexp
.
new
(
pattern
).
freeze
end
...
...
spec/lib/gitlab/closing_issue_extractor_spec.rb
浏览文件 @
044e0e33
...
...
@@ -2,11 +2,18 @@ require 'spec_helper'
describe
Gitlab
::
ClosingIssueExtractor
do
let
(
:project
)
{
create
(
:project
)
}
let
(
:project2
)
{
create
(
:project
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
project
)
}
let
(
:issue2
)
{
create
(
:issue
,
project:
project2
)
}
let
(
:reference
)
{
issue
.
to_reference
}
let
(
:cross_reference
)
{
issue2
.
to_reference
(
project
)
}
subject
{
described_class
.
new
(
project
,
project
.
creator
)
}
before
do
project2
.
team
<<
[
project
.
creator
,
:master
]
end
describe
"#closed_by_message"
do
context
'with a single reference'
do
it
do
...
...
@@ -130,6 +137,27 @@ describe Gitlab::ClosingIssueExtractor do
end
end
context
"with a cross-project reference"
do
it
do
message
=
"Closes
#{
cross_reference
}
"
expect
(
subject
.
closed_by_message
(
message
)).
to
eq
([
issue2
])
end
end
context
"with a cross-project URL"
do
it
do
message
=
"Closes
#{
Gitlab
.
config
.
gitlab
.
url
}
/
#{
project2
.
to_reference
}
/issues/
#{
issue2
.
iid
}
"
expect
(
subject
.
closed_by_message
(
message
)).
to
eq
([
issue2
])
end
end
context
"with an invalid URL"
do
it
do
message
=
"Closes https://google.com/
#{
project2
.
to_reference
}
/issues/
#{
issue2
.
iid
}
"
expect
(
subject
.
closed_by_message
(
message
)).
to
eq
([])
end
end
context
'with multiple references'
do
let
(
:other_issue
)
{
create
(
:issue
,
project:
project
)
}
let
(
:third_issue
)
{
create
(
:issue
,
project:
project
)
}
...
...
@@ -171,6 +199,27 @@ describe Gitlab::ClosingIssueExtractor do
expect
(
subject
.
closed_by_message
(
message
)).
to
match_array
([
issue
,
other_issue
,
third_issue
])
end
it
"fetches cross-project references"
do
message
=
"Closes
#{
reference
}
and
#{
cross_reference
}
"
expect
(
subject
.
closed_by_message
(
message
)).
to
match_array
([
issue
,
issue2
])
end
it
"fetches cross-project URL references"
do
message
=
"Closes
#{
Gitlab
.
config
.
gitlab
.
url
}
/
#{
project2
.
to_reference
}
/issues/
#{
issue2
.
iid
}
and
#{
reference
}
"
expect
(
subject
.
closed_by_message
(
message
)).
to
match_array
([
issue
,
issue2
])
end
it
"ignores invalid cross-project URL references"
do
message
=
"Closes https://google.com/
#{
project2
.
to_reference
}
/issues/
#{
issue2
.
iid
}
and
#{
reference
}
"
expect
(
subject
.
closed_by_message
(
message
)).
to
match_array
([
issue
])
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录