Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-12-19 14:01:45 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-12-19 14:01:45 +0300
commit9297025d0b7ddf095eb618dfaaab2ff8f2018d8b (patch)
tree865198c01d1824a9b098127baa3ab980c9cd2c06 /app/services/ci
parent6372471f43ee03c05a7c1f8b0c6ac6b8a7431dbe (diff)
Add latest changes from gitlab-org/gitlab@16-7-stable-eev16.7.0-rc42
Diffstat (limited to 'app/services/ci')
-rw-r--r--app/services/ci/catalog/resources/destroy_service.rb27
-rw-r--r--app/services/ci/components/fetch_service.rb2
-rw-r--r--app/services/ci/create_commit_status_service.rb3
-rw-r--r--app/services/ci/generate_coverage_reports_service.rb32
-rw-r--r--app/services/ci/job_artifacts/bulk_delete_by_project_service.rb2
-rw-r--r--app/services/ci/job_artifacts/create_service.rb4
-rw-r--r--app/services/ci/process_sync_events_service.rb8
-rw-r--r--app/services/ci/update_build_state_service.rb1
8 files changed, 58 insertions, 21 deletions
diff --git a/app/services/ci/catalog/resources/destroy_service.rb b/app/services/ci/catalog/resources/destroy_service.rb
new file mode 100644
index 00000000000..feea0302ca9
--- /dev/null
+++ b/app/services/ci/catalog/resources/destroy_service.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+module Ci
+ module Catalog
+ module Resources
+ class DestroyService
+ include Gitlab::Allowable
+
+ attr_reader :project, :current_user
+
+ def initialize(project, user)
+ @current_user = user
+ @project = project
+ end
+
+ def execute(catalog_resource)
+ raise Gitlab::Access::AccessDeniedError unless can?(current_user, :add_catalog_resource,
+ project)
+
+ catalog_resource.destroy!
+
+ ServiceResponse.success(message: 'Catalog Resource destroyed')
+ end
+ end
+ end
+ end
+end
diff --git a/app/services/ci/components/fetch_service.rb b/app/services/ci/components/fetch_service.rb
index 4f09d47b530..f83c6e30cbb 100644
--- a/app/services/ci/components/fetch_service.rb
+++ b/app/services/ci/components/fetch_service.rb
@@ -24,7 +24,7 @@ module Ci
component_path = component_path_class.new(address: address)
result = component_path.fetch_content!(current_user: current_user)
- if result
+ if result&.content
ServiceResponse.success(payload: {
content: result.content,
path: result.path,
diff --git a/app/services/ci/create_commit_status_service.rb b/app/services/ci/create_commit_status_service.rb
index e5b446a07e2..de3e7b3f7ff 100644
--- a/app/services/ci/create_commit_status_service.rb
+++ b/app/services/ci/create_commit_status_service.rb
@@ -93,7 +93,8 @@ module Ci
protected: project.protected_for?(ref),
ci_stage: stage,
stage_idx: stage.position,
- stage: 'external'
+ stage: 'external',
+ partition_id: pipeline.partition_id
).tap do |new_commit_status|
new_commit_status.assign_attributes(optional_commit_status_params)
end
diff --git a/app/services/ci/generate_coverage_reports_service.rb b/app/services/ci/generate_coverage_reports_service.rb
index 8beecb79fd9..e059f8acda6 100644
--- a/app/services/ci/generate_coverage_reports_service.rb
+++ b/app/services/ci/generate_coverage_reports_service.rb
@@ -9,19 +9,26 @@ module Ci
class GenerateCoverageReportsService < CompareReportsBaseService
def execute(base_pipeline, head_pipeline)
merge_request = MergeRequest.find_by_id(params[:id])
+ code_coverage_artifact = head_pipeline.pipeline_artifacts.find_by_file_type(:code_coverage)
+ return error_response(base_pipeline, head_pipeline) unless code_coverage_artifact && merge_request
+
{
status: :parsed,
key: key(base_pipeline, head_pipeline),
- data: head_pipeline.pipeline_artifacts.find_by_file_type(:code_coverage).present.for_files(merge_request.new_paths)
+ data: code_coverage_artifact.present.for_files(merge_request.new_paths)
}
rescue StandardError => e
- Gitlab::ErrorTracking.track_exception(
- e,
- project_id: project.id,
- base_pipeline_id: base_pipeline&.id,
- head_pipeline_id: head_pipeline&.id
- )
+ track_exception(e, base_pipeline, head_pipeline)
+ error_response(base_pipeline, head_pipeline)
+ end
+
+ def latest?(base_pipeline, head_pipeline, data)
+ data&.fetch(:key, nil) == key(base_pipeline, head_pipeline)
+ end
+ private
+
+ def error_response(base_pipeline, head_pipeline)
{
status: :error,
key: key(base_pipeline, head_pipeline),
@@ -29,12 +36,15 @@ module Ci
}
end
- def latest?(base_pipeline, head_pipeline, data)
- data&.fetch(:key, nil) == key(base_pipeline, head_pipeline)
+ def track_exception(error, base_pipeline, head_pipeline)
+ Gitlab::ErrorTracking.track_exception(
+ error,
+ project_id: project.id,
+ base_pipeline_id: base_pipeline&.id,
+ head_pipeline_id: head_pipeline&.id
+ )
end
- private
-
def key(base_pipeline, head_pipeline)
[
base_pipeline&.id, last_update_timestamp(base_pipeline),
diff --git a/app/services/ci/job_artifacts/bulk_delete_by_project_service.rb b/app/services/ci/job_artifacts/bulk_delete_by_project_service.rb
index 738fa19e29b..57f65f6dea3 100644
--- a/app/services/ci/job_artifacts/bulk_delete_by_project_service.rb
+++ b/app/services/ci/job_artifacts/bulk_delete_by_project_service.rb
@@ -5,7 +5,7 @@ module Ci
class BulkDeleteByProjectService
include BaseServiceUtility
- JOB_ARTIFACTS_COUNT_LIMIT = 50
+ JOB_ARTIFACTS_COUNT_LIMIT = 100
def initialize(job_artifact_ids:, project:, current_user:)
@job_artifact_ids = job_artifact_ids
diff --git a/app/services/ci/job_artifacts/create_service.rb b/app/services/ci/job_artifacts/create_service.rb
index c09b0cf81f1..0791fff8545 100644
--- a/app/services/ci/job_artifacts/create_service.rb
+++ b/app/services/ci/job_artifacts/create_service.rb
@@ -128,11 +128,9 @@ module Ci
def accessibility(params)
accessibility = params[:accessibility]
- return :public if Feature.disabled?(:non_public_artifacts, type: :development)
-
return accessibility if accessibility.present?
- job.artifacts_public? ? :public : :private
+ job.artifact_is_public_in_config? ? :public : :private
end
def parse_artifact(artifact)
diff --git a/app/services/ci/process_sync_events_service.rb b/app/services/ci/process_sync_events_service.rb
index d90ee02b1c6..d3c699597b6 100644
--- a/app/services/ci/process_sync_events_service.rb
+++ b/app/services/ci/process_sync_events_service.rb
@@ -13,7 +13,7 @@ module Ci
end
def execute
- # preventing parallel processing over the same event table
+ # To prevent parallel processing over the same event table
try_obtain_lease { process_events }
enqueue_worker_if_there_still_event
@@ -26,7 +26,7 @@ module Ci
def process_events
add_result(estimated_total_events: @sync_event_class.upper_bound_count)
- events = @sync_event_class.preload_synced_relation.first(BATCH_SIZE)
+ events = @sync_event_class.unprocessed_events.preload_synced_relation.first(BATCH_SIZE)
add_result(consumable_events: events.size)
@@ -42,12 +42,12 @@ module Ci
end
ensure
add_result(processed_events: processed_events.size)
- @sync_event_class.id_in(processed_events).delete_all
+ @sync_event_class.mark_records_processed(processed_events)
end
end
def enqueue_worker_if_there_still_event
- @sync_event_class.enqueue_worker if @sync_event_class.exists?
+ @sync_event_class.enqueue_worker if @sync_event_class.unprocessed_events.exists?
end
def lease_key
diff --git a/app/services/ci/update_build_state_service.rb b/app/services/ci/update_build_state_service.rb
index 835d5f9a16c..bd76f6dbda8 100644
--- a/app/services/ci/update_build_state_service.rb
+++ b/app/services/ci/update_build_state_service.rb
@@ -168,6 +168,7 @@ module Ci
def ensure_pending_state
build_state = Ci::BuildPendingState.safe_find_or_create_by(
build_id: build.id,
+ partition_id: build.partition_id,
state: params.fetch(:state),
trace_checksum: trace_checksum,
trace_bytesize: trace_bytesize,