forked from Gitlink/forgeplus
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
|