diff --git a/lib/gitlab/backend/shell.rb b/lib/gitlab/backend/shell.rb index 6c9532face8e463310e50592de69073696c61b1f..d0b89f85adee079f23af8fe6af2ebec4856c1ffd 100644 --- a/lib/gitlab/backend/shell.rb +++ b/lib/gitlab/backend/shell.rb @@ -139,6 +139,15 @@ module Gitlab system "#{gitlab_shell_user_home}/gitlab-shell/bin/gitlab-keys", "rm-key", key_id, key_content end + # Remove all ssh keys from gitlab shell + # + # Ex. + # remmove_all_keys + # + def remove_all_keys + system "#{gitlab_shell_user_home}/gitlab-shell/bin/gitlab-keys", "clear" + end + # Add empty directory for storing repositories # # Ex. diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index 779670512c2c7663e1c593e3dfb0cd1603730973..be679dcd97e53d5a46ecc1883175af668642ed7b 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -657,7 +657,7 @@ namespace :gitlab do end def check_gitlab_shell - required_version = Gitlab::VersionInfo.new(1, 6, 0) + required_version = Gitlab::VersionInfo.new(1, 7, 0) current_version = Gitlab::VersionInfo.parse(gitlab_shell_version) print "GitLab Shell version >= #{required_version} ? ... " diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index 11d4eacaa6957e1b525da29712159db79ae82fd4..0d7a390bc9292ff441a8c117e9ebfe968257250f 100644 --- a/lib/tasks/gitlab/shell.rake +++ b/lib/tasks/gitlab/shell.rake @@ -25,15 +25,14 @@ namespace :gitlab do def setup warn_user_is_not_gitlab - gitlab_shell_authorized_keys = File.join(File.expand_path("~#{Gitlab.config.gitlab_shell.ssh_user}"),'.ssh/authorized_keys') unless ENV['force'] == 'yes' puts "This will rebuild an authorized_keys file." - puts "You will lose any data stored in #{gitlab_shell_authorized_keys}." + puts "You will lose any data stored in authorized_keys file." ask_to_continue puts "" end - system("echo '# Managed by gitlab-shell' > #{gitlab_shell_authorized_keys}") + Gitlab::Shell.new.remove_all_keys Key.find_each(batch_size: 1000) do |key| if Gitlab::Shell.new.add_key(key.shell_id, key.key)