31 lines
714 B
Ruby
31 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
|