35 lines
701 B
Ruby
35 lines
701 B
Ruby
# frozen_string_literal: true
|
|
|
|
# ProtectedBranchesFinder
|
|
#
|
|
# Used to filter protected branches by set of params
|
|
#
|
|
# Arguments:
|
|
# project - which project to scope to
|
|
# params:
|
|
# search: string
|
|
class ProtectedBranchesFinder
|
|
LIMIT = 100
|
|
|
|
attr_accessor :project, :params
|
|
|
|
def initialize(project, params = {})
|
|
@project = project
|
|
@params = params
|
|
end
|
|
|
|
def execute
|
|
protected_branches = project.limited_protected_branches(LIMIT)
|
|
protected_branches = by_name(protected_branches)
|
|
|
|
protected_branches
|
|
end
|
|
|
|
private
|
|
|
|
def by_name(protected_branches)
|
|
return protected_branches unless params[:search].present?
|
|
|
|
protected_branches.by_name(params[:search])
|
|
end
|
|
end
|