1# frozen_string_literal: true 2 3class AuthorizedKeysWorker 4 include ApplicationWorker 5 6 data_consistency :always 7 8 sidekiq_options retry: 3 9 10 PERMITTED_ACTIONS = %w[add_key remove_key].freeze 11 12 feature_category :source_code_management 13 urgency :high 14 weight 2 15 idempotent! 16 loggable_arguments 0 17 18 def perform(action, *args) 19 return unless Gitlab::CurrentSettings.authorized_keys_enabled? 20 21 case action.to_s 22 when 'add_key' 23 authorized_keys.add_key(*args) 24 when 'remove_key' 25 authorized_keys.remove_key(*args) 26 else 27 raise "Unknown action: #{action.inspect}" 28 end 29 end 30 31 private 32 33 def authorized_keys 34 @authorized_keys ||= Gitlab::AuthorizedKeys.new 35 end 36end 37