- ci_cd_only = local_assigns.fetch(:ci_cd_only, false) - ci_cd_only = local_assigns.fetch(:ci_cd_only, false)
- import_url = Gitlab::UrlSanitizer.new(f.object.import_url) - import_url = Gitlab::UrlSanitizer.new(f.object.import_url)
.form-group.import-url-data .import-url-data
.form-group .form-group
= f.label :import_url, class: 'label-bold' do = f.label :import_url, class: 'label-bold' do
%span %span
...@@ -9,24 +9,18 @@ ...@@ -9,24 +9,18 @@
= f.text_field :import_url, value: import_url.sanitized_url, = f.text_field :import_url, value: import_url.sanitized_url,
autocomplete: 'off', class: 'form-control', placeholder: 'https://gitlab.company.com/group/project.git', required: true autocomplete: 'off', class: 'form-control', placeholder: 'https://gitlab.company.com/group/project.git', required: true
.form-group#import_url_auth_method .row
= label :import_url_auth_method, class: 'label-bold' do .form-group.col-md-6
%span
= _('Authentication method')
= select_tag :import_url_auth_method, options_for_select([[_('None'), 'none'], [_('Username and Password'), 'username-and-password']]), class: 'form-control'
.div#import_url_auth_group{ style: 'display: none' }
.form-group
= f.label :import_url_user, class: 'label-bold' do = f.label :import_url_user, class: 'label-bold' do
%span %span
= _('Username (optional)') = _('Username (optional)')
= f.text_field :import_url_user, value: import_url.user, class: 'form-control', required: false, autocomplete: 'new-password' = f.text_field :import_url_user, value: import_url.user, class: 'form-control', required: false, autocomplete: 'new-password'
.form-group .form-group.col-md-6
= f.label :import_url_password, class: 'label-bold' do = f.label :import_url_password, class: 'label-bold' do
%span %span
= _('Git repository password') = _('Password (optional)')
= f.password_field :import_url_password, class: 'form-control', required: false, autocomplete: 'new-password', placeholder: 'Basic Auth Password' = f.password_field :import_url_password, class: 'form-control', required: false, autocomplete: 'new-password'
.info-well.prepend-top-20 .info-well.prepend-top-20
.well-segment .well-segment
...@@ -34,7 +28,7 @@ ...@@ -34,7 +28,7 @@
%li %li
= _('The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>.').html_safe = _('The repository must be accessible over <code>http://</code>, <code>https://</code> or <code>git://</code>.').html_safe
%li %li
= _('If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>.').html_safe = _('If your HTTP repository is not publicly accessible, add your credentials.')
%li %li
= import_will_timeout_message(ci_cd_only) = import_will_timeout_message(ci_cd_only)
%li %li
... ...
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
module ProjectImportOptions module ProjectImportOptions
extend ActiveSupport::Concern extend ActiveSupport::Concern
IMPORT_RETRY_COUNT = 0 IMPORT_RETRY_COUNT = 5
included do included do
sidekiq_options retry: IMPORT_RETRY_COUNT, status_expiration: StuckImportJobsWorker::IMPORT_JOBS_EXPIRATION sidekiq_options retry: IMPORT_RETRY_COUNT, status_expiration: StuckImportJobsWorker::IMPORT_JOBS_EXPIRATION
... ...
......
...@@ -4941,7 +4941,7 @@ msgstr "" ...@@ -4941,7 +4941,7 @@ msgstr ""
msgid "If this was a mistake you can leave the %{source_type}." msgid "If this was a mistake you can leave the %{source_type}."
msgstr "" msgstr ""
msgid "If your HTTP repository is not publicly accessible, add authentication information to the URL: <code>https://username:password@gitlab.company.com/group/project.git</code>." msgid "If your HTTP repository is not publicly accessible, add your credentials."
msgstr "" msgstr ""
msgid "ImageDiffViewer|2-up" msgid "ImageDiffViewer|2-up"
...@@ -10577,7 +10577,7 @@ msgstr "" ...@@ -10577,7 +10577,7 @@ msgstr ""
msgid "UserProfile|Your projects can be available publicly, internally, or privately, at your choice." msgid "UserProfile|Your projects can be available publicly, internally, or privately, at your choice."
msgstr "" msgstr ""
msgid "Username and Password" msgid "Username (optional)"
msgstr "" msgstr ""
msgid "Users" msgid "Users"
... ...
......
...@@ -10,7 +10,17 @@ describe('New Project', () => { ...@@ -10,7 +10,17 @@ describe('New Project', () => {
setFixtures(` setFixtures(`
<div class='toggle-import-form'> <div class='toggle-import-form'>
<div class='import-url-data'> <div class='import-url-data'>
<div class="form-group">
<input id="project_import_url" /> <input id="project_import_url" />
</div>
<div id="import-url-auth-method">
<div class="form-group">
<input id="project-import-url-user" />
</div>
<div class="form-group">
<input id="project_import_url_password" />
</div>
</div>
<input id="project_name" /> <input id="project_name" />
<input id="project_path" /> <input id="project_path" />
</div> </div>
...@@ -119,7 +129,7 @@ describe('New Project', () => { ...@@ -119,7 +129,7 @@ describe('New Project', () => {
}); });
it('changes project path for HTTPS URL in $projectImportUrl', () => { it('changes project path for HTTPS URL in $projectImportUrl', () => {
$projectImportUrl.val('https://username:password@gitlab.company.com/group/project.git'); $projectImportUrl.val('https://gitlab.company.com/group/project.git');
projectNew.deriveProjectPathFromUrl($projectImportUrl); projectNew.deriveProjectPathFromUrl($projectImportUrl);
... ...
......