Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
aa7c8be5
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,发现更多精彩内容 >>
提交
aa7c8be5
编写于
2月 16, 2017
作者:
J
Joren De Groof
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add API endpoint to get all milestone merge requests
上级
b08be165
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
75 addition
and
0 deletion
+75
-0
changelogs/unreleased/22018-api-milestone-merge-requests.yml
changelogs/unreleased/22018-api-milestone-merge-requests.yml
+4
-0
doc/api/milestones.md
doc/api/milestones.md
+13
-0
lib/api/milestones.rb
lib/api/milestones.rb
+22
-0
spec/requests/api/milestones_spec.rb
spec/requests/api/milestones_spec.rb
+36
-0
未找到文件。
changelogs/unreleased/22018-api-milestone-merge-requests.yml
0 → 100644
浏览文件 @
aa7c8be5
---
title
:
Adds API endpoint to fetch all merge request for a single milestone
merge_request
:
author
:
Joren De Groof
doc/api/milestones.md
浏览文件 @
aa7c8be5
...
...
@@ -103,3 +103,16 @@ Parameters:
- `
id
` (required) - The ID of a project
- `
milestone_id
` (required) - The ID of a project milestone
## Get all merge requests assigned to a single milestone
Gets all merge requests assigned to a single project milestone.
```
GET /projects/:id/milestones/:milestone_id/merge_requests
```
Parameters:
- `
id
` (required) - The ID of a project
- `
milestone_id
`
(required) - The ID of a project milestone
\ No newline at end of file
lib/api/milestones.rb
浏览文件 @
aa7c8be5
...
...
@@ -120,6 +120,28 @@ module API
issues
=
IssuesFinder
.
new
(
current_user
,
finder_params
).
execute
present
paginate
(
issues
),
with:
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
end
desc
'Get all merge requests for a single project milestone'
do
detail
'This feature was introduced in GitLab 9.'
success
Entities
::
MergeRequest
end
params
do
requires
:milestone_id
,
type:
Integer
,
desc:
'The ID of a project milestone'
use
:pagination
end
get
':id/milestones/:milestone_id/merge_requests'
do
authorize!
:read_milestone
,
user_project
milestone
=
user_project
.
milestones
.
find
(
params
[
:milestone_id
])
finder_params
=
{
project_id:
user_project
.
id
,
milestone_id:
milestone
.
id
}
merge_requests
=
MergeRequestsFinder
.
new
(
current_user
,
finder_params
).
execute
present
paginate
(
merge_requests
),
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
end
end
end
end
spec/requests/api/milestones_spec.rb
浏览文件 @
aa7c8be5
...
...
@@ -229,4 +229,40 @@ describe API::Milestones, api: true do
end
end
end
describe
'GET /projects/:id/milestones/:milestone_id/merge_requests'
do
let
(
:merge_request
)
{
create
(
:merge_request
,
source_project:
project
)
}
before
do
milestone
.
merge_requests
<<
merge_request
end
it
'returns project merge_requests for a particular milestone'
do
get
api
(
"/projects/
#{
project
.
id
}
/milestones/
#{
milestone
.
id
}
/merge_requests"
,
user
)
expect
(
response
).
to
have_http_status
(
200
)
expect
(
json_response
).
to
be_an
Array
expect
(
json_response
.
size
).
to
eq
(
1
)
expect
(
json_response
.
first
[
'title'
]).
to
eq
(
merge_request
.
title
)
expect
(
json_response
.
first
[
'milestone'
][
'title'
]).
to
eq
(
milestone
.
title
)
end
it
'returns a 404 error if milestone id not found'
do
get
api
(
"/projects/
#{
project
.
id
}
/milestones/1234/merge_requests"
,
user
)
expect
(
response
).
to
have_http_status
(
404
)
end
it
'returns a 404 if the user has no access to the milestone'
do
new_user
=
create
:user
get
api
(
"/projects/
#{
project
.
id
}
/milestones/
#{
milestone
.
id
}
/merge_requests"
,
new_user
)
expect
(
response
).
to
have_http_status
(
404
)
end
it
'returns a 401 error if user not authenticated'
do
get
api
(
"/projects/
#{
project
.
id
}
/milestones/
#{
milestone
.
id
}
/merge_requests"
)
expect
(
response
).
to
have_http_status
(
401
)
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录