36 lines
701 B
Ruby
36 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
|