66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			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
 |