diff options
Diffstat (limited to 'app/models/packages/helm/file_metadatum.rb')
-rw-r--r-- | app/models/packages/helm/file_metadatum.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/models/packages/helm/file_metadatum.rb b/app/models/packages/helm/file_metadatum.rb new file mode 100644 index 00000000000..1771003d1f9 --- /dev/null +++ b/app/models/packages/helm/file_metadatum.rb @@ -0,0 +1,30 @@ +# 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 |