Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
04ceb69f
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,发现更多精彩内容 >>
未验证
提交
04ceb69f
编写于
11月 28, 2018
作者:
N
Nick Thomas
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow the status of a rebase to be determined
上级
9f287298
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
64 addition
and
5 deletion
+64
-5
doc/api/merge_requests.md
doc/api/merge_requests.md
+41
-3
lib/api/entities.rb
lib/api/entities.rb
+4
-0
lib/api/merge_requests.rb
lib/api/merge_requests.rb
+8
-1
spec/requests/api/merge_requests_spec.rb
spec/requests/api/merge_requests_spec.rb
+11
-1
未找到文件。
doc/api/merge_requests.md
浏览文件 @
04ceb69f
...
...
@@ -408,6 +408,7 @@ Parameters:
-
`merge_request_iid`
(required) - The internal ID of the merge request
-
`render_html`
(optional) - If
`true`
response includes rendered HTML for title and description
-
`include_diverged_commits_count`
(optional) - If
`true`
response includes the commits behind the target branch
-
`include_rebase_in_progress`
(optional) - If
`true`
response includes whether a rebase operation is in progress
```
json
{
...
...
@@ -461,6 +462,7 @@ Parameters:
},
"merge_when_pipeline_succeeds"
:
true
,
"merge_status"
:
"can_be_merged"
,
"merge_error"
:
null
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
...
...
@@ -505,7 +507,8 @@ Parameters:
"head_sha"
:
"2be7ddb704c7b6b83732fdd5b9f09d5a397b5f8f"
,
"start_sha"
:
"c380d3acebd181f13629a25d2e2acca46ffe1e00"
},
"diverged_commits_count"
:
2
"diverged_commits_count"
:
2
,
"rebase_in_progress"
:
false
}
```
...
...
@@ -773,6 +776,7 @@ POST /projects/:id/merge_requests
},
"merge_when_pipeline_succeeds"
:
true
,
"merge_status"
:
"can_be_merged"
,
"merge_error"
:
null
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
...
...
@@ -900,6 +904,7 @@ Must include at least one non-required attribute from above.
},
"merge_when_pipeline_succeeds"
:
true
,
"merge_status"
:
"can_be_merged"
,
"merge_error"
:
null
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
...
...
@@ -1043,6 +1048,7 @@ Parameters:
},
"merge_when_pipeline_succeeds"
:
true
,
"merge_status"
:
"can_be_merged"
,
"merge_error"
:
null
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
...
...
@@ -1158,6 +1164,7 @@ Parameters:
},
"merge_when_pipeline_succeeds"
:
false
,
"merge_status"
:
"can_be_merged"
,
"merge_error"
:
null
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
...
...
@@ -1228,8 +1235,39 @@ curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/a
```
This is an asynchronous request. The API will return an empty
`202 Accepted`
response if the request is enqueued successfully. You should poll the
[
Get single MR
](
#get-single-mr
)
endpoint to determine success or failure.
response if the request is enqueued successfully.
You can poll the
[
Get single MR
](
#get-single-mr
)
endpoint with the
`include_rebase_in_progress`
parameter to check the status of the
asynchronous request.
If the rebase operation is ongoing, the response will include the following:
```
json
{
"rebase_in_progress"
:
true
"merge_error"
:
null
}
```
Once the rebase operation has completed successfully, the response will include
the following:
```
json
{
"rebase_in_progress"
:
false
,
"merge_error"
:
null
,
}
```
If the rebase operation fails, the response will include the following:
```
json
{
"rebase_in_progress"
:
false
,
"merge_error"
:
"Rebase failed. Please rebase locally"
,
}
```
## Comments on merge requests
...
...
lib/api/entities.rb
浏览文件 @
04ceb69f
...
...
@@ -710,6 +710,10 @@ module API
expose
:diff_refs
,
using:
Entities
::
DiffRefs
# Allow the status of a rebase to be determined
expose
:merge_error
expose
:rebase_in_progress?
,
as: :rebase_in_progress
,
if:
->
(
_
,
options
)
{
options
[
:include_rebase_in_progress
]
}
expose
:diverged_commits_count
,
as: :diverged_commits_count
,
if:
->
(
_
,
options
)
{
options
[
:include_diverged_commits_count
]
}
def
build_available?
(
options
)
...
...
lib/api/merge_requests.rb
浏览文件 @
04ceb69f
...
...
@@ -252,6 +252,7 @@ module API
requires
:merge_request_iid
,
type:
Integer
,
desc:
'The IID of a merge request'
optional
:render_html
,
type:
Boolean
,
desc:
'Returns the description and title rendered HTML'
optional
:include_diverged_commits_count
,
type:
Boolean
,
desc:
'Returns the commits count behind the target branch'
optional
:include_rebase_in_progress
,
type:
Boolean
,
desc:
'Returns whether a rebase operation is ongoing '
end
desc
'Get a single merge request'
do
success
Entities
::
MergeRequest
...
...
@@ -259,7 +260,13 @@ module API
get
':id/merge_requests/:merge_request_iid'
do
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_iid
])
present
merge_request
,
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
,
render_html:
params
[
:render_html
],
include_diverged_commits_count:
params
[
:include_diverged_commits_count
]
present
merge_request
,
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
,
render_html:
params
[
:render_html
],
include_diverged_commits_count:
params
[
:include_diverged_commits_count
],
include_rebase_in_progress:
params
[
:include_rebase_in_progress
]
end
desc
'Get the participants of a merge request'
do
...
...
spec/requests/api/merge_requests_spec.rb
浏览文件 @
04ceb69f
...
...
@@ -359,6 +359,8 @@ describe API::MergeRequests do
expect
(
json_response
[
'should_close_merge_request'
]).
to
be_falsy
expect
(
json_response
[
'force_close_merge_request'
]).
to
be_falsy
expect
(
json_response
[
'changes_count'
]).
to
eq
(
merge_request
.
merge_request_diff
.
real_size
)
expect
(
json_response
[
'merge_error'
]).
to
eq
(
merge_request
.
merge_error
)
expect
(
json_response
).
not_to
include
(
'rebase_in_progress'
)
end
it
'exposes description and title html when render_html is true'
do
...
...
@@ -369,6 +371,14 @@ describe API::MergeRequests do
expect
(
json_response
).
to
include
(
'title_html'
,
'description_html'
)
end
it
'exposes rebase_in_progress when include_rebase_in_progress is true'
do
get
api
(
"/projects/
#{
project
.
id
}
/merge_requests/
#{
merge_request
.
iid
}
"
,
user
),
include_rebase_in_progress:
true
expect
(
response
).
to
have_gitlab_http_status
(
200
)
expect
(
json_response
).
to
include
(
'rebase_in_progress'
)
end
context
'merge_request_metrics'
do
before
do
merge_request
.
metrics
.
update!
(
merged_by:
user
,
...
...
@@ -1182,7 +1192,7 @@ describe API::MergeRequests do
end
describe
'PUT :id/merge_requests/:merge_request_iid/rebase'
do
it
'enques a rebase of the merge request against the target branch'
do
it
'enque
ue
s a rebase of the merge request against the target branch'
do
Sidekiq
::
Testing
.
fake!
do
put
api
(
"/projects/
#{
project
.
id
}
/merge_requests/
#{
merge_request
.
iid
}
/rebase"
,
user
)
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录