# == 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