f2005125df
Users importing from Bitbucket Cloud, Bitbucket Server, or GitHub often complained about getting failed imports due to 422 errors. This change ensures that project names are imported with names that are guaranteed to pass the regular expression validation. Part of #50021
56 lines
2.7 KiB
Text
56 lines
2.7 KiB
Text
- provider = local_assigns.fetch(:provider)
|
|
- provider_title = Gitlab::ImportSources.title(provider)
|
|
|
|
%p.light
|
|
= import_githubish_choose_repository_message
|
|
%hr
|
|
%p
|
|
= button_tag class: "btn btn-import btn-success js-import-all" do
|
|
= import_all_githubish_repositories_button_label
|
|
= icon("spinner spin", class: "loading-icon")
|
|
|
|
.table-responsive
|
|
%table.table.import-jobs
|
|
%colgroup.import-jobs-from-col
|
|
%colgroup.import-jobs-to-col
|
|
%colgroup.import-jobs-status-col
|
|
%thead
|
|
%tr
|
|
%th= _('From %{provider_title}') % { provider_title: provider_title }
|
|
%th= _('To GitLab')
|
|
%th= _('Status')
|
|
%tbody
|
|
- @already_added_projects.each do |project|
|
|
%tr{ id: "project_#{project.id}", class: project_status_css_class(project.import_status) }
|
|
%td
|
|
= provider_project_link(provider, project.import_source)
|
|
%td
|
|
= link_to project.full_path, [project.namespace.becomes(Namespace), project]
|
|
%td.job-status
|
|
= render 'import/project_status', project: project
|
|
|
|
- @repos.each do |repo|
|
|
%tr{ id: "repo_#{repo.id}", data: { qa: { repo_path: repo.full_name } } }
|
|
%td
|
|
= provider_project_link(provider, repo.full_name)
|
|
%td.import-target
|
|
%fieldset.row
|
|
.input-group
|
|
.project-path.input-group-prepend
|
|
- if current_user.can_select_namespace?
|
|
- selected = params[:namespace_id] || :current_user
|
|
- opts = current_user.can_create_group? ? { extra_group: Group.new(name: repo.owner.login, path: repo.owner.login) } : {}
|
|
= select_tag :namespace_id, namespaces_options(selected, opts.merge({ display_path: true })), { class: 'input-group-text select2 js-select-namespace qa-project-namespace-select', tabindex: 1 }
|
|
- else
|
|
= text_field_tag :path, current_user.namespace_path, class: "input-group-text input-large form-control", tabindex: 1, disabled: true
|
|
%span.input-group-prepend
|
|
.input-group-text /
|
|
= text_field_tag :path, sanitize_project_name(repo.name), class: "input-mini form-control", tabindex: 2, autofocus: true, required: true
|
|
%td.import-actions.job-status
|
|
= button_tag class: "btn btn-import js-add-to-import" do
|
|
= has_ci_cd_only_params? ? _('Connect') : _('Import')
|
|
= icon("spinner spin", class: "loading-icon")
|
|
|
|
.js-importer-status{ data: { jobs_import_path: url_for([:jobs, :import, provider]),
|
|
import_path: url_for([:import, provider]),
|
|
ci_cd_only: has_ci_cd_only_params?.to_s } }
|