0c1bf16d5f
Improvements and refactorings were made while adding role based permissions for protected tags to EE. This doesn’t backport the feature, but should improve code quality and minimize divergence.
18 lines
652 B
Ruby
18 lines
652 B
Ruby
class ProtectedBranch < ActiveRecord::Base
|
|
include Gitlab::ShellAdapter
|
|
include ProtectedRef
|
|
|
|
protected_ref_access_levels :merge, :push
|
|
|
|
# Check if branch name is marked as protected in the system
|
|
def self.protected?(project, ref_name)
|
|
return true if project.empty_repo? && default_branch_protected?
|
|
|
|
self.matching(ref_name, protected_refs: project.protected_branches).present?
|
|
end
|
|
|
|
def self.default_branch_protected?
|
|
current_application_settings.default_branch_protection == Gitlab::Access::PROTECTION_FULL ||
|
|
current_application_settings.default_branch_protection == Gitlab::Access::PROTECTION_DEV_CAN_MERGE
|
|
end
|
|
end
|