blob: 16bba62f76620f06b8c565cc899aa2232dcea50c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# frozen_string_literal: true
class TagsFinder < GitRefsFinder
def execute(gitaly_pagination: false)
tags = if gitaly_pagination
repository.tags_sorted_by(sort, pagination_params)
else
repository.tags_sorted_by(sort)
end
by_search(tags)
rescue ArgumentError => e
raise Gitlab::Git::InvalidPageToken, "Invalid page token: #{page_token}" if e.message.include?('page token')
raise
end
def total
repository.tag_count
end
private
def per_page
params[:per_page].presence
end
def page_token
"#{Gitlab::Git::TAG_REF_PREFIX}#{@params[:page_token]}" if params[:page_token]
end
def pagination_params
{ limit: per_page, page_token: page_token }
end
end
|