Commit eded4bfa95320974a0a2f52da2ce0f46974734bb
1 parent
eaa8cd28
Exists in
master
and in
4 other branches
Raise exception and show message to user if repo missing satellite
Showing
3 changed files
with
16 additions
and
3 deletions
Show diff stats
app/controllers/merge_requests_controller.rb
@@ -69,6 +69,8 @@ class MergeRequestsController < ProjectResourceController | @@ -69,6 +69,8 @@ class MergeRequestsController < ProjectResourceController | ||
69 | @merge_request.check_if_can_be_merged | 69 | @merge_request.check_if_can_be_merged |
70 | end | 70 | end |
71 | render json: {state: @merge_request.human_state} | 71 | render json: {state: @merge_request.human_state} |
72 | + rescue Gitlab::SatelliteNotExistError | ||
73 | + render json: {state: :no_satellite} | ||
72 | end | 74 | end |
73 | 75 | ||
74 | def automerge | 76 | def automerge |
app/views/merge_requests/show/_mr_accept.html.haml
@@ -23,6 +23,11 @@ | @@ -23,6 +23,11 @@ | ||
23 | .clearfix | 23 | .clearfix |
24 | 24 | ||
25 | 25 | ||
26 | + .automerge_widget.no_satellite{style: "display:none"} | ||
27 | + .alert.alert-error | ||
28 | + %span | ||
29 | + %strong This repository does not have satellite. Ask administrator to fix this issue | ||
30 | + | ||
26 | .automerge_widget.cannot_be_merged{style: "display:none"} | 31 | .automerge_widget.cannot_be_merged{style: "display:none"} |
27 | .alert.alert-info | 32 | .alert.alert-info |
28 | %span | 33 | %span |
lib/gitlab/satellite/satellite.rb
1 | module Gitlab | 1 | module Gitlab |
2 | + class SatelliteNotExistError < StandardError; end | ||
3 | + | ||
2 | module Satellite | 4 | module Satellite |
3 | class Satellite | 5 | class Satellite |
4 | PARKING_BRANCH = "__parking_branch" | 6 | PARKING_BRANCH = "__parking_branch" |
@@ -9,8 +11,12 @@ module Gitlab | @@ -9,8 +11,12 @@ module Gitlab | ||
9 | @project = project | 11 | @project = project |
10 | end | 12 | end |
11 | 13 | ||
14 | + def raise_no_satellite | ||
15 | + raise SatelliteNotExistError.new("Satellite doesn't exist") | ||
16 | + end | ||
17 | + | ||
12 | def clear_and_update! | 18 | def clear_and_update! |
13 | - raise "Satellite doesn't exist" unless exists? | 19 | + raise_no_satellite unless exists? |
14 | 20 | ||
15 | delete_heads! | 21 | delete_heads! |
16 | clear_working_dir! | 22 | clear_working_dir! |
@@ -35,7 +41,7 @@ module Gitlab | @@ -35,7 +41,7 @@ module Gitlab | ||
35 | # * Changes the current directory to the satellite's working dir | 41 | # * Changes the current directory to the satellite's working dir |
36 | # * Yields | 42 | # * Yields |
37 | def lock | 43 | def lock |
38 | - raise "Satellite doesn't exist" unless exists? | 44 | + raise_no_satellite unless exists? |
39 | 45 | ||
40 | File.open(lock_file, "w+") do |f| | 46 | File.open(lock_file, "w+") do |f| |
41 | f.flock(File::LOCK_EX) | 47 | f.flock(File::LOCK_EX) |
@@ -55,7 +61,7 @@ module Gitlab | @@ -55,7 +61,7 @@ module Gitlab | ||
55 | end | 61 | end |
56 | 62 | ||
57 | def repo | 63 | def repo |
58 | - raise "Satellite doesn't exist" unless exists? | 64 | + raise_no_satellite unless exists? |
59 | 65 | ||
60 | @repo ||= Grit::Repo.new(path) | 66 | @repo ||= Grit::Repo.new(path) |
61 | end | 67 | end |