summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAsh McKenzie <amckenzie@gitlab.com>2019-03-28 12:33:45 +1100
committerAsh McKenzie <amckenzie@gitlab.com>2019-04-04 14:20:11 +1100
commit6b7a9b7498a4c91ca9c7324a0e31d8a142fddeef (patch)
tree0a81e50117474a2773d49b2f912b71c4a4496fb4
parent74ace2a445a44a13bd22c1907b8ec55b1772d403 (diff)
downloadgitlab-ce-9217-warn-on-git-fetch-over-ssh-if-the-secondary-is-lagging-the-primary.tar.gz
Currently a no-op for CE
-rw-r--r--lib/api/internal.rb3
-rw-r--r--lib/gitlab/git_access.rb6
-rw-r--r--lib/gitlab/git_access_result/success.rb5
-rw-r--r--spec/requests/api/internal_spec.rb34
4 files changed, 46 insertions, 2 deletions
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index cb9aa849eeb..9c7b9146c8f 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -87,7 +87,8 @@ module API
gl_id: Gitlab::GlId.gl_id(user),
gl_username: user&.username,
git_config_options: [],
- gitaly: gitaly_payload(params[:action])
+ gitaly: gitaly_payload(params[:action]),
+ gl_console_messages: check_result.console_messages
}
# Custom option for git-receive-pack command
diff --git a/lib/gitlab/git_access.rb b/lib/gitlab/git_access.rb
index 010bd0e520c..cb80ed64eff 100644
--- a/lib/gitlab/git_access.rb
+++ b/lib/gitlab/git_access.rb
@@ -85,7 +85,7 @@ module Gitlab
check_push_access!
end
- ::Gitlab::GitAccessResult::Success.new
+ ::Gitlab::GitAccessResult::Success.new(console_messages: check_for_console_messages(cmd))
end
def guest_can_download_code?
@@ -116,6 +116,10 @@ module Gitlab
nil
end
+ def check_for_console_messages(cmd)
+ []
+ end
+
def check_valid_actor!
return unless actor.is_a?(Key)
diff --git a/lib/gitlab/git_access_result/success.rb b/lib/gitlab/git_access_result/success.rb
index 7bb9f24cb0e..e950d727e2e 100644
--- a/lib/gitlab/git_access_result/success.rb
+++ b/lib/gitlab/git_access_result/success.rb
@@ -3,6 +3,11 @@
module Gitlab
module GitAccessResult
class Success
+ attr_reader :console_messages
+
+ def initialize(console_messages: [])
+ @console_messages = console_messages
+ end
end
end
end
diff --git a/spec/requests/api/internal_spec.rb b/spec/requests/api/internal_spec.rb
index 537194b8e11..6640ce2b07e 100644
--- a/spec/requests/api/internal_spec.rb
+++ b/spec/requests/api/internal_spec.rb
@@ -498,6 +498,40 @@ describe API::Internal do
end
end
+ context "console message" do
+ before do
+ project.add_developer(user)
+ end
+
+ context "git pull" do
+ context "with no console message" do
+ it "has the correct payload" do
+ pull(key, project)
+
+ expect(response).to have_gitlab_http_status(200)
+ expect(json_response['gl_console_messages']).to eq([])
+ end
+ end
+
+ context "with a console message" do
+ let(:console_messages) { ['message for the console'] }
+
+ it "has the correct payload" do
+ expect_next_instance_of(Gitlab::GitAccess) do |access|
+ expect(access).to receive(:check_for_console_messages)
+ .with('git-upload-pack')
+ .and_return(console_messages)
+ end
+
+ pull(key, project)
+
+ expect(response).to have_gitlab_http_status(200)
+ expect(json_response['gl_console_messages']).to eq(console_messages)
+ end
+ end
+ end
+ end
+
context "blocked user" do
let(:personal_project) { create(:project, namespace: user.namespace) }