forgeplus/app/models/sync_repository_branch.rb

39 lines
1.1 KiB
Ruby

# == Schema Information
#
# Table name: sync_repository_branches
#
# id :integer not null, primary key
# sync_repository_id :integer
# gitlink_branch_name :string(255)
# external_branch_name :string(255)
# sync_time :datetime
# sync_status :integer default("0")
# reposync_branch_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# enable :boolean default("1")
#
# Indexes
#
# index_sync_repository_branches_on_sync_repository_id (sync_repository_id)
#
class SyncRepositoryBranch < ApplicationRecord
belongs_to :sync_repository
before_destroy :unbind_reposyncer
enum sync_status: {success: 1, failure: 2}
def unbind_reposyncer
if self.sync_repository.sync_direction.to_i == 1
Reposync::DeleteBranchService.call(self.sync_repository&.repo_name, self.gitlink_branch_name) rescue nil
else
Reposync::DeleteBranchService.call(self.sync_repository&.repo_name, self.external_branch_name) rescue nil
end
end
end