Module: Packages::ErrorHandling

Constant Summary collapse

DEFAULT_STATUS_MESSAGE =
'Unexpected error'
CONTROLLED_ERRORS =
[
  ArgumentError,
  ActiveRecord::RecordInvalid,
  ::Packages::Helm::ExtractFileMetadataService::ExtractionError,
  ::Packages::Helm::ProcessFileService::ProtectedPackageError,
  ::Packages::Nuget::ExtractMetadataFileService::ExtractionError,
  ::Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError,
  ::Packages::Nuget::UpdatePackageFromMetadataService::ZipError,
  ::Packages::Nuget::UpdatePackageFromMetadataService::DuplicatePackageError,
  ::Packages::Nuget::UpdatePackageFromMetadataService::ProtectedPackageError,
  ::Packages::Rubygems::ProcessGemService::ExtractionError,
  ::Packages::Rubygems::ProcessGemService::InvalidMetadataError,
  ::Packages::Npm::ProcessPackageFileService::ExtractionError,
  ::Packages::Npm::CheckManifestCoherenceService::MismatchError,
  ::Packages::Conan::MetadataExtractionService::ExtractionError
].freeze

Instance Method Summary collapse

Instance Method Details

#process_package_error_service_response(package_file:, message:) ⇒ Object



39
40
41
42
43
44
# File 'app/workers/concerns/packages/error_handling.rb', line 39

def process_package_error_service_response(package_file:, message:)
  package_file.package.update_columns(
    status: :error,
    status_message: truncated_status_message(message)
  )
end

#process_package_file_error(package_file:, exception:, extra_log_payload: {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/workers/concerns/packages/error_handling.rb', line 26

def process_package_file_error(package_file:, exception:, extra_log_payload: {})
  log_payload = {
    project_id: package_file.project_id,
    package_file_id: package_file.id
  }.merge(extra_log_payload)
  Gitlab::ErrorTracking.log_exception(exception, **log_payload)

  package_file.package.update_columns(
    status: :error,
    status_message: truncated_status_message(build_status_message(exception))
  )
end