|
- class Repository < ApplicationRecord
- self.inheritance_column = nil # FIX The single-table inheritance mechanism failed
- belongs_to :project, :touch => true
- belongs_to :user
- has_one :mirror, foreign_key: :repo_id
- has_one :dev_ops_cloud_account, class_name: 'DevOps::CloudAccount', foreign_key: :repo_id
- has_many :version_releases, dependent: :destroy
-
- validates :identifier, presence: true
-
- def to_param
- self.identifier.parameterize
- end
-
- # with repository is mirror
- def set_mirror!
- self.build_mirror(status: Mirror.statuses[:waiting]).save
- end
-
- def mirror_status
- self&.mirror&.numerical_for_status
- end
-
- def mirror_num
- self&.mirror&.sync_num
- end
-
- def first_sync?
- self&.mirror&.sync_num === 1
- end
-
- def sync_mirror!
- repo_mirror = self.mirror
- repo_mirror.set_status!(Mirror.statuses[:waiting])
- repo_mirror.increment!(:sync_num)
- end
- end
|