summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue2
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--app/controllers/concerns/preferred_language_switcher.rb2
-rw-r--r--app/controllers/import/github_controller.rb17
-rw-r--r--app/graphql/mutations/ci/job_token_scope/remove_project.rb9
-rw-r--r--app/models/ci/job_token/project_scope_link.rb5
-rw-r--r--app/models/project.rb1
-rw-r--r--app/serializers/ci/pipeline_entity.rb1
-rw-r--r--app/serializers/merge_requests/pipeline_entity.rb4
-rw-r--r--app/services/ci/job_token_scope/remove_project_service.rb6
-rw-r--r--app/services/users/build_service.rb6
-rw-r--r--app/views/devise/shared/_language_switcher.html.haml2
-rw-r--r--app/workers/bulk_imports/pipeline_worker.rb7
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