Имя: Пароль:
IT
 
В GITLAB пытаюсь командой вебклиента экспортировать список коммитов (больше 200шт)
0 TormozIT
 
гуру
23.09.22
13:49
https://i.imgur.com/bO1x9zl.png
В гитлабе пытаюсь командой вебклиента экспортировать список коммитов (больше 200шт). Но выгружает всегда не больше 40шт. Где эта настройка, которая рубит количество при экспорте?
1 TormozIT
 
гуру
23.09.22
22:40
В общем эта команда выдает RSS ленту и там параметров крайне мало. Лимит я так понял изменить нельзя и указать номер страницы (постраничная выдача) тоже нельзя.
Поэтому переделал код на API https://docs.gitlab.com/ee/api/commits.html . Сначала в настройках юзера генеришь токен. Потом вызываешь в цикле постранично получение коммитов
http://srv-gitax01/api/v4/projects/392/repository/commits?private_token=D2vs9pzgnQbZBa-&ref_name=release%2FRelease507&since=2019-06-01T20%3A10%3A10Z&until=2025-09-01T20%3A10%3A10Z&all=true&per_page=100&page=1
где
private_token - токен с правами "api"
392 - id проекта
release%2FRelease507 - URL закодированное полное имя ветки
2 4St
 
25.09.22
10:11
40 штур - это постраничная выгрузка. Чтобы выгрузить все, надо передать параметр "get_all=True".
3 4St
 
25.09.22
10:12
То же самое относится ко всем остальным сущностям: issues, milestones, branches.
4 4St
 
25.09.22
10:17
Точнее, так выглядит параметр в библиотеке gitlab для python.
Про Rest Api что-то написано тут: https://docs.gitlab.com/ee/api/index.html#pagination-link-header
5 TormozIT
 
гуру
25.09.22
11:28
(2) Спасибо. Правда по ссылке (4) про него не написано, а написано тут https://python-gitlab.readthedocs.io/en/stable/api-usage.html .
В описании самого api я ее почему то не вижу https://docs.gitlab.com/ee/api . Видимо это именно параметр питоновской либы.
6 4St
 
25.09.22
12:47
у меня заработало так:

import gitlab
...
    gl = gitlab.Gitlab(GITLAB_URL, GITLAB_TOKEN)
    project = gl.projects.get(id)
    milestones = project.milestones.list(get_all=True)
...
AdBlock убивает бесплатный контент. 1Сергей