Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
71e05544
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,发现更多精彩内容 >>
提交
71e05544
编写于
9月 16, 2014
作者:
M
Marin Jankovski
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'order_mr_api' into 'master'
API MR ordering Fixes #1477 See merge request !1076
上级
892371bc
685754b0
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
73 addition
and
0 deletion
+73
-0
CHANGELOG
CHANGELOG
+1
-0
doc/api/merge_requests.md
doc/api/merge_requests.md
+2
-0
lib/api/merge_requests.rb
lib/api/merge_requests.rb
+14
-0
spec/requests/api/merge_requests_spec.rb
spec/requests/api/merge_requests_spec.rb
+56
-0
未找到文件。
CHANGELOG
浏览文件 @
71e05544
...
...
@@ -30,6 +30,7 @@ v 7.3.0
- Enabled Shibboleth authentication support (Matus Banas)
- Zen mode (fullscreen) for issues/MR/notes (Robert Schilling)
- Add ability to configure webhook timeout via gitlab.yml (Wes Gurney)
- Sort project merge requests in asc or desc order for updated_at or created_at field (sponsored by O'Reilly Media)
v 7.2.1
- Delete orphaned labels during label migration (James Brooks)
...
...
doc/api/merge_requests.md
浏览文件 @
71e05544
...
...
@@ -14,6 +14,8 @@ Parameters:
-
`id`
(required) - The ID of a project
-
`state`
(optional) - Return
`all`
requests or just those that are
`merged`
,
`opened`
or
`closed`
-
`order_by`
(optional) - Return requests ordered by
`created_at`
or
`updated_at`
fields
-
`sort`
(optional) - Return requests sorted in
`asc`
or
`desc`
order
```
json
[
...
...
lib/api/merge_requests.rb
浏览文件 @
71e05544
...
...
@@ -25,6 +25,10 @@ module API
# GET /projects/:id/merge_requests
# GET /projects/:id/merge_requests?state=opened
# GET /projects/:id/merge_requests?state=closed
# GET /projects/:id/merge_requests?order_by=created_at
# GET /projects/:id/merge_requests?order_by=updated_at
# GET /projects/:id/merge_requests?sort=desc
# GET /projects/:id/merge_requests?sort=asc
#
get
":id/merge_requests"
do
authorize!
:read_merge_request
,
user_project
...
...
@@ -36,6 +40,16 @@ module API
else
user_project
.
merge_requests
end
sort
=
case
params
[
"sort"
]
when
'desc'
then
'DESC'
else
'ASC'
end
mrs
=
case
params
[
"order_by"
]
when
'updated_at'
then
mrs
.
order
(
"updated_at
#{
sort
}
"
)
else
mrs
.
order
(
"created_at
#{
sort
}
"
)
end
present
paginate
(
mrs
),
with:
Entities
::
MergeRequest
end
...
...
spec/requests/api/merge_requests_spec.rb
浏览文件 @
71e05544
...
...
@@ -57,6 +57,46 @@ describe API::API, api: true do
json_response
.
length
.
should
==
1
json_response
.
first
[
'title'
].
should
==
merge_request_merged
.
title
end
context
"with ordering"
do
before
do
@mr_later
=
mr_with_later_created_and_updated_at_time
@mr_earlier
=
mr_with_earlier_created_and_updated_at_time
end
it
"should return an array of merge_requests in ascending order"
do
get
api
(
"/projects/
#{
project
.
id
}
/merge_requests?sort=asc"
,
user
)
response
.
status
.
should
==
200
json_response
.
should
be_an
Array
json_response
.
length
.
should
==
3
json_response
.
first
[
'id'
].
should
==
@mr_earlier
.
id
json_response
.
last
[
'id'
].
should
==
@mr_later
.
id
end
it
"should return an array of merge_requests in descending order"
do
get
api
(
"/projects/
#{
project
.
id
}
/merge_requests?sort=desc"
,
user
)
response
.
status
.
should
==
200
json_response
.
should
be_an
Array
json_response
.
length
.
should
==
3
json_response
.
first
[
'id'
].
should
==
@mr_later
.
id
json_response
.
last
[
'id'
].
should
==
@mr_earlier
.
id
end
it
"should return an array of merge_requests ordered by updated_at"
do
get
api
(
"/projects/
#{
project
.
id
}
/merge_requests?order_by=updated_at"
,
user
)
response
.
status
.
should
==
200
json_response
.
should
be_an
Array
json_response
.
length
.
should
==
3
json_response
.
first
[
'id'
].
should
==
@mr_earlier
.
id
json_response
.
last
[
'id'
].
should
==
@mr_later
.
id
end
it
"should return an array of merge_requests ordered by created_at"
do
get
api
(
"/projects/
#{
project
.
id
}
/merge_requests?sort=created_at"
,
user
)
response
.
status
.
should
==
200
json_response
.
should
be_an
Array
json_response
.
length
.
should
==
3
json_response
.
first
[
'id'
].
should
==
@mr_earlier
.
id
json_response
.
last
[
'id'
].
should
==
@mr_later
.
id
end
end
end
end
...
...
@@ -296,4 +336,20 @@ describe API::API, api: true do
response
.
status
.
should
==
404
end
end
def
mr_with_later_created_and_updated_at_time
merge_request
merge_request
.
created_at
+=
1
.
hour
merge_request
.
updated_at
+=
30
.
minutes
merge_request
.
save
merge_request
end
def
mr_with_earlier_created_and_updated_at_time
merge_request_closed
merge_request_closed
.
created_at
-=
1
.
hour
merge_request_closed
.
updated_at
-=
30
.
minutes
merge_request_closed
.
save
merge_request_closed
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录