- mirror = f.object - is_push = local_assigns.fetch(:is_push, false) - auth_options = [[_('Password'), 'password'], [_('SSH public key'), 'ssh_public_key']] - regen_data = { auth_method: 'ssh_public_key', regenerate_ssh_private_key: true } - ssh_public_key_present = mirror.ssh_public_key.present? .form-group = f.label :auth_method, _('Authentication method'), class: 'label-bold' = f.select :auth_method, options_for_select(auth_options, mirror.auth_method), {}, { class: "form-control js-mirror-auth-type qa-authentication-method" } .form-group .collapse.js-well-changing-auth .changing-auth-method= icon('spinner spin lg') .well-password-auth.collapse.js-well-password-auth = f.label :password, _("Password"), class: "label-bold" = f.password_field :password, value: mirror.password, class: 'form-control qa-password', autocomplete: 'new-password' - unless is_push .well-ssh-auth.collapse.js-well-ssh-auth %p.js-ssh-public-key-present{ class: ('collapse' unless ssh_public_key_present) } = _('Here is the public SSH key that needs to be added to the remote server. For more information, please refer to the documentation.') %p.js-ssh-public-key-pending{ class: ('collapse' if ssh_public_key_present) } = _('An SSH key will be automatically generated when the form is submitted. For more information, please refer to the documentation.') .clearfix.js-ssh-public-key-wrap{ class: ('collapse' unless ssh_public_key_present) } %code.prepend-top-10.ssh-public-key = mirror.ssh_public_key = clipboard_button(text: mirror.ssh_public_key, title: _("Copy SSH public key to clipboard"), class: 'prepend-top-10 btn-copy-ssh-public-key') = button_tag type: 'button', data: { endpoint: project_mirror_path(@project), project_data: { import_data_attributes: regen_data } }, class: "btn btn-inverted btn-warning prepend-top-10 js-btn-regenerate-ssh-key#{ ' collapse' unless ssh_public_key_present }" do = icon('spinner spin', class: 'js-spinner d-none') = _('Regenerate key') = render 'projects/mirrors/regenerate_public_ssh_key_confirm_modal'