Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
94a788f6
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,体验更适合开发者的 AI 搜索 >>
提交
94a788f6
编写于
10月 13, 2015
作者:
Z
Zeger-Jan van de Weg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Only accept open issues and merge requests
上级
9f9f0c35
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
62 addition
and
19 deletion
+62
-19
app/controllers/projects/issues_controller.rb
app/controllers/projects/issues_controller.rb
+1
-1
app/helpers/issues_helper.rb
app/helpers/issues_helper.rb
+1
-1
app/models/concerns/issuable.rb
app/models/concerns/issuable.rb
+4
-0
app/models/issue.rb
app/models/issue.rb
+5
-5
app/models/merge_request.rb
app/models/merge_request.rb
+0
-4
app/views/projects/issues/_closed_by_box.html.haml
app/views/projects/issues/_closed_by_box.html.haml
+3
-6
app/views/projects/issues/show.html.haml
app/views/projects/issues/show.html.haml
+1
-1
spec/helpers/issues_helper_spec.rb
spec/helpers/issues_helper_spec.rb
+10
-0
spec/models/concerns/issuable_spec.rb
spec/models/concerns/issuable_spec.rb
+0
-1
spec/models/issue_spec.rb
spec/models/issue_spec.rb
+37
-0
未找到文件。
app/controllers/projects/issues_controller.rb
浏览文件 @
94a788f6
...
...
@@ -116,7 +116,7 @@ class Projects::IssuesController < Projects::ApplicationController
end
def
closed_by_merge_requests
@closed_by_m
r
=
@issue
.
closed_by_merge_requests
(
current_user
)
@closed_by_m
erge_requests
||
=
@issue
.
closed_by_merge_requests
(
current_user
)
end
protected
...
...
app/helpers/issues_helper.rb
浏览文件 @
94a788f6
...
...
@@ -84,7 +84,7 @@ module IssuesHelper
end
def
merge_requests_sentence
(
merge_requests
)
merge_requests
.
map
(
&
:to_reference
).
to_sentence
merge_requests
.
map
(
&
:to_reference
).
to_sentence
(
last_word_connector:
', or '
)
end
# Required for Gitlab::Markdown::IssueReferenceFilter
...
...
app/models/concerns/issuable.rb
浏览文件 @
94a788f6
...
...
@@ -86,6 +86,10 @@ module Issuable
assignee_id_changed?
end
def
open?
opened?
||
reopened?
end
#
# Votes
#
...
...
app/models/issue.rb
浏览文件 @
94a788f6
...
...
@@ -98,11 +98,11 @@ class Issue < ActiveRecord::Base
# From all notes on this issue, we'll select the system notes about linked
# merge requests. Of those, the MRs closing `self` are returned.
def
closed_by_merge_requests
(
current_user
)
def
closed_by_merge_requests
(
current_user
=
nil
)
return
[]
unless
open
?
notes
.
system
.
flat_map
do
|
note
|
ext
=
Gitlab
::
ReferenceExtractor
.
new
(
self
.
project
,
current_user
)
ext
.
analyze
(
note
.
note
)
ext
.
merge_requests
end
.
uniq
.
select
{
|
mr
|
mr
.
closes_issue?
(
self
)
}
note
.
all_references
(
current_user
).
merge_requests
end
.
uniq
.
select
{
|
mr
|
mr
.
open?
&&
mr
.
closes_issue?
(
self
)
}
end
end
app/models/merge_request.rb
浏览文件 @
94a788f6
...
...
@@ -222,10 +222,6 @@ class MergeRequest < ActiveRecord::Base
self
.
target_project
.
events
.
where
(
target_id:
self
.
id
,
target_type:
"MergeRequest"
,
action:
Event
::
CLOSED
).
last
end
def
open?
opened?
||
reopened?
end
def
work_in_progress?
!!
(
title
=~
/\A\[?WIP\]?:? /i
)
end
...
...
app/views/projects/issues/_closed_by_box.html.haml
浏览文件 @
94a788f6
.issue-closed-by-widget
%i
.fa.fa-check
-
if
@closed_by_mr
.
count
==
1
This issue will be closed when
#{
gfm
(
@closed_by_mr
.
first
.
to_reference
)
}
is accepted.
-
else
This issue will be closed when any of merge requests
#{
gfm
(
merge_requests_sentence
(
@closed_by_mr
.
sort
))
}
is accepted.
.issue-closed-by-widget
=
icon
(
'check'
)
This issue will be closed automatically when merge request
#{
gfm
(
merge_requests_sentence
(
@closed_by_merge_requests
.
sort
))
}
is accepted.
app/views/projects/issues/show.html.haml
浏览文件 @
94a788f6
...
...
@@ -46,7 +46,7 @@
=
markdown
(
@issue
.
description
)
%textarea
.hidden.js-task-list-field
=
@issue
.
description
-
if
@closed_by_m
r
.
present?
-
if
@closed_by_m
erge_requests
.
present?
=
render
'projects/issues/closed_by_box'
.issue-discussion
=
render
'projects/issues/discussion'
spec/helpers/issues_helper_spec.rb
浏览文件 @
94a788f6
...
...
@@ -117,4 +117,14 @@ describe IssuesHelper do
end
end
describe
"#merge_requests_sentence"
do
subject
{
merge_requests_sentence
(
merge_requests
)}
let
(
:merge_requests
)
do
[
build
(
:merge_request
,
iid:
1
),
build
(
:merge_request
,
iid:
2
),
build
(
:merge_request
,
iid:
3
)]
end
it
{
is_expected
.
to
eq
(
"!1, !2, or !3"
)
}
end
end
spec/models/concerns/issuable_spec.rb
浏览文件 @
94a788f6
...
...
@@ -68,7 +68,6 @@ describe Issue, "Issuable" do
end
end
describe
"#to_hook_data"
do
let
(
:hook_data
)
{
issue
.
to_hook_data
(
user
)
}
...
...
spec/models/issue_spec.rb
浏览文件 @
94a788f6
...
...
@@ -68,6 +68,43 @@ describe Issue do
end
end
describe
'#closed_by_merge_requests'
do
let
(
:project
)
{
create
(
:project
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
project
,
state:
"opened"
)}
let
(
:closed_issue
)
{
build
(
:issue
,
project:
project
,
state:
"closed"
)}
let
(
:mr
)
do
opts
=
{
title:
'Awesome merge_request'
,
description:
"Fixes
#{
issue
.
to_reference
}
"
,
source_branch:
'feature'
,
target_branch:
'master'
}
MergeRequests
::
CreateService
.
new
(
project
,
project
.
owner
,
opts
).
execute
end
let
(
:closed_mr
)
do
opts
=
{
title:
'Awesome merge_request 2'
,
description:
"Fixes
#{
issue
.
to_reference
}
"
,
source_branch:
'feature'
,
target_branch:
'master'
,
state:
'closed'
}
MergeRequests
::
CreateService
.
new
(
project
,
project
.
owner
,
opts
).
execute
end
it
'returns the merge request to close this issue'
do
allow
(
mr
).
to
receive
(
:closes_issue?
).
with
(
issue
).
and_return
(
true
)
expect
(
issue
.
closed_by_merge_requests
).
to
eq
([
mr
])
end
it
"returns an empty array when the current issue is closed already"
do
expect
(
closed_issue
.
closed_by_merge_requests
).
to
eq
([])
end
end
it_behaves_like
'an editable mentionable'
do
subject
{
create
(
:issue
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录