forgeplus/app/models/protected_branch.rb

66 lines
2.3 KiB
Ruby

# == Schema Information
#
# Table name: protected_branches
#
# id :integer not null, primary key
# repo_id :integer
# branch_name :string(255) default("")
# can_push :boolean default("0"), not null
# enable_whitelist :boolean default("0")
# whitelist_user_i_ds :text(65535)
# whitelist_team_i_ds :text(65535)
# enable_merge_whitelist :boolean default("0"), not null
# whitelist_deploy_keys :boolean default("0"), not null
# merge_whitelist_user_i_ds :text(65535)
# merge_whitelist_team_i_ds :text(65535)
# enable_status_check :boolean default("0"), not null
# status_check_contexts :text(65535)
# approvals_whitelist_user_i_ds :text(65535)
# approvals_whitelist_team_i_ds :text(65535)
# required_approvals :integer default("0")
# enable_approvals_whitelist :boolean default("0"), not null
# block_on_rejected_reviews :boolean default("0"), not null
# dismiss_stale_approvals :boolean default("0"), not null
# require_signed_commits :boolean default("0"), not null
# protected_file_patterns :text(65535)
# block_on_outdated_branch :boolean default("0"), not null
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_protected_branches_on_repo_id (repo_id)
#
class ProtectedBranch < ApplicationRecord
serialize :whitelist_user_i_ds, Array
serialize :merge_whitelist_user_i_ds, Array
serialize :approvals_whitelist_user_i_ds, Array
belongs_to :repo, class_name: 'Repository', foreign_key: :repo_id
validates :branch_name, presence: true
validates :repo, presence: true
def to_param
self.branch_name.parameterize
end
def push_whitelist_usernames
get_logins_by_ids(whitelist_user_i_ds)
end
def merge_whitelist_usernames
get_logins_by_ids(merge_whitelist_user_i_ds)
end
def approvals_whitelist_usernames
get_logins_by_ids(approvals_whitelist_user_i_ds)
end
def get_logins_by_ids(ids)
User.where(id: ids).map(&:login)
end
end