From 324ff19571cada7e148c53bb70e70f823eff4335 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Wed, 24 Oct 2018 16:03:00 +0100 Subject: Backport SSH host key detection code to CE This functionality is needed for SSH push mirroring support, which is a CE feature. --- app/controllers/projects/mirrors_controller.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'app/controllers') diff --git a/app/controllers/projects/mirrors_controller.rb b/app/controllers/projects/mirrors_controller.rb index 78d5faf2326..53176978416 100644 --- a/app/controllers/projects/mirrors_controller.rb +++ b/app/controllers/projects/mirrors_controller.rb @@ -44,6 +44,22 @@ class Projects::MirrorsController < Projects::ApplicationController redirect_to_repository_settings(project, anchor: 'js-push-remote-settings') end + def ssh_host_keys + lookup = SshHostKey.new(project: project, url: params[:ssh_url], compare_host_keys: params[:compare_host_keys]) + + if lookup.error.present? + # Failed to read keys + render json: { message: lookup.error }, status: :bad_request + elsif lookup.known_hosts.nil? + # Still working, come back later + render body: nil, status: :no_content + else + render json: lookup + end + rescue ArgumentError => err + render json: { message: err.message }, status: :bad_request + end + private def remote_mirror -- cgit v1.2.3