Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
gpt
large_projects
gitlabhq1
Commits
28fed086
Commit
28fed086
authored
9 years ago
by
Valery Sizov
Browse files
Options
Download
Email Patches
Plain Diff
Merge request, better error handling
parent
2e8a3e39
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
38 additions
and
5 deletions
+38
-5
CHANGELOG
CHANGELOG
+1
-0
app/assets/javascripts/merge_request_widget.js.coffee
app/assets/javascripts/merge_request_widget.js.coffee
+2
-0
app/controllers/projects/merge_requests_controller.rb
app/controllers/projects/merge_requests_controller.rb
+1
-0
app/models/merge_request.rb
app/models/merge_request.rb
+11
-2
app/services/merge_requests/merge_service.rb
app/services/merge_requests/merge_service.rb
+1
-0
app/views/projects/merge_requests/widget/_open.html.haml
app/views/projects/merge_requests/widget/_open.html.haml
+3
-0
app/views/projects/merge_requests/widget/_show.html.haml
app/views/projects/merge_requests/widget/_show.html.haml
+1
-1
app/views/projects/merge_requests/widget/open/_in_progress.html.haml
...rojects/merge_requests/widget/open/_in_progress.html.haml
+7
-0
spec/services/merge_requests/merge_service_spec.rb
spec/services/merge_requests/merge_service_spec.rb
+11
-2
No files found.
CHANGELOG
View file @
28fed086
...
...
@@ -16,6 +16,7 @@ v 8.1.0 (unreleased)
- Move CI runners page to project settings area
- Move CI variables page to project settings area
- Move CI triggers page to project settings area
- Improve error message when merging fails
v 8.0.3
- Fix URL shown in Slack notifications
...
...
This diff is collapsed.
Click to expand it.
app/assets/javascripts/merge_request_widget.js.coffee
View file @
28fed086
...
...
@@ -18,6 +18,8 @@ class @MergeRequestWidget
switch
data
.
state
when
'merged'
location
.
reload
()
when
'opened'
$
(
'.mr-widget-body'
).
html
(
"<h4>Something went wrong during merging</h4>"
)
else
setTimeout
(
merge_request_widget
.
mergeInProgress
,
2000
)
dataType
:
'json'
...
...
This diff is collapsed.
Click to expand it.
app/controllers/projects/merge_requests_controller.rb
View file @
28fed086
...
...
@@ -150,6 +150,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
return
access_denied!
unless
@merge_request
.
can_be_merged_by?
(
current_user
)
if
@merge_request
.
mergeable?
@merge_request
.
merging
MergeWorker
.
perform_async
(
@merge_request
.
id
,
current_user
.
id
,
params
)
@status
=
true
else
...
...
This diff is collapsed.
Click to expand it.
app/models/merge_request.rb
View file @
28fed086
...
...
@@ -65,13 +65,21 @@ class MergeRequest < ActiveRecord::Base
end
event
:lock_mr
do
transition
[
:reopened
,
:opened
]
=>
:locked
transition
[
:reopened
,
:opened
,
:in_progress
]
=>
:locked
end
event
:unlock_mr
do
transition
locked: :reopened
end
event
:merging
do
transition
[
:opened
,
:reopened
]
=>
:in_progress
end
event
:merging_fail
do
transition
[
:in_progress
,
:locked
]
=>
:opened
end
after_transition
any
=>
:locked
do
|
merge_request
,
transition
|
merge_request
.
locked_at
=
Time
.
now
merge_request
.
save
...
...
@@ -86,6 +94,7 @@ class MergeRequest < ActiveRecord::Base
state
:reopened
state
:closed
state
:merged
state
:in_progress
state
:locked
end
...
...
@@ -231,7 +240,7 @@ class MergeRequest < ActiveRecord::Base
end
def
mergeable?
open
?
&&
!
work_in_progress?
&&
can_be_merged?
(
open
?
||
in_progress?
)
&&
!
work_in_progress?
&&
can_be_merged?
end
def
gitlab_merge_status
...
...
This diff is collapsed.
Click to expand it.
app/services/merge_requests/merge_service.rb
View file @
28fed086
...
...
@@ -21,6 +21,7 @@ module MergeRequests
after_merge
success
else
@merge_request
.
merging_fail
error
(
'Can not merge changes'
)
end
end
...
...
This diff is collapsed.
Click to expand it.
app/views/projects/merge_requests/widget/_open.html.haml
View file @
28fed086
...
...
@@ -9,6 +9,8 @@
=
render
'projects/merge_requests/widget/open/missing_branch'
-
elsif
@merge_request
.
unchecked?
=
render
'projects/merge_requests/widget/open/check'
-
elsif
@merge_request
.
in_progress?
=
render
'projects/merge_requests/widget/open/in_progress'
-
elsif
@merge_request
.
cannot_be_merged?
=
render
'projects/merge_requests/widget/open/conflicts'
-
elsif
@merge_request
.
work_in_progress?
...
...
@@ -18,6 +20,7 @@
-
elsif
@merge_request
.
can_be_merged?
=
render
'projects/merge_requests/widget/open/accept'
-
if
@closes_issues
.
present?
.mr-widget-footer
%span
...
...
This diff is collapsed.
Click to expand it.
app/views/projects/merge_requests/widget/_show.html.haml
View file @
28fed086
-
if
@merge_request
.
open?
-
if
@merge_request
.
open?
||
@merge_request
.
in_progress?
=
render
'projects/merge_requests/widget/open'
-
elsif
@merge_request
.
merged?
=
render
'projects/merge_requests/widget/merged'
...
...
This diff is collapsed.
Click to expand it.
app/views/projects/merge_requests/widget/open/_in_progress.html.haml
0 → 100644
View file @
28fed086
.accept-merge-holder.clearfix.js-toggle-container
%i
.fa.fa-spinner.fa-spin
Merge in progress
:coffeescript
$ ->
merge_request_widget.mergeInProgress()
This diff is collapsed.
Click to expand it.
spec/services/merge_requests/merge_service_spec.rb
View file @
28fed086
...
...
@@ -12,9 +12,9 @@ describe MergeRequests::MergeService do
end
describe
:execute
do
context
'valid params'
do
let
(
:service
)
{
MergeRequests
::
MergeService
.
new
(
project
,
user
,
{})
}
let
(
:service
)
{
MergeRequests
::
MergeService
.
new
(
project
,
user
,
{})
}
context
'valid params'
do
before
do
allow
(
service
).
to
receive
(
:execute_hooks
)
...
...
@@ -35,5 +35,14 @@ describe MergeRequests::MergeService do
expect
(
note
.
note
).
to
include
'Status changed to merged'
end
end
context
"something goes wrong"
do
it
"mark merge request as open"
do
allow
(
service
).
to
receive
(
:commit
).
and_return
(
false
)
merge_request
.
merging
service
.
execute
(
merge_request
,
'Awesome message'
)
expect
(
merge_request
.
state
).
to
eq
(
"opened"
)
end
end
end
end
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment