Class: Projects::MergeRequests::ConflictsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Projects::MergeRequests::ConflictsController
show all
- Includes:
- IssuableActions
- Defined in:
- app/controllers/projects/merge_requests/conflicts_controller.rb
Constant Summary
Gitlab::Cache::Helpers::DEFAULT_EXPIRY
Instance Method Summary
collapse
#bulk_update, #check_destroy_confirmation!, #destroy, #discussions, #realtime_changes, #update
#spam_action_response_fields
#mark_as_spam
#cache, #render_cached
Instance Method Details
#conflict_for_path ⇒ Object
42
43
44
45
46
47
48
49
50
|
# File 'app/controllers/projects/merge_requests/conflicts_controller.rb', line 42
def conflict_for_path
return render_404 unless @conflicts_list.can_be_resolved_in_ui?
file = @conflicts_list.file_for_path(params[:old_path], params[:new_path])
return render_404 unless file
render json: file, full_content: true
end
|
#resolve_conflicts ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'app/controllers/projects/merge_requests/conflicts_controller.rb', line 52
def resolve_conflicts
return render_404 unless @conflicts_list.can_be_resolved_in_ui?
Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter.track_resolve_conflict_action(user: current_user)
if @merge_request.can_be_merged?
render status: :bad_request,
json: { message: _('The merge conflicts for this merge request have already been resolved.') }
return
end
begin
::MergeRequests::Conflicts::ResolveService
.new(merge_request)
.execute(current_user, params)
flash[:notice] = _('All merge conflicts were resolved. The merge request can now be merged.')
render json: { redirect_to: project_merge_request_path(@project, @merge_request, resolved_conflicts: true) }
rescue Gitlab::Git::Conflict::Resolver::ResolutionError => e
render status: :bad_request, json: { message: e.message }
end
end
|
#show ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'app/controllers/projects/merge_requests/conflicts_controller.rb', line 14
def show
respond_to do |format|
format.html do
@issuable_sidebar = serializer.represent(@merge_request, serializer: 'sidebar')
Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter
.track_loading_conflict_ui_action(user: current_user)
end
format.json do
if @conflicts_list.can_be_resolved_in_ui?
render json: @conflicts_list
elsif @merge_request.can_be_merged?
render json: {
message: _('The merge conflicts for this merge request have already been resolved. ' \
'Please return to the merge request.'),
type: 'error'
}
else
render json: {
message: _('The merge conflicts for this merge request cannot be resolved through GitLab. ' \
'Please try to resolve them locally.'),
type: 'error'
}
end
end
end
end
|