diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue | 2 | ||||
-rw-r--r-- | app/controllers/application_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/concerns/preferred_language_switcher.rb | 2 | ||||
-rw-r--r-- | app/controllers/import/github_controller.rb | 17 | ||||
-rw-r--r-- | app/graphql/mutations/ci/job_token_scope/remove_project.rb | 9 | ||||
-rw-r--r-- | app/models/ci/job_token/project_scope_link.rb | 5 | ||||
-rw-r--r-- | app/models/project.rb | 1 | ||||
-rw-r--r-- | app/serializers/ci/pipeline_entity.rb | 1 | ||||
-rw-r--r-- | app/serializers/merge_requests/pipeline_entity.rb | 4 | ||||
-rw-r--r-- | app/services/ci/job_token_scope/remove_project_service.rb | 6 | ||||
-rw-r--r-- | app/services/users/build_service.rb | 6 | ||||
-rw-r--r-- | app/views/devise/shared/_language_switcher.html.haml | 2 | ||||
-rw-r--r-- | app/workers/bulk_imports/pipeline_worker.rb | 7 |
13 files changed, 42 insertions, 22 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue index be1e570285a..1093e7cb2ee 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue @@ -199,7 +199,7 @@ export default { data-testid="pipeline-info-container" data-qa-selector="merge_request_pipeline_info_content" > - {{ pipeline.details.event_type_name || pipeline.details.name }} + {{ pipeline.details.event_type_name }} <gl-link :href="pipeline.path" class="pipeline-id" diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 865cde1b641..353f9098b95 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -510,8 +510,6 @@ class ApplicationController < ActionController::Base end def set_locale(&block) - return Gitlab::I18n.with_user_locale(current_user, &block) unless Feature.enabled?(:preferred_language_switcher) - if current_user Gitlab::I18n.with_user_locale(current_user, &block) else diff --git a/app/controllers/concerns/preferred_language_switcher.rb b/app/controllers/concerns/preferred_language_switcher.rb index 00cd0f9d1d5..872652100c9 100644 --- a/app/controllers/concerns/preferred_language_switcher.rb +++ b/app/controllers/concerns/preferred_language_switcher.rb @@ -6,8 +6,6 @@ module PreferredLanguageSwitcher private def init_preferred_language - return unless Feature.enabled?(:preferred_language_switcher) - cookies[:preferred_language] = preferred_language end diff --git a/app/controllers/import/github_controller.rb b/app/controllers/import/github_controller.rb index 76772a72865..0bee1faccf5 100644 --- a/app/controllers/import/github_controller.rb +++ b/app/controllers/import/github_controller.rb @@ -93,6 +93,23 @@ class Import::GithubController < Import::BaseController end end + def cancel_all + projects_to_cancel = Project.imported_from(provider_name).created_by(current_user).is_importing + + canceled = projects_to_cancel.map do |project| + # #reset is called to make sure project was not finished/canceled brefore calling service + result = Import::Github::CancelProjectImportService.new(project.reset, current_user).execute + + { + id: project.id, + status: result[:status], + error: result[:message] + }.compact + end + + render json: canceled + end + protected override :importable_repos diff --git a/app/graphql/mutations/ci/job_token_scope/remove_project.rb b/app/graphql/mutations/ci/job_token_scope/remove_project.rb index f503b4f2f7a..e5f40bbf87e 100644 --- a/app/graphql/mutations/ci/job_token_scope/remove_project.rb +++ b/app/graphql/mutations/ci/job_token_scope/remove_project.rb @@ -18,18 +18,23 @@ module Mutations required: true, description: 'Project to be removed from the CI job token scope.' + argument :direction, + ::Types::Ci::JobTokenScope::DirectionEnum, + required: false, + description: 'Direction of access, which defaults to outbound.' + field :ci_job_token_scope, Types::Ci::JobTokenScopeType, null: true, description: "CI job token's scope of access." - def resolve(project_path:, target_project_path:) + def resolve(project_path:, target_project_path:, direction: :outbound) project = authorized_find!(project_path) target_project = Project.find_by_full_path(target_project_path) result = ::Ci::JobTokenScope::RemoveProjectService .new(project, current_user) - .execute(target_project) + .execute(target_project, direction: direction) if result.success? { diff --git a/app/models/ci/job_token/project_scope_link.rb b/app/models/ci/job_token/project_scope_link.rb index 4fb577f58bc..774d85e3d3c 100644 --- a/app/models/ci/job_token/project_scope_link.rb +++ b/app/models/ci/job_token/project_scope_link.rb @@ -13,8 +13,9 @@ module Ci belongs_to :target_project, class_name: 'Project' belongs_to :added_by, class_name: 'User' - scope :with_source, ->(project) { where(source_project: project) } - scope :with_target, ->(project) { where(target_project: project) } + scope :with_access_direction, ->(direction) { where(direction: direction) } + scope :with_source, ->(project) { where(source_project: project) } + scope :with_target, ->(project) { where(target_project: project) } validates :source_project, presence: true validates :target_project, presence: true diff --git a/app/models/project.rb b/app/models/project.rb index 8cb17632170..0012603466e 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -825,6 +825,7 @@ class Project < ApplicationRecord scope :for_group, -> (group) { where(group: group) } scope :for_group_and_its_subgroups, ->(group) { where(namespace_id: group.self_and_descendants.select(:id)) } scope :for_group_and_its_ancestor_groups, ->(group) { where(namespace_id: group.self_and_ancestors.select(:id)) } + scope :is_importing, -> { with_import_state.where(import_state: { status: %w[started scheduled] }) } class << self # Searches for a list of projects based on the query given in `query`. diff --git a/app/serializers/ci/pipeline_entity.rb b/app/serializers/ci/pipeline_entity.rb index 5e6ae0986df..28baa64bc7c 100644 --- a/app/serializers/ci/pipeline_entity.rb +++ b/app/serializers/ci/pipeline_entity.rb @@ -42,7 +42,6 @@ class Ci::PipelineEntity < Grape::Entity expose :duration expose :finished_at expose :event_type_name - expose :event_type_name, as: :name # To be removed in 15.7 end expose :merge_request, if: -> (*) { has_presentable_merge_request? }, with: MergeRequestForPipelineEntity do |pipeline| diff --git a/app/serializers/merge_requests/pipeline_entity.rb b/app/serializers/merge_requests/pipeline_entity.rb index cf050b32d21..500dc435526 100644 --- a/app/serializers/merge_requests/pipeline_entity.rb +++ b/app/serializers/merge_requests/pipeline_entity.rb @@ -22,10 +22,6 @@ class MergeRequests::PipelineEntity < Grape::Entity pipeline.present.event_type_name end - expose :name do |pipeline| # To be removed in 15.7 - pipeline.present.event_type_name - end - expose :artifacts do |pipeline, options| rel = pipeline.downloadable_artifacts diff --git a/app/services/ci/job_token_scope/remove_project_service.rb b/app/services/ci/job_token_scope/remove_project_service.rb index 15644e529d9..d21eff2b619 100644 --- a/app/services/ci/job_token_scope/remove_project_service.rb +++ b/app/services/ci/job_token_scope/remove_project_service.rb @@ -5,14 +5,16 @@ module Ci class RemoveProjectService < ::BaseService include EditScopeValidations - def execute(target_project) + def execute(target_project, direction: :outbound) validate_edit!(project, target_project, current_user) if project == target_project return ServiceResponse.error(message: "Source project cannot be removed from the job token scope") end - link = ::Ci::JobToken::ProjectScopeLink.for_source_and_target(project, target_project) + link = ::Ci::JobToken::ProjectScopeLink + .with_access_direction(direction) + .for_source_and_target(project, target_project) unless link return ServiceResponse.error(message: "Target project is not in the job token scope") diff --git a/app/services/users/build_service.rb b/app/services/users/build_service.rb index 064bf132d3d..ad2ade19f2b 100644 --- a/app/services/users/build_service.rb +++ b/app/services/users/build_service.rb @@ -177,19 +177,17 @@ module Users # Allowed params for user signup def signup_params - signup_params = [ + [ :email, :name, :password, :password_automatically_set, + :preferred_language, :username, :user_type, :first_name, :last_name ] - signup_params << :preferred_language if ::Feature.enabled?(:preferred_language_switcher) - - signup_params end end end diff --git a/app/views/devise/shared/_language_switcher.html.haml b/app/views/devise/shared/_language_switcher.html.haml index 4c47e3efd0f..9dc9a940149 100644 --- a/app/views/devise/shared/_language_switcher.html.haml +++ b/app/views/devise/shared/_language_switcher.html.haml @@ -1,3 +1 @@ -- return unless ::Feature.enabled?(:preferred_language_switcher) - .js-language-switcher{ data: { locales: ordered_selectable_locales.to_json } } diff --git a/app/workers/bulk_imports/pipeline_worker.rb b/app/workers/bulk_imports/pipeline_worker.rb index 7435a1f6a88..8f03c74e13e 100644 --- a/app/workers/bulk_imports/pipeline_worker.rb +++ b/app/workers/bulk_imports/pipeline_worker.rb @@ -42,6 +42,7 @@ module BulkImports def run return skip_tracker if entity.failed? + raise(Pipeline::ExpiredError, 'Pipeline timeout') if job_timeout? raise(Pipeline::FailedError, "Export from source instance failed: #{export_status.error}") if export_failed? raise(Pipeline::ExpiredError, 'Empty export status on source instance') if empty_export_timeout? @@ -171,5 +172,11 @@ module BulkImports def lease_key "gitlab:bulk_imports:pipeline_worker:#{pipeline_tracker.id}" end + + def job_timeout? + return false unless file_extraction_pipeline? + + time_since_tracker_created > Pipeline::NDJSON_EXPORT_TIMEOUT + end end end |