30 lines
714 B
Ruby
30 lines
714 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Packages
|
|
module Helm
|
|
class FileMetadatum < ApplicationRecord
|
|
self.primary_key = :package_file_id
|
|
|
|
belongs_to :package_file, inverse_of: :helm_file_metadatum
|
|
|
|
validates :package_file, presence: true
|
|
validate :valid_helm_package_type
|
|
|
|
validates :channel,
|
|
presence: true,
|
|
length: { maximum: 63 },
|
|
format: { with: Gitlab::Regex.helm_channel_regex }
|
|
|
|
validates :metadata,
|
|
json_schema: { filename: "helm_metadata" }
|
|
|
|
private
|
|
|
|
def valid_helm_package_type
|
|
return if package_file&.package&.helm?
|
|
|
|
errors.add(:package_file, _('Package type must be Helm'))
|
|
end
|
|
end
|
|
end
|
|
end
|